]> git.hungrycats.org Git - xscreensaver/commitdiff
From http://www.jwz.org/xscreensaver/xscreensaver-5.43.tar.gz
authorZygo Blaxell <zblaxell@waya.furryterror.org>
Sat, 6 Jul 2019 02:02:21 +0000 (22:02 -0400)
committerZygo Blaxell <zblaxell@waya.furryterror.org>
Sat, 6 Jul 2019 02:06:15 +0000 (22:06 -0400)
-rw-rw-r-- 1 zblaxell zblaxell 26968319 Jul  2 16:27 xscreensaver-5.43.tar.gz
26f5f2535869ec90926e3e6f6df342cf96548c8f  xscreensaver-5.43.tar.gz

118 files changed:
OSX/English.lproj/InfoPlist.strings [deleted file]
OSX/English.lproj/SaverRunner.nib/designable.nib [deleted file]
OSX/English.lproj/SaverRunner.nib/keyedobjects.nib [deleted file]
OSX/Gallant19.bdf [deleted file]
OSX/Makefile
OSX/PrefsReader.m
OSX/README
OSX/SaverListController.m
OSX/SaverRunner.m
OSX/SaverRunner.plist
OSX/Updater.plist
OSX/XScreenSaver.plist
OSX/XScreenSaverConfigSheet.h
OSX/XScreenSaverConfigSheet.m
OSX/XScreenSaverGLView.m
OSX/XScreenSaverView.h
OSX/XScreenSaverView.m
OSX/bindist.rtf
OSX/build-fntable.pl
OSX/en.lproj/InfoPlist.strings [new file with mode: 0644]
OSX/en.lproj/SaverRunner.nib/designable.nib [new file with mode: 0644]
OSX/en.lproj/SaverRunner.nib/keyedobjects.nib [new file with mode: 0644]
OSX/gallant12x22.ttf [new file with mode: 0644]
OSX/gallant19.bdf [new file with mode: 0644]
OSX/grabclient-ios.m
OSX/iSaverRunner.plist
OSX/installer.sh
OSX/ios-function-table.m
OSX/textclient-ios.m
OSX/xscreensaver.xcodeproj/project.pbxproj
README
android/Makefile
android/xscreensaver/assets/fonts/gallant12x22.ttf [new symlink]
android/xscreensaver/assets/fonts/luximr.ttf [new symlink]
android/xscreensaver/src/org/jwz/xscreensaver/jwxyz.java
config.h.in
configure
configure.in
driver/Makefile.in
driver/XScreenSaver.ad.in
driver/XScreenSaver_ad.h
driver/demo-Gtk.c
driver/demo-Xm.c
driver/lock.c
driver/remote.c
driver/screens.c
driver/splash.c
driver/subprocs.c
driver/types.h
driver/windows.c
driver/xscreensaver-command.c
driver/xscreensaver-command.man
driver/xscreensaver-systemd.c [new file with mode: 0644]
driver/xscreensaver-systemd.man [new file with mode: 0644]
driver/xscreensaver.c
driver/xscreensaver.h
driver/xscreensaver.man
hacks/bsod.c
hacks/ccurve.c
hacks/config/README
hacks/config/bouncingcow.xml
hacks/config/deepstars.xml [new file with mode: 0644]
hacks/config/flyingtoasters.xml
hacks/config/glplanet.xml
hacks/config/gravitywell.xml [new file with mode: 0644]
hacks/config/hexadrop.xml
hacks/config/imsmap.xml
hacks/config/unknownpleasures.xml
hacks/filmleader.c
hacks/fontglide.c
hacks/fps.c
hacks/fuzzyflakes.c
hacks/glitchpeg.c
hacks/glx/Makefile.in
hacks/glx/bouncingcow.c
hacks/glx/bouncingcow.man
hacks/glx/boxed.c
hacks/glx/circuit.man
hacks/glx/esper.c
hacks/glx/fliptext.c
hacks/glx/flyingtoasters.c
hacks/glx/flyingtoasters.man
hacks/glx/gears.c
hacks/glx/glhanoi.c
hacks/glx/glplanet.c
hacks/glx/glplanet.man
hacks/glx/glslideshow.c
hacks/glx/gravitywell.c [new file with mode: 0644]
hacks/glx/gravitywell.man [new file with mode: 0644]
hacks/glx/hypertorus.c
hacks/glx/jigsaw.c
hacks/glx/lament.c
hacks/glx/peepers.c
hacks/glx/quickhull.c
hacks/glx/sonar-icmp.c
hacks/glx/splodesic.c
hacks/glx/unknownpleasures.c
hacks/glx/unknownpleasures.man
hacks/hexadrop.c
hacks/kumppa.c
hacks/petri.c
hacks/shadebobs.c
hacks/webcollage
hacks/xjack.c
jwxyz/jwxyz-cocoa.m
jwxyz/jwxyz-common.c
jwxyz/jwxyz-timers.c
jwxyz/jwxyz.m
jwxyz/jwzgles.c
jwxyz/jwzglesI.h
po/POTFILES.in
po/ru.po
utils/colors.c
utils/erase.c
utils/font-retry.c
utils/thread_util.c
utils/version.h
xscreensaver.spec

diff --git a/OSX/English.lproj/InfoPlist.strings b/OSX/English.lproj/InfoPlist.strings
deleted file mode 100644 (file)
index dea12de..0000000
Binary files a/OSX/English.lproj/InfoPlist.strings and /dev/null differ
diff --git a/OSX/English.lproj/SaverRunner.nib/designable.nib b/OSX/English.lproj/SaverRunner.nib/designable.nib
deleted file mode 100644 (file)
index 1facee5..0000000
+++ /dev/null
@@ -1,1790 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="8.00">
-       <data>
-               <int key="IBDocument.SystemTarget">1050</int>
-               <string key="IBDocument.SystemVersion">10K549</string>
-               <string key="IBDocument.InterfaceBuilderVersion">851</string>
-               <string key="IBDocument.AppKitVersion">1038.36</string>
-               <string key="IBDocument.HIToolboxVersion">461.00</string>
-               <object class="NSMutableDictionary" key="IBDocument.PluginVersions">
-                       <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string>
-                       <string key="NS.object.0">851</string>
-               </object>
-               <array class="NSMutableArray" key="IBDocument.EditedObjectIDs">
-                       <integer value="57"/>
-               </array>
-               <array key="IBDocument.PluginDependencies">
-                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-               </array>
-               <object class="NSMutableDictionary" key="IBDocument.Metadata">
-                       <string key="NS.key.0">PluginDependencyRecalculationVersion</string>
-                       <integer value="1" key="NS.object.0"/>
-               </object>
-               <array class="NSMutableArray" key="IBDocument.RootObjects" id="837227664">
-                       <object class="NSCustomObject" id="838516170">
-                               <object class="NSMutableString" key="NSClassName">
-                                       <characters key="NS.bytes">NSApplication</characters>
-                               </object>
-                       </object>
-                       <object class="NSCustomObject" id="998231172">
-                               <string key="NSClassName">FirstResponder</string>
-                       </object>
-                       <object class="NSCustomObject" id="996827039">
-                               <string key="NSClassName">NSApplication</string>
-                       </object>
-                       <object class="NSMenu" id="45111635">
-                               <string key="NSTitle">MainMenu</string>
-                               <array class="NSMutableArray" key="NSMenuItems">
-                                       <object class="NSMenuItem" id="690370694">
-                                               <reference key="NSMenu" ref="45111635"/>
-                                               <string key="NSTitle">XScreenSaver</string>
-                                               <string key="NSKeyEquiv"/>
-                                               <int key="NSKeyEquivModMask">1048576</int>
-                                               <int key="NSMnemonicLoc">2147483647</int>
-                                               <object class="NSCustomResource" key="NSOnImage" id="301225830">
-                                                       <string key="NSClassName">NSImage</string>
-                                                       <string key="NSResourceName">NSMenuCheckmark</string>
-                                               </object>
-                                               <object class="NSCustomResource" key="NSMixedImage" id="862154113">
-                                                       <string key="NSClassName">NSImage</string>
-                                                       <string key="NSResourceName">NSMenuMixedState</string>
-                                               </object>
-                                               <string key="NSAction">submenuAction:</string>
-                                               <object class="NSMenu" key="NSSubmenu" id="648337178">
-                                                       <string key="NSTitle">XScreenSaver</string>
-                                                       <array class="NSMutableArray" key="NSMenuItems">
-                                                               <object class="NSMenuItem" id="8914611">
-                                                                       <reference key="NSMenu" ref="648337178"/>
-                                                                       <string key="NSTitle">About XScreenSaver</string>
-                                                                       <string key="NSKeyEquiv"/>
-                                                                       <int key="NSMnemonicLoc">2147483647</int>
-                                                                       <reference key="NSOnImage" ref="301225830"/>
-                                                                       <reference key="NSMixedImage" ref="862154113"/>
-                                                               </object>
-                                                               <object class="NSMenuItem" id="627255583">
-                                                                       <reference key="NSMenu" ref="648337178"/>
-                                                                       <bool key="NSIsDisabled">YES</bool>
-                                                                       <bool key="NSIsSeparator">YES</bool>
-                                                                       <string key="NSTitle"/>
-                                                                       <string key="NSKeyEquiv"/>
-                                                                       <int key="NSKeyEquivModMask">1048576</int>
-                                                                       <int key="NSMnemonicLoc">2147483647</int>
-                                                                       <reference key="NSOnImage" ref="301225830"/>
-                                                                       <reference key="NSMixedImage" ref="862154113"/>
-                                                               </object>
-                                                               <object class="NSMenuItem" id="381880730">
-                                                                       <reference key="NSMenu" ref="648337178"/>
-                                                                       <bool key="NSIsDisabled">YES</bool>
-                                                                       <string key="NSTitle">Preferences…</string>
-                                                                       <string key="NSKeyEquiv">,</string>
-                                                                       <int key="NSKeyEquivModMask">1048576</int>
-                                                                       <int key="NSMnemonicLoc">2147483647</int>
-                                                                       <reference key="NSOnImage" ref="301225830"/>
-                                                                       <reference key="NSMixedImage" ref="862154113"/>
-                                                               </object>
-                                                               <object class="NSMenuItem" id="862592074">
-                                                                       <reference key="NSMenu" ref="648337178"/>
-                                                                       <bool key="NSIsDisabled">YES</bool>
-                                                                       <bool key="NSIsSeparator">YES</bool>
-                                                                       <string key="NSTitle"/>
-                                                                       <string key="NSKeyEquiv"/>
-                                                                       <int key="NSKeyEquivModMask">1048576</int>
-                                                                       <int key="NSMnemonicLoc">2147483647</int>
-                                                                       <reference key="NSOnImage" ref="301225830"/>
-                                                                       <reference key="NSMixedImage" ref="862154113"/>
-                                                               </object>
-                                                               <object class="NSMenuItem" id="923603386">
-                                                                       <reference key="NSMenu" ref="648337178"/>
-                                                                       <string key="NSTitle">Services</string>
-                                                                       <string key="NSKeyEquiv"/>
-                                                                       <int key="NSKeyEquivModMask">1048576</int>
-                                                                       <int key="NSMnemonicLoc">2147483647</int>
-                                                                       <reference key="NSOnImage" ref="301225830"/>
-                                                                       <reference key="NSMixedImage" ref="862154113"/>
-                                                                       <string key="NSAction">submenuAction:</string>
-                                                                       <object class="NSMenu" key="NSSubmenu" id="1035646574">
-                                                                               <object class="NSMutableString" key="NSTitle">
-                                                                                       <characters key="NS.bytes">Services</characters>
-                                                                               </object>
-                                                                               <array class="NSMutableArray" key="NSMenuItems"/>
-                                                                               <string key="NSName">_NSServicesMenu</string>
-                                                                       </object>
-                                                               </object>
-                                                               <object class="NSMenuItem" id="819131537">
-                                                                       <reference key="NSMenu" ref="648337178"/>
-                                                                       <bool key="NSIsDisabled">YES</bool>
-                                                                       <bool key="NSIsSeparator">YES</bool>
-                                                                       <string key="NSTitle"/>
-                                                                       <string key="NSKeyEquiv"/>
-                                                                       <int key="NSKeyEquivModMask">1048576</int>
-                                                                       <int key="NSMnemonicLoc">2147483647</int>
-                                                                       <reference key="NSOnImage" ref="301225830"/>
-                                                                       <reference key="NSMixedImage" ref="862154113"/>
-                                                               </object>
-                                                               <object class="NSMenuItem" id="632798708">
-                                                                       <reference key="NSMenu" ref="648337178"/>
-                                                                       <string key="NSTitle">Hide XScreenSaver</string>
-                                                                       <string key="NSKeyEquiv">h</string>
-                                                                       <int key="NSKeyEquivModMask">1048576</int>
-                                                                       <int key="NSMnemonicLoc">2147483647</int>
-                                                                       <reference key="NSOnImage" ref="301225830"/>
-                                                                       <reference key="NSMixedImage" ref="862154113"/>
-                                                               </object>
-                                                               <object class="NSMenuItem" id="468461345">
-                                                                       <reference key="NSMenu" ref="648337178"/>
-                                                                       <string key="NSTitle">Hide Others</string>
-                                                                       <string key="NSKeyEquiv">h</string>
-                                                                       <int key="NSKeyEquivModMask">1572864</int>
-                                                                       <int key="NSMnemonicLoc">2147483647</int>
-                                                                       <reference key="NSOnImage" ref="301225830"/>
-                                                                       <reference key="NSMixedImage" ref="862154113"/>
-                                                               </object>
-                                                               <object class="NSMenuItem" id="437251807">
-                                                                       <reference key="NSMenu" ref="648337178"/>
-                                                                       <string key="NSTitle">Show All</string>
-                                                                       <string key="NSKeyEquiv"/>
-                                                                       <int key="NSKeyEquivModMask">1048576</int>
-                                                                       <int key="NSMnemonicLoc">2147483647</int>
-                                                                       <reference key="NSOnImage" ref="301225830"/>
-                                                                       <reference key="NSMixedImage" ref="862154113"/>
-                                                               </object>
-                                                               <object class="NSMenuItem" id="583949930">
-                                                                       <reference key="NSMenu" ref="648337178"/>
-                                                                       <bool key="NSIsDisabled">YES</bool>
-                                                                       <bool key="NSIsSeparator">YES</bool>
-                                                                       <string key="NSTitle"/>
-                                                                       <string key="NSKeyEquiv"/>
-                                                                       <int key="NSKeyEquivModMask">1048576</int>
-                                                                       <int key="NSMnemonicLoc">2147483647</int>
-                                                                       <reference key="NSOnImage" ref="301225830"/>
-                                                                       <reference key="NSMixedImage" ref="862154113"/>
-                                                               </object>
-                                                               <object class="NSMenuItem" id="504373960">
-                                                                       <reference key="NSMenu" ref="648337178"/>
-                                                                       <string key="NSTitle">Quit XScreenSaver</string>
-                                                                       <string key="NSKeyEquiv">q</string>
-                                                                       <int key="NSKeyEquivModMask">1048576</int>
-                                                                       <int key="NSMnemonicLoc">2147483647</int>
-                                                                       <reference key="NSOnImage" ref="301225830"/>
-                                                                       <reference key="NSMixedImage" ref="862154113"/>
-                                                               </object>
-                                                       </array>
-                                                       <string key="NSName">_NSAppleMenu</string>
-                                               </object>
-                                       </object>
-                                       <object class="NSMenuItem" id="799166226">
-                                               <reference key="NSMenu" ref="45111635"/>
-                                               <string key="NSTitle">File</string>
-                                               <string key="NSKeyEquiv"/>
-                                               <int key="NSKeyEquivModMask">1048576</int>
-                                               <int key="NSMnemonicLoc">2147483647</int>
-                                               <reference key="NSOnImage" ref="301225830"/>
-                                               <reference key="NSMixedImage" ref="862154113"/>
-                                               <string key="NSAction">submenuAction:</string>
-                                               <object class="NSMenu" key="NSSubmenu" id="811240304">
-                                                       <object class="NSMutableString" key="NSTitle">
-                                                               <characters key="NS.bytes">File</characters>
-                                                       </object>
-                                                       <array class="NSMutableArray" key="NSMenuItems">
-                                                               <object class="NSMenuItem" id="222387297">
-                                                                       <reference key="NSMenu" ref="811240304"/>
-                                                                       <string key="NSTitle">Close</string>
-                                                                       <string key="NSKeyEquiv">w</string>
-                                                                       <int key="NSKeyEquivModMask">1048576</int>
-                                                                       <int key="NSMnemonicLoc">2147483647</int>
-                                                                       <reference key="NSOnImage" ref="301225830"/>
-                                                                       <reference key="NSMixedImage" ref="862154113"/>
-                                                               </object>
-                                                               <object class="NSMenuItem" id="608174085">
-                                                                       <reference key="NSMenu" ref="811240304"/>
-                                                                       <bool key="NSIsDisabled">YES</bool>
-                                                                       <bool key="NSIsSeparator">YES</bool>
-                                                                       <string key="NSTitle"/>
-                                                                       <string key="NSKeyEquiv"/>
-                                                                       <int key="NSKeyEquivModMask">1048576</int>
-                                                                       <int key="NSMnemonicLoc">2147483647</int>
-                                                                       <reference key="NSOnImage" ref="301225830"/>
-                                                                       <reference key="NSMixedImage" ref="862154113"/>
-                                                               </object>
-                                                               <object class="NSMenuItem" id="876081012">
-                                                                       <reference key="NSMenu" ref="811240304"/>
-                                                                       <string key="NSTitle">Page Setup…</string>
-                                                                       <string key="NSKeyEquiv">P</string>
-                                                                       <int key="NSKeyEquivModMask">1048576</int>
-                                                                       <int key="NSMnemonicLoc">2147483647</int>
-                                                                       <reference key="NSOnImage" ref="301225830"/>
-                                                                       <reference key="NSMixedImage" ref="862154113"/>
-                                                               </object>
-                                                               <object class="NSMenuItem" id="926886853">
-                                                                       <reference key="NSMenu" ref="811240304"/>
-                                                                       <string key="NSTitle">Print…</string>
-                                                                       <string key="NSKeyEquiv">p</string>
-                                                                       <int key="NSKeyEquivModMask">1048576</int>
-                                                                       <int key="NSMnemonicLoc">2147483647</int>
-                                                                       <reference key="NSOnImage" ref="301225830"/>
-                                                                       <reference key="NSMixedImage" ref="862154113"/>
-                                                               </object>
-                                                       </array>
-                                               </object>
-                                       </object>
-                                       <object class="NSMenuItem" id="455143041">
-                                               <reference key="NSMenu" ref="45111635"/>
-                                               <string key="NSTitle">Edit</string>
-                                               <string key="NSKeyEquiv"/>
-                                               <int key="NSKeyEquivModMask">1048576</int>
-                                               <int key="NSMnemonicLoc">2147483647</int>
-                                               <reference key="NSOnImage" ref="301225830"/>
-                                               <reference key="NSMixedImage" ref="862154113"/>
-                                               <string key="NSAction">submenuAction:</string>
-                                               <object class="NSMenu" key="NSSubmenu" id="750267634">
-                                                       <object class="NSMutableString" key="NSTitle">
-                                                               <characters key="NS.bytes">Edit</characters>
-                                                       </object>
-                                                       <array class="NSMutableArray" key="NSMenuItems">
-                                                               <object class="NSMenuItem" id="497437714">
-                                                                       <reference key="NSMenu" ref="750267634"/>
-                                                                       <string key="NSTitle">Undo</string>
-                                                                       <string key="NSKeyEquiv">z</string>
-                                                                       <int key="NSKeyEquivModMask">1048576</int>
-                                                                       <int key="NSMnemonicLoc">2147483647</int>
-                                                                       <reference key="NSOnImage" ref="301225830"/>
-                                                                       <reference key="NSMixedImage" ref="862154113"/>
-                                                               </object>
-                                                               <object class="NSMenuItem" id="216516037">
-                                                                       <reference key="NSMenu" ref="750267634"/>
-                                                                       <string key="NSTitle">Redo</string>
-                                                                       <string key="NSKeyEquiv">Z</string>
-                                                                       <int key="NSKeyEquivModMask">1048576</int>
-                                                                       <int key="NSMnemonicLoc">2147483647</int>
-                                                                       <reference key="NSOnImage" ref="301225830"/>
-                                                                       <reference key="NSMixedImage" ref="862154113"/>
-                                                               </object>
-                                                               <object class="NSMenuItem" id="50949474">
-                                                                       <reference key="NSMenu" ref="750267634"/>
-                                                                       <bool key="NSIsDisabled">YES</bool>
-                                                                       <bool key="NSIsSeparator">YES</bool>
-                                                                       <string key="NSTitle"/>
-                                                                       <string key="NSKeyEquiv"/>
-                                                                       <int key="NSKeyEquivModMask">1048576</int>
-                                                                       <int key="NSMnemonicLoc">2147483647</int>
-                                                                       <reference key="NSOnImage" ref="301225830"/>
-                                                                       <reference key="NSMixedImage" ref="862154113"/>
-                                                               </object>
-                                                               <object class="NSMenuItem" id="734088368">
-                                                                       <reference key="NSMenu" ref="750267634"/>
-                                                                       <string key="NSTitle">Cut</string>
-                                                                       <string key="NSKeyEquiv">x</string>
-                                                                       <int key="NSKeyEquivModMask">1048576</int>
-                                                                       <int key="NSMnemonicLoc">2147483647</int>
-                                                                       <reference key="NSOnImage" ref="301225830"/>
-                                                                       <reference key="NSMixedImage" ref="862154113"/>
-                                                               </object>
-                                                               <object class="NSMenuItem" id="56237994">
-                                                                       <reference key="NSMenu" ref="750267634"/>
-                                                                       <string key="NSTitle">Copy</string>
-                                                                       <string key="NSKeyEquiv">c</string>
-                                                                       <int key="NSKeyEquivModMask">1048576</int>
-                                                                       <int key="NSMnemonicLoc">2147483647</int>
-                                                                       <reference key="NSOnImage" ref="301225830"/>
-                                                                       <reference key="NSMixedImage" ref="862154113"/>
-                                                               </object>
-                                                               <object class="NSMenuItem" id="838407332">
-                                                                       <reference key="NSMenu" ref="750267634"/>
-                                                                       <string key="NSTitle">Paste</string>
-                                                                       <string key="NSKeyEquiv">v</string>
-                                                                       <int key="NSKeyEquivModMask">1048576</int>
-                                                                       <int key="NSMnemonicLoc">2147483647</int>
-                                                                       <reference key="NSOnImage" ref="301225830"/>
-                                                                       <reference key="NSMixedImage" ref="862154113"/>
-                                                               </object>
-                                                               <object class="NSMenuItem" id="285560595">
-                                                                       <reference key="NSMenu" ref="750267634"/>
-                                                                       <string key="NSTitle">Paste and Match Style</string>
-                                                                       <string key="NSKeyEquiv">V</string>
-                                                                       <int key="NSKeyEquivModMask">1572864</int>
-                                                                       <int key="NSMnemonicLoc">2147483647</int>
-                                                                       <reference key="NSOnImage" ref="301225830"/>
-                                                                       <reference key="NSMixedImage" ref="862154113"/>
-                                                               </object>
-                                                               <object class="NSMenuItem" id="406944349">
-                                                                       <reference key="NSMenu" ref="750267634"/>
-                                                                       <string key="NSTitle">Delete</string>
-                                                                       <string key="NSKeyEquiv"/>
-                                                                       <int key="NSKeyEquivModMask">1048576</int>
-                                                                       <int key="NSMnemonicLoc">2147483647</int>
-                                                                       <reference key="NSOnImage" ref="301225830"/>
-                                                                       <reference key="NSMixedImage" ref="862154113"/>
-                                                               </object>
-                                                               <object class="NSMenuItem" id="24225155">
-                                                                       <reference key="NSMenu" ref="750267634"/>
-                                                                       <string key="NSTitle">Select All</string>
-                                                                       <string key="NSKeyEquiv">a</string>
-                                                                       <int key="NSKeyEquivModMask">1048576</int>
-                                                                       <int key="NSMnemonicLoc">2147483647</int>
-                                                                       <reference key="NSOnImage" ref="301225830"/>
-                                                                       <reference key="NSMixedImage" ref="862154113"/>
-                                                               </object>
-                                                               <object class="NSMenuItem" id="785449747">
-                                                                       <reference key="NSMenu" ref="750267634"/>
-                                                                       <bool key="NSIsDisabled">YES</bool>
-                                                                       <bool key="NSIsSeparator">YES</bool>
-                                                                       <string key="NSTitle"/>
-                                                                       <string key="NSKeyEquiv"/>
-                                                                       <int key="NSKeyEquivModMask">1048576</int>
-                                                                       <int key="NSMnemonicLoc">2147483647</int>
-                                                                       <reference key="NSOnImage" ref="301225830"/>
-                                                                       <reference key="NSMixedImage" ref="862154113"/>
-                                                               </object>
-                                                               <object class="NSMenuItem" id="18140746">
-                                                                       <reference key="NSMenu" ref="750267634"/>
-                                                                       <string key="NSTitle">Find</string>
-                                                                       <string key="NSKeyEquiv"/>
-                                                                       <int key="NSKeyEquivModMask">1048576</int>
-                                                                       <int key="NSMnemonicLoc">2147483647</int>
-                                                                       <reference key="NSOnImage" ref="301225830"/>
-                                                                       <reference key="NSMixedImage" ref="862154113"/>
-                                                                       <string key="NSAction">submenuAction:</string>
-                                                                       <object class="NSMenu" key="NSSubmenu" id="830368365">
-                                                                               <object class="NSMutableString" key="NSTitle">
-                                                                                       <characters key="NS.bytes">Find</characters>
-                                                                               </object>
-                                                                               <array class="NSMutableArray" key="NSMenuItems">
-                                                                                       <object class="NSMenuItem" id="10797587">
-                                                                                               <reference key="NSMenu" ref="830368365"/>
-                                                                                               <string key="NSTitle">Find…</string>
-                                                                                               <string key="NSKeyEquiv">f</string>
-                                                                                               <int key="NSKeyEquivModMask">1048576</int>
-                                                                                               <int key="NSMnemonicLoc">2147483647</int>
-                                                                                               <reference key="NSOnImage" ref="301225830"/>
-                                                                                               <reference key="NSMixedImage" ref="862154113"/>
-                                                                                               <int key="NSTag">1</int>
-                                                                                       </object>
-                                                                                       <object class="NSMenuItem" id="144442828">
-                                                                                               <reference key="NSMenu" ref="830368365"/>
-                                                                                               <string key="NSTitle">Find Next</string>
-                                                                                               <string key="NSKeyEquiv">g</string>
-                                                                                               <int key="NSKeyEquivModMask">1048576</int>
-                                                                                               <int key="NSMnemonicLoc">2147483647</int>
-                                                                                               <reference key="NSOnImage" ref="301225830"/>
-                                                                                               <reference key="NSMixedImage" ref="862154113"/>
-                                                                                               <int key="NSTag">2</int>
-                                                                                       </object>
-                                                                                       <object class="NSMenuItem" id="208214618">
-                                                                                               <reference key="NSMenu" ref="830368365"/>
-                                                                                               <string key="NSTitle">Find Previous</string>
-                                                                                               <string key="NSKeyEquiv">G</string>
-                                                                                               <int key="NSKeyEquivModMask">1048576</int>
-                                                                                               <int key="NSMnemonicLoc">2147483647</int>
-                                                                                               <reference key="NSOnImage" ref="301225830"/>
-                                                                                               <reference key="NSMixedImage" ref="862154113"/>
-                                                                                               <int key="NSTag">3</int>
-                                                                                       </object>
-                                                                                       <object class="NSMenuItem" id="841162955">
-                                                                                               <reference key="NSMenu" ref="830368365"/>
-                                                                                               <string key="NSTitle">Use Selection for Find</string>
-                                                                                               <string key="NSKeyEquiv">e</string>
-                                                                                               <int key="NSKeyEquivModMask">1048576</int>
-                                                                                               <int key="NSMnemonicLoc">2147483647</int>
-                                                                                               <reference key="NSOnImage" ref="301225830"/>
-                                                                                               <reference key="NSMixedImage" ref="862154113"/>
-                                                                                               <int key="NSTag">7</int>
-                                                                                       </object>
-                                                                                       <object class="NSMenuItem" id="912738317">
-                                                                                               <reference key="NSMenu" ref="830368365"/>
-                                                                                               <string key="NSTitle">Jump to Selection</string>
-                                                                                               <string key="NSKeyEquiv">j</string>
-                                                                                               <int key="NSKeyEquivModMask">1048576</int>
-                                                                                               <int key="NSMnemonicLoc">2147483647</int>
-                                                                                               <reference key="NSOnImage" ref="301225830"/>
-                                                                                               <reference key="NSMixedImage" ref="862154113"/>
-                                                                                       </object>
-                                                                               </array>
-                                                                       </object>
-                                                               </object>
-                                                               <object class="NSMenuItem" id="883299468">
-                                                                       <reference key="NSMenu" ref="750267634"/>
-                                                                       <string key="NSTitle">Spelling</string>
-                                                                       <string key="NSKeyEquiv"/>
-                                                                       <int key="NSKeyEquivModMask">1048576</int>
-                                                                       <int key="NSMnemonicLoc">2147483647</int>
-                                                                       <reference key="NSOnImage" ref="301225830"/>
-                                                                       <reference key="NSMixedImage" ref="862154113"/>
-                                                                       <string key="NSAction">submenuAction:</string>
-                                                                       <object class="NSMenu" key="NSSubmenu" id="768298486">
-                                                                               <string key="NSTitle">Spelling</string>
-                                                                               <array class="NSMutableArray" key="NSMenuItems">
-                                                                                       <object class="NSMenuItem" id="177276662">
-                                                                                               <reference key="NSMenu" ref="768298486"/>
-                                                                                               <string key="NSTitle">Spelling…</string>
-                                                                                               <string key="NSKeyEquiv">:</string>
-                                                                                               <int key="NSKeyEquivModMask">1048576</int>
-                                                                                               <int key="NSMnemonicLoc">2147483647</int>
-                                                                                               <reference key="NSOnImage" ref="301225830"/>
-                                                                                               <reference key="NSMixedImage" ref="862154113"/>
-                                                                                       </object>
-                                                                                       <object class="NSMenuItem" id="832350994">
-                                                                                               <reference key="NSMenu" ref="768298486"/>
-                                                                                               <string key="NSTitle">Check Spelling</string>
-                                                                                               <string key="NSKeyEquiv">;</string>
-                                                                                               <int key="NSKeyEquivModMask">1048576</int>
-                                                                                               <int key="NSMnemonicLoc">2147483647</int>
-                                                                                               <reference key="NSOnImage" ref="301225830"/>
-                                                                                               <reference key="NSMixedImage" ref="862154113"/>
-                                                                                       </object>
-                                                                                       <object class="NSMenuItem" id="230465977">
-                                                                                               <reference key="NSMenu" ref="768298486"/>
-                                                                                               <string key="NSTitle">Check Spelling as You Type</string>
-                                                                                               <string key="NSKeyEquiv"/>
-                                                                                               <int key="NSKeyEquivModMask">1048576</int>
-                                                                                               <int key="NSMnemonicLoc">2147483647</int>
-                                                                                               <reference key="NSOnImage" ref="301225830"/>
-                                                                                               <reference key="NSMixedImage" ref="862154113"/>
-                                                                                       </object>
-                                                                               </array>
-                                                                       </object>
-                                                               </object>
-                                                       </array>
-                                               </object>
-                                       </object>
-                                       <object class="NSMenuItem" id="224272834">
-                                               <reference key="NSMenu" ref="45111635"/>
-                                               <string key="NSTitle">Window</string>
-                                               <string key="NSKeyEquiv"/>
-                                               <int key="NSKeyEquivModMask">1048576</int>
-                                               <int key="NSMnemonicLoc">2147483647</int>
-                                               <reference key="NSOnImage" ref="301225830"/>
-                                               <reference key="NSMixedImage" ref="862154113"/>
-                                               <string key="NSAction">submenuAction:</string>
-                                               <object class="NSMenu" key="NSSubmenu" id="77346976">
-                                                       <object class="NSMutableString" key="NSTitle">
-                                                               <characters key="NS.bytes">Window</characters>
-                                                       </object>
-                                                       <array class="NSMutableArray" key="NSMenuItems">
-                                                               <object class="NSMenuItem" id="711269442">
-                                                                       <reference key="NSMenu" ref="77346976"/>
-                                                                       <string key="NSTitle">Minimize</string>
-                                                                       <string key="NSKeyEquiv">m</string>
-                                                                       <int key="NSKeyEquivModMask">1048576</int>
-                                                                       <int key="NSMnemonicLoc">2147483647</int>
-                                                                       <reference key="NSOnImage" ref="301225830"/>
-                                                                       <reference key="NSMixedImage" ref="862154113"/>
-                                                               </object>
-                                                               <object class="NSMenuItem" id="531690807">
-                                                                       <reference key="NSMenu" ref="77346976"/>
-                                                                       <string key="NSTitle">Zoom</string>
-                                                                       <string key="NSKeyEquiv"/>
-                                                                       <int key="NSKeyEquivModMask">1048576</int>
-                                                                       <int key="NSMnemonicLoc">2147483647</int>
-                                                                       <reference key="NSOnImage" ref="301225830"/>
-                                                                       <reference key="NSMixedImage" ref="862154113"/>
-                                                               </object>
-                                                               <object class="NSMenuItem" id="229796363">
-                                                                       <reference key="NSMenu" ref="77346976"/>
-                                                                       <bool key="NSIsDisabled">YES</bool>
-                                                                       <bool key="NSIsSeparator">YES</bool>
-                                                                       <string key="NSTitle"/>
-                                                                       <string key="NSKeyEquiv"/>
-                                                                       <int key="NSKeyEquivModMask">1048576</int>
-                                                                       <int key="NSMnemonicLoc">2147483647</int>
-                                                                       <reference key="NSOnImage" ref="301225830"/>
-                                                                       <reference key="NSMixedImage" ref="862154113"/>
-                                                               </object>
-                                                               <object class="NSMenuItem" id="691026595">
-                                                                       <reference key="NSMenu" ref="77346976"/>
-                                                                       <string key="NSTitle">Bring All to Front</string>
-                                                                       <string key="NSKeyEquiv"/>
-                                                                       <int key="NSKeyEquivModMask">1048576</int>
-                                                                       <int key="NSMnemonicLoc">2147483647</int>
-                                                                       <reference key="NSOnImage" ref="301225830"/>
-                                                                       <reference key="NSMixedImage" ref="862154113"/>
-                                                               </object>
-                                                       </array>
-                                                       <string key="NSName">_NSWindowsMenu</string>
-                                               </object>
-                                       </object>
-                                       <object class="NSMenuItem" id="372969117">
-                                               <reference key="NSMenu" ref="45111635"/>
-                                               <string key="NSTitle">Help</string>
-                                               <string key="NSKeyEquiv"/>
-                                               <int key="NSKeyEquivModMask">1048576</int>
-                                               <int key="NSMnemonicLoc">2147483647</int>
-                                               <reference key="NSOnImage" ref="301225830"/>
-                                               <reference key="NSMixedImage" ref="862154113"/>
-                                               <string key="NSAction">submenuAction:</string>
-                                               <object class="NSMenu" key="NSSubmenu" id="839568932">
-                                                       <string key="NSTitle">Help</string>
-                                                       <array class="NSMutableArray" key="NSMenuItems">
-                                                               <object class="NSMenuItem" id="148697282">
-                                                                       <reference key="NSMenu" ref="839568932"/>
-                                                                       <bool key="NSIsDisabled">YES</bool>
-                                                                       <string key="NSTitle">XScreenSaver Help</string>
-                                                                       <string key="NSKeyEquiv">?</string>
-                                                                       <int key="NSKeyEquivModMask">1048576</int>
-                                                                       <int key="NSMnemonicLoc">2147483647</int>
-                                                                       <reference key="NSOnImage" ref="301225830"/>
-                                                                       <reference key="NSMixedImage" ref="862154113"/>
-                                                               </object>
-                                                       </array>
-                                               </object>
-                                       </object>
-                               </array>
-                               <string key="NSName">_NSMainMenu</string>
-                       </object>
-                       <object class="NSCustomObject" id="606990062">
-                               <string key="NSClassName">SaverRunner</string>
-                       </object>
-               </array>
-               <object class="IBObjectContainer" key="IBDocument.Objects">
-                       <array class="NSMutableArray" key="connectionRecords">
-                               <object class="IBConnectionRecord">
-                                       <object class="IBActionConnection" key="connection">
-                                               <string key="label">performMiniaturize:</string>
-                                               <reference key="source" ref="998231172"/>
-                                               <reference key="destination" ref="711269442"/>
-                                       </object>
-                                       <int key="connectionID">37</int>
-                               </object>
-                               <object class="IBConnectionRecord">
-                                       <object class="IBActionConnection" key="connection">
-                                               <string key="label">arrangeInFront:</string>
-                                               <reference key="source" ref="998231172"/>
-                                               <reference key="destination" ref="691026595"/>
-                                       </object>
-                                       <int key="connectionID">39</int>
-                               </object>
-                               <object class="IBConnectionRecord">
-                                       <object class="IBActionConnection" key="connection">
-                                               <string key="label">print:</string>
-                                               <reference key="source" ref="998231172"/>
-                                               <reference key="destination" ref="926886853"/>
-                                       </object>
-                                       <int key="connectionID">86</int>
-                               </object>
-                               <object class="IBConnectionRecord">
-                                       <object class="IBActionConnection" key="connection">
-                                               <string key="label">runPageLayout:</string>
-                                               <reference key="source" ref="998231172"/>
-                                               <reference key="destination" ref="876081012"/>
-                                       </object>
-                                       <int key="connectionID">87</int>
-                               </object>
-                               <object class="IBConnectionRecord">
-                                       <object class="IBActionConnection" key="connection">
-                                               <string key="label">showHelp:</string>
-                                               <reference key="source" ref="998231172"/>
-                                               <reference key="destination" ref="148697282"/>
-                                       </object>
-                                       <int key="connectionID">122</int>
-                               </object>
-                               <object class="IBConnectionRecord">
-                                       <object class="IBActionConnection" key="connection">
-                                               <string key="label">terminate:</string>
-                                               <reference key="source" ref="838516170"/>
-                                               <reference key="destination" ref="504373960"/>
-                                       </object>
-                                       <int key="connectionID">139</int>
-                               </object>
-                               <object class="IBConnectionRecord">
-                                       <object class="IBActionConnection" key="connection">
-                                               <string key="label">hideOtherApplications:</string>
-                                               <reference key="source" ref="838516170"/>
-                                               <reference key="destination" ref="468461345"/>
-                                       </object>
-                                       <int key="connectionID">146</int>
-                               </object>
-                               <object class="IBConnectionRecord">
-                                       <object class="IBActionConnection" key="connection">
-                                               <string key="label">hide:</string>
-                                               <reference key="source" ref="838516170"/>
-                                               <reference key="destination" ref="632798708"/>
-                                       </object>
-                                       <int key="connectionID">152</int>
-                               </object>
-                               <object class="IBConnectionRecord">
-                                       <object class="IBActionConnection" key="connection">
-                                               <string key="label">unhideAllApplications:</string>
-                                               <reference key="source" ref="838516170"/>
-                                               <reference key="destination" ref="437251807"/>
-                                       </object>
-                                       <int key="connectionID">153</int>
-                               </object>
-                               <object class="IBConnectionRecord">
-                                       <object class="IBActionConnection" key="connection">
-                                               <string key="label">cut:</string>
-                                               <reference key="source" ref="998231172"/>
-                                               <reference key="destination" ref="734088368"/>
-                                       </object>
-                                       <int key="connectionID">175</int>
-                               </object>
-                               <object class="IBConnectionRecord">
-                                       <object class="IBActionConnection" key="connection">
-                                               <string key="label">paste:</string>
-                                               <reference key="source" ref="998231172"/>
-                                               <reference key="destination" ref="838407332"/>
-                                       </object>
-                                       <int key="connectionID">176</int>
-                               </object>
-                               <object class="IBConnectionRecord">
-                                       <object class="IBActionConnection" key="connection">
-                                               <string key="label">redo:</string>
-                                               <reference key="source" ref="998231172"/>
-                                               <reference key="destination" ref="216516037"/>
-                                       </object>
-                                       <int key="connectionID">178</int>
-                               </object>
-                               <object class="IBConnectionRecord">
-                                       <object class="IBActionConnection" key="connection">
-                                               <string key="label">selectAll:</string>
-                                               <reference key="source" ref="998231172"/>
-                                               <reference key="destination" ref="24225155"/>
-                                       </object>
-                                       <int key="connectionID">179</int>
-                               </object>
-                               <object class="IBConnectionRecord">
-                                       <object class="IBActionConnection" key="connection">
-                                               <string key="label">undo:</string>
-                                               <reference key="source" ref="998231172"/>
-                                               <reference key="destination" ref="497437714"/>
-                                       </object>
-                                       <int key="connectionID">180</int>
-                               </object>
-                               <object class="IBConnectionRecord">
-                                       <object class="IBActionConnection" key="connection">
-                                               <string key="label">copy:</string>
-                                               <reference key="source" ref="998231172"/>
-                                               <reference key="destination" ref="56237994"/>
-                                       </object>
-                                       <int key="connectionID">181</int>
-                               </object>
-                               <object class="IBConnectionRecord">
-                                       <object class="IBActionConnection" key="connection">
-                                               <string key="label">showGuessPanel:</string>
-                                               <reference key="source" ref="998231172"/>
-                                               <reference key="destination" ref="177276662"/>
-                                       </object>
-                                       <int key="connectionID">188</int>
-                               </object>
-                               <object class="IBConnectionRecord">
-                                       <object class="IBActionConnection" key="connection">
-                                               <string key="label">checkSpelling:</string>
-                                               <reference key="source" ref="998231172"/>
-                                               <reference key="destination" ref="832350994"/>
-                                       </object>
-                                       <int key="connectionID">190</int>
-                               </object>
-                               <object class="IBConnectionRecord">
-                                       <object class="IBActionConnection" key="connection">
-                                               <string key="label">toggleContinuousSpellChecking:</string>
-                                               <reference key="source" ref="998231172"/>
-                                               <reference key="destination" ref="230465977"/>
-                                       </object>
-                                       <int key="connectionID">192</int>
-                               </object>
-                               <object class="IBConnectionRecord">
-                                       <object class="IBActionConnection" key="connection">
-                                               <string key="label">performClose:</string>
-                                               <reference key="source" ref="998231172"/>
-                                               <reference key="destination" ref="222387297"/>
-                                       </object>
-                                       <int key="connectionID">193</int>
-                               </object>
-                               <object class="IBConnectionRecord">
-                                       <object class="IBActionConnection" key="connection">
-                                               <string key="label">delete:</string>
-                                               <reference key="source" ref="998231172"/>
-                                               <reference key="destination" ref="406944349"/>
-                                       </object>
-                                       <int key="connectionID">195</int>
-                               </object>
-                               <object class="IBConnectionRecord">
-                                       <object class="IBActionConnection" key="connection">
-                                               <string key="label">performZoom:</string>
-                                               <reference key="source" ref="998231172"/>
-                                               <reference key="destination" ref="531690807"/>
-                                       </object>
-                                       <int key="connectionID">198</int>
-                               </object>
-                               <object class="IBConnectionRecord">
-                                       <object class="IBActionConnection" key="connection">
-                                               <string key="label">performFindPanelAction:</string>
-                                               <reference key="source" ref="998231172"/>
-                                               <reference key="destination" ref="10797587"/>
-                                       </object>
-                                       <int key="connectionID">199</int>
-                               </object>
-                               <object class="IBConnectionRecord">
-                                       <object class="IBActionConnection" key="connection">
-                                               <string key="label">performFindPanelAction:</string>
-                                               <reference key="source" ref="998231172"/>
-                                               <reference key="destination" ref="144442828"/>
-                                       </object>
-                                       <int key="connectionID">200</int>
-                               </object>
-                               <object class="IBConnectionRecord">
-                                       <object class="IBActionConnection" key="connection">
-                                               <string key="label">performFindPanelAction:</string>
-                                               <reference key="source" ref="998231172"/>
-                                               <reference key="destination" ref="208214618"/>
-                                       </object>
-                                       <int key="connectionID">201</int>
-                               </object>
-                               <object class="IBConnectionRecord">
-                                       <object class="IBActionConnection" key="connection">
-                                               <string key="label">performFindPanelAction:</string>
-                                               <reference key="source" ref="998231172"/>
-                                               <reference key="destination" ref="841162955"/>
-                                       </object>
-                                       <int key="connectionID">202</int>
-                               </object>
-                               <object class="IBConnectionRecord">
-                                       <object class="IBActionConnection" key="connection">
-                                               <string key="label">centerSelectionInVisibleArea:</string>
-                                               <reference key="source" ref="998231172"/>
-                                               <reference key="destination" ref="912738317"/>
-                                       </object>
-                                       <int key="connectionID">203</int>
-                               </object>
-                               <object class="IBConnectionRecord">
-                                       <object class="IBActionConnection" key="connection">
-                                               <string key="label">pasteAsPlainText:</string>
-                                               <reference key="source" ref="998231172"/>
-                                               <reference key="destination" ref="285560595"/>
-                                       </object>
-                                       <int key="connectionID">205</int>
-                               </object>
-                               <object class="IBConnectionRecord">
-                                       <object class="IBOutletConnection" key="connection">
-                                               <string key="label">delegate</string>
-                                               <reference key="source" ref="838516170"/>
-                                               <reference key="destination" ref="606990062"/>
-                                       </object>
-                                       <int key="connectionID">207</int>
-                               </object>
-                               <object class="IBConnectionRecord">
-                                       <object class="IBOutletConnection" key="connection">
-                                               <string key="label">menubar</string>
-                                               <reference key="source" ref="606990062"/>
-                                               <reference key="destination" ref="45111635"/>
-                                       </object>
-                                       <int key="connectionID">209</int>
-                               </object>
-                               <object class="IBConnectionRecord">
-                                       <object class="IBActionConnection" key="connection">
-                                               <string key="label">openPreferences:</string>
-                                               <reference key="source" ref="606990062"/>
-                                               <reference key="destination" ref="381880730"/>
-                                       </object>
-                                       <int key="connectionID">212</int>
-                               </object>
-                               <object class="IBConnectionRecord">
-                                       <object class="IBActionConnection" key="connection">
-                                               <string key="label">aboutPanel:</string>
-                                               <reference key="source" ref="606990062"/>
-                                               <reference key="destination" ref="8914611"/>
-                                       </object>
-                                       <int key="connectionID">213</int>
-                               </object>
-                       </array>
-                       <object class="IBMutableOrderedSet" key="objectRecords">
-                               <array key="orderedObjects">
-                                       <object class="IBObjectRecord">
-                                               <int key="objectID">0</int>
-                                               <array key="object" id="0"/>
-                                               <reference key="children" ref="837227664"/>
-                                               <nil key="parent"/>
-                                       </object>
-                                       <object class="IBObjectRecord">
-                                               <int key="objectID">-2</int>
-                                               <reference key="object" ref="838516170"/>
-                                               <reference key="parent" ref="0"/>
-                                               <string key="objectName">File's Owner</string>
-                                       </object>
-                                       <object class="IBObjectRecord">
-                                               <int key="objectID">-1</int>
-                                               <reference key="object" ref="998231172"/>
-                                               <reference key="parent" ref="0"/>
-                                               <string key="objectName">First Responder</string>
-                                       </object>
-                                       <object class="IBObjectRecord">
-                                               <int key="objectID">-3</int>
-                                               <reference key="object" ref="996827039"/>
-                                               <reference key="parent" ref="0"/>
-                                               <string key="objectName">Application</string>
-                                       </object>
-                                       <object class="IBObjectRecord">
-                                               <int key="objectID">29</int>
-                                               <reference key="object" ref="45111635"/>
-                                               <array class="NSMutableArray" key="children">
-                                                       <reference ref="224272834"/>
-                                                       <reference ref="690370694"/>
-                                                       <reference ref="799166226"/>
-                                                       <reference ref="372969117"/>
-                                                       <reference ref="455143041"/>
-                                               </array>
-                                               <reference key="parent" ref="0"/>
-                                               <string key="objectName">MainMenu</string>
-                                       </object>
-                                       <object class="IBObjectRecord">
-                                               <int key="objectID">19</int>
-                                               <reference key="object" ref="224272834"/>
-                                               <array class="NSMutableArray" key="children">
-                                                       <reference ref="77346976"/>
-                                               </array>
-                                               <reference key="parent" ref="45111635"/>
-                                       </object>
-                                       <object class="IBObjectRecord">
-                                               <int key="objectID">24</int>
-                                               <reference key="object" ref="77346976"/>
-                                               <array class="NSMutableArray" key="children">
-                                                       <reference ref="691026595"/>
-                                                       <reference ref="711269442"/>
-                                                       <reference ref="229796363"/>
-                                                       <reference ref="531690807"/>
-                                               </array>
-                                               <reference key="parent" ref="224272834"/>
-                                       </object>
-                                       <object class="IBObjectRecord">
-                                               <int key="objectID">5</int>
-                                               <reference key="object" ref="691026595"/>
-                                               <reference key="parent" ref="77346976"/>
-                                       </object>
-                                       <object class="IBObjectRecord">
-                                               <int key="objectID">23</int>
-                                               <reference key="object" ref="711269442"/>
-                                               <reference key="parent" ref="77346976"/>
-                                       </object>
-                                       <object class="IBObjectRecord">
-                                               <int key="objectID">92</int>
-                                               <reference key="object" ref="229796363"/>
-                                               <reference key="parent" ref="77346976"/>
-                                       </object>
-                                       <object class="IBObjectRecord">
-                                               <int key="objectID">197</int>
-                                               <reference key="object" ref="531690807"/>
-                                               <reference key="parent" ref="77346976"/>
-                                       </object>
-                                       <object class="IBObjectRecord">
-                                               <int key="objectID">56</int>
-                                               <reference key="object" ref="690370694"/>
-                                               <array class="NSMutableArray" key="children">
-                                                       <reference ref="648337178"/>
-                                               </array>
-                                               <reference key="parent" ref="45111635"/>
-                                       </object>
-                                       <object class="IBObjectRecord">
-                                               <int key="objectID">57</int>
-                                               <reference key="object" ref="648337178"/>
-                                               <array class="NSMutableArray" key="children">
-                                                       <reference ref="8914611"/>
-                                                       <reference ref="381880730"/>
-                                                       <reference ref="923603386"/>
-                                                       <reference ref="632798708"/>
-                                                       <reference ref="504373960"/>
-                                                       <reference ref="862592074"/>
-                                                       <reference ref="819131537"/>
-                                                       <reference ref="468461345"/>
-                                                       <reference ref="583949930"/>
-                                                       <reference ref="437251807"/>
-                                                       <reference ref="627255583"/>
-                                               </array>
-                                               <reference key="parent" ref="690370694"/>
-                                       </object>
-                                       <object class="IBObjectRecord">
-                                               <int key="objectID">58</int>
-                                               <reference key="object" ref="8914611"/>
-                                               <reference key="parent" ref="648337178"/>
-                                       </object>
-                                       <object class="IBObjectRecord">
-                                               <int key="objectID">129</int>
-                                               <reference key="object" ref="381880730"/>
-                                               <reference key="parent" ref="648337178"/>
-                                       </object>
-                                       <object class="IBObjectRecord">
-                                               <int key="objectID">131</int>
-                                               <reference key="object" ref="923603386"/>
-                                               <array class="NSMutableArray" key="children">
-                                                       <reference ref="1035646574"/>
-                                               </array>
-                                               <reference key="parent" ref="648337178"/>
-                                       </object>
-                                       <object class="IBObjectRecord">
-                                               <int key="objectID">130</int>
-                                               <reference key="object" ref="1035646574"/>
-                                               <reference key="parent" ref="923603386"/>
-                                       </object>
-                                       <object class="IBObjectRecord">
-                                               <int key="objectID">134</int>
-                                               <reference key="object" ref="632798708"/>
-                                               <reference key="parent" ref="648337178"/>
-                                       </object>
-                                       <object class="IBObjectRecord">
-                                               <int key="objectID">136</int>
-                                               <reference key="object" ref="504373960"/>
-                                               <reference key="parent" ref="648337178"/>
-                                       </object>
-                                       <object class="IBObjectRecord">
-                                               <int key="objectID">143</int>
-                                               <reference key="object" ref="862592074"/>
-                                               <reference key="parent" ref="648337178"/>
-                                       </object>
-                                       <object class="IBObjectRecord">
-                                               <int key="objectID">144</int>
-                                               <reference key="object" ref="819131537"/>
-                                               <reference key="parent" ref="648337178"/>
-                                       </object>
-                                       <object class="IBObjectRecord">
-                                               <int key="objectID">145</int>
-                                               <reference key="object" ref="468461345"/>
-                                               <reference key="parent" ref="648337178"/>
-                                       </object>
-                                       <object class="IBObjectRecord">
-                                               <int key="objectID">149</int>
-                                               <reference key="object" ref="583949930"/>
-                                               <reference key="parent" ref="648337178"/>
-                                       </object>
-                                       <object class="IBObjectRecord">
-                                               <int key="objectID">150</int>
-                                               <reference key="object" ref="437251807"/>
-                                               <reference key="parent" ref="648337178"/>
-                                       </object>
-                                       <object class="IBObjectRecord">
-                                               <int key="objectID">196</int>
-                                               <reference key="object" ref="627255583"/>
-                                               <reference key="parent" ref="648337178"/>
-                                       </object>
-                                       <object class="IBObjectRecord">
-                                               <int key="objectID">83</int>
-                                               <reference key="object" ref="799166226"/>
-                                               <array class="NSMutableArray" key="children">
-                                                       <reference ref="811240304"/>
-                                               </array>
-                                               <reference key="parent" ref="45111635"/>
-                                       </object>
-                                       <object class="IBObjectRecord">
-                                               <int key="objectID">81</int>
-                                               <reference key="object" ref="811240304"/>
-                                               <array class="NSMutableArray" key="children">
-                                                       <reference ref="222387297"/>
-                                                       <reference ref="608174085"/>
-                                                       <reference ref="876081012"/>
-                                                       <reference ref="926886853"/>
-                                               </array>
-                                               <reference key="parent" ref="799166226"/>
-                                       </object>
-                                       <object class="IBObjectRecord">
-                                               <int key="objectID">73</int>
-                                               <reference key="object" ref="222387297"/>
-                                               <reference key="parent" ref="811240304"/>
-                                       </object>
-                                       <object class="IBObjectRecord">
-                                               <int key="objectID">74</int>
-                                               <reference key="object" ref="608174085"/>
-                                               <reference key="parent" ref="811240304"/>
-                                       </object>
-                                       <object class="IBObjectRecord">
-                                               <int key="objectID">77</int>
-                                               <reference key="object" ref="876081012"/>
-                                               <reference key="parent" ref="811240304"/>
-                                       </object>
-                                       <object class="IBObjectRecord">
-                                               <int key="objectID">78</int>
-                                               <reference key="object" ref="926886853"/>
-                                               <reference key="parent" ref="811240304"/>
-                                       </object>
-                                       <object class="IBObjectRecord">
-                                               <int key="objectID">103</int>
-                                               <reference key="object" ref="372969117"/>
-                                               <array class="NSMutableArray" key="children">
-                                                       <reference ref="839568932"/>
-                                               </array>
-                                               <reference key="parent" ref="45111635"/>
-                                       </object>
-                                       <object class="IBObjectRecord">
-                                               <int key="objectID">106</int>
-                                               <reference key="object" ref="839568932"/>
-                                               <array class="NSMutableArray" key="children">
-                                                       <reference ref="148697282"/>
-                                               </array>
-                                               <reference key="parent" ref="372969117"/>
-                                       </object>
-                                       <object class="IBObjectRecord">
-                                               <int key="objectID">111</int>
-                                               <reference key="object" ref="148697282"/>
-                                               <reference key="parent" ref="839568932"/>
-                                       </object>
-                                       <object class="IBObjectRecord">
-                                               <int key="objectID">163</int>
-                                               <reference key="object" ref="455143041"/>
-                                               <array class="NSMutableArray" key="children">
-                                                       <reference ref="750267634"/>
-                                               </array>
-                                               <reference key="parent" ref="45111635"/>
-                                       </object>
-                                       <object class="IBObjectRecord">
-                                               <int key="objectID">169</int>
-                                               <reference key="object" ref="750267634"/>
-                                               <array class="NSMutableArray" key="children">
-                                                       <reference ref="50949474"/>
-                                                       <reference ref="56237994"/>
-                                                       <reference ref="497437714"/>
-                                                       <reference ref="734088368"/>
-                                                       <reference ref="406944349"/>
-                                                       <reference ref="18140746"/>
-                                                       <reference ref="838407332"/>
-                                                       <reference ref="24225155"/>
-                                                       <reference ref="216516037"/>
-                                                       <reference ref="785449747"/>
-                                                       <reference ref="883299468"/>
-                                                       <reference ref="285560595"/>
-                                               </array>
-                                               <reference key="parent" ref="455143041"/>
-                                       </object>
-                                       <object class="IBObjectRecord">
-                                               <int key="objectID">156</int>
-                                               <reference key="object" ref="50949474"/>
-                                               <reference key="parent" ref="750267634"/>
-                                       </object>
-                                       <object class="IBObjectRecord">
-                                               <int key="objectID">157</int>
-                                               <reference key="object" ref="56237994"/>
-                                               <reference key="parent" ref="750267634"/>
-                                       </object>
-                                       <object class="IBObjectRecord">
-                                               <int key="objectID">158</int>
-                                               <reference key="object" ref="497437714"/>
-                                               <reference key="parent" ref="750267634"/>
-                                       </object>
-                                       <object class="IBObjectRecord">
-                                               <int key="objectID">160</int>
-                                               <reference key="object" ref="734088368"/>
-                                               <reference key="parent" ref="750267634"/>
-                                       </object>
-                                       <object class="IBObjectRecord">
-                                               <int key="objectID">164</int>
-                                               <reference key="object" ref="406944349"/>
-                                               <reference key="parent" ref="750267634"/>
-                                       </object>
-                                       <object class="IBObjectRecord">
-                                               <int key="objectID">168</int>
-                                               <reference key="object" ref="18140746"/>
-                                               <array class="NSMutableArray" key="children">
-                                                       <reference ref="830368365"/>
-                                               </array>
-                                               <reference key="parent" ref="750267634"/>
-                                       </object>
-                                       <object class="IBObjectRecord">
-                                               <int key="objectID">159</int>
-                                               <reference key="object" ref="830368365"/>
-                                               <array class="NSMutableArray" key="children">
-                                                       <reference ref="10797587"/>
-                                                       <reference ref="912738317"/>
-                                                       <reference ref="841162955"/>
-                                                       <reference ref="208214618"/>
-                                                       <reference ref="144442828"/>
-                                               </array>
-                                               <reference key="parent" ref="18140746"/>
-                                       </object>
-                                       <object class="IBObjectRecord">
-                                               <int key="objectID">154</int>
-                                               <reference key="object" ref="10797587"/>
-                                               <reference key="parent" ref="830368365"/>
-                                       </object>
-                                       <object class="IBObjectRecord">
-                                               <int key="objectID">155</int>
-                                               <reference key="object" ref="912738317"/>
-                                               <reference key="parent" ref="830368365"/>
-                                       </object>
-                                       <object class="IBObjectRecord">
-                                               <int key="objectID">161</int>
-                                               <reference key="object" ref="841162955"/>
-                                               <reference key="parent" ref="830368365"/>
-                                       </object>
-                                       <object class="IBObjectRecord">
-                                               <int key="objectID">162</int>
-                                               <reference key="object" ref="208214618"/>
-                                               <reference key="parent" ref="830368365"/>
-                                       </object>
-                                       <object class="IBObjectRecord">
-                                               <int key="objectID">167</int>
-                                               <reference key="object" ref="144442828"/>
-                                               <reference key="parent" ref="830368365"/>
-                                       </object>
-                                       <object class="IBObjectRecord">
-                                               <int key="objectID">171</int>
-                                               <reference key="object" ref="838407332"/>
-                                               <reference key="parent" ref="750267634"/>
-                                       </object>
-                                       <object class="IBObjectRecord">
-                                               <int key="objectID">172</int>
-                                               <reference key="object" ref="24225155"/>
-                                               <reference key="parent" ref="750267634"/>
-                                       </object>
-                                       <object class="IBObjectRecord">
-                                               <int key="objectID">173</int>
-                                               <reference key="object" ref="216516037"/>
-                                               <reference key="parent" ref="750267634"/>
-                                       </object>
-                                       <object class="IBObjectRecord">
-                                               <int key="objectID">174</int>
-                                               <reference key="object" ref="785449747"/>
-                                               <reference key="parent" ref="750267634"/>
-                                       </object>
-                                       <object class="IBObjectRecord">
-                                               <int key="objectID">184</int>
-                                               <reference key="object" ref="883299468"/>
-                                               <array class="NSMutableArray" key="children">
-                                                       <reference ref="768298486"/>
-                                               </array>
-                                               <reference key="parent" ref="750267634"/>
-                                       </object>
-                                       <object class="IBObjectRecord">
-                                               <int key="objectID">185</int>
-                                               <reference key="object" ref="768298486"/>
-                                               <array class="NSMutableArray" key="children">
-                                                       <reference ref="177276662"/>
-                                                       <reference ref="832350994"/>
-                                                       <reference ref="230465977"/>
-                                               </array>
-                                               <reference key="parent" ref="883299468"/>
-                                       </object>
-                                       <object class="IBObjectRecord">
-                                               <int key="objectID">187</int>
-                                               <reference key="object" ref="177276662"/>
-                                               <reference key="parent" ref="768298486"/>
-                                       </object>
-                                       <object class="IBObjectRecord">
-                                               <int key="objectID">189</int>
-                                               <reference key="object" ref="832350994"/>
-                                               <reference key="parent" ref="768298486"/>
-                                       </object>
-                                       <object class="IBObjectRecord">
-                                               <int key="objectID">191</int>
-                                               <reference key="object" ref="230465977"/>
-                                               <reference key="parent" ref="768298486"/>
-                                       </object>
-                                       <object class="IBObjectRecord">
-                                               <int key="objectID">204</int>
-                                               <reference key="object" ref="285560595"/>
-                                               <reference key="parent" ref="750267634"/>
-                                       </object>
-                                       <object class="IBObjectRecord">
-                                               <int key="objectID">206</int>
-                                               <reference key="object" ref="606990062"/>
-                                               <reference key="parent" ref="0"/>
-                                               <string key="objectName">SaverRunner</string>
-                                       </object>
-                               </array>
-                       </object>
-                       <dictionary class="NSMutableDictionary" key="flattenedProperties">
-                               <string key="-3.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
-                               <boolean value="YES" key="-3.ImportedFromIB2"/>
-                               <string key="103.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
-                               <boolean value="YES" key="103.ImportedFromIB2"/>
-                               <string key="106.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
-                               <boolean value="YES" key="106.ImportedFromIB2"/>
-                               <string key="111.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
-                               <boolean value="YES" key="111.ImportedFromIB2"/>
-                               <string key="129.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
-                               <boolean value="YES" key="129.ImportedFromIB2"/>
-                               <string key="130.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
-                               <boolean value="YES" key="130.ImportedFromIB2"/>
-                               <string key="131.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
-                               <boolean value="YES" key="131.ImportedFromIB2"/>
-                               <string key="134.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
-                               <boolean value="YES" key="134.ImportedFromIB2"/>
-                               <string key="136.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
-                               <boolean value="YES" key="136.ImportedFromIB2"/>
-                               <string key="143.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
-                               <boolean value="YES" key="143.ImportedFromIB2"/>
-                               <string key="144.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
-                               <boolean value="YES" key="144.ImportedFromIB2"/>
-                               <string key="145.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
-                               <boolean value="YES" key="145.ImportedFromIB2"/>
-                               <string key="149.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
-                               <boolean value="YES" key="149.ImportedFromIB2"/>
-                               <string key="150.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
-                               <boolean value="YES" key="150.ImportedFromIB2"/>
-                               <string key="154.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
-                               <boolean value="YES" key="154.ImportedFromIB2"/>
-                               <string key="155.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
-                               <boolean value="YES" key="155.ImportedFromIB2"/>
-                               <string key="156.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
-                               <boolean value="YES" key="156.ImportedFromIB2"/>
-                               <string key="157.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
-                               <boolean value="YES" key="157.ImportedFromIB2"/>
-                               <string key="158.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
-                               <boolean value="YES" key="158.ImportedFromIB2"/>
-                               <string key="159.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
-                               <boolean value="YES" key="159.ImportedFromIB2"/>
-                               <string key="160.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
-                               <boolean value="YES" key="160.ImportedFromIB2"/>
-                               <string key="161.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
-                               <boolean value="YES" key="161.ImportedFromIB2"/>
-                               <string key="162.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
-                               <boolean value="YES" key="162.ImportedFromIB2"/>
-                               <string key="163.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
-                               <boolean value="YES" key="163.ImportedFromIB2"/>
-                               <string key="164.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
-                               <boolean value="YES" key="164.ImportedFromIB2"/>
-                               <string key="167.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
-                               <boolean value="YES" key="167.ImportedFromIB2"/>
-                               <string key="168.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
-                               <boolean value="YES" key="168.ImportedFromIB2"/>
-                               <string key="169.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
-                               <boolean value="YES" key="169.ImportedFromIB2"/>
-                               <string key="171.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
-                               <boolean value="YES" key="171.ImportedFromIB2"/>
-                               <string key="172.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
-                               <boolean value="YES" key="172.ImportedFromIB2"/>
-                               <string key="173.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
-                               <boolean value="YES" key="173.ImportedFromIB2"/>
-                               <string key="174.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
-                               <boolean value="YES" key="174.ImportedFromIB2"/>
-                               <string key="184.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
-                               <boolean value="YES" key="184.ImportedFromIB2"/>
-                               <string key="185.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
-                               <boolean value="YES" key="185.ImportedFromIB2"/>
-                               <string key="187.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
-                               <boolean value="YES" key="187.ImportedFromIB2"/>
-                               <string key="189.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
-                               <boolean value="YES" key="189.ImportedFromIB2"/>
-                               <string key="19.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
-                               <boolean value="YES" key="19.ImportedFromIB2"/>
-                               <string key="191.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
-                               <boolean value="YES" key="191.ImportedFromIB2"/>
-                               <string key="196.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
-                               <boolean value="YES" key="196.ImportedFromIB2"/>
-                               <string key="197.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
-                               <boolean value="YES" key="197.ImportedFromIB2"/>
-                               <string key="204.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
-                               <boolean value="YES" key="204.ImportedFromIB2"/>
-                               <boolean value="YES" key="206.ImportedFromIB2"/>
-                               <string key="23.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
-                               <boolean value="YES" key="23.ImportedFromIB2"/>
-                               <string key="24.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
-                               <boolean value="YES" key="24.ImportedFromIB2"/>
-                               <string key="29.IBEditorWindowLastContentRect">{{72, 1365}, {344, 20}}</string>
-                               <string key="29.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
-                               <boolean value="YES" key="29.ImportedFromIB2"/>
-                               <string key="5.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
-                               <boolean value="YES" key="5.ImportedFromIB2"/>
-                               <string key="56.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
-                               <boolean value="YES" key="56.ImportedFromIB2"/>
-                               <string key="57.IBEditorWindowLastContentRect">{{84, 1182}, {225, 183}}</string>
-                               <string key="57.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
-                               <boolean value="YES" key="57.ImportedFromIB2"/>
-                               <string key="58.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
-                               <boolean value="YES" key="58.ImportedFromIB2"/>
-                               <string key="73.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
-                               <boolean value="YES" key="73.ImportedFromIB2"/>
-                               <string key="74.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
-                               <boolean value="YES" key="74.ImportedFromIB2"/>
-                               <string key="77.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
-                               <boolean value="YES" key="77.ImportedFromIB2"/>
-                               <string key="78.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
-                               <boolean value="YES" key="78.ImportedFromIB2"/>
-                               <string key="81.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
-                               <boolean value="YES" key="81.ImportedFromIB2"/>
-                               <string key="83.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
-                               <boolean value="YES" key="83.ImportedFromIB2"/>
-                               <string key="92.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
-                               <boolean value="YES" key="92.ImportedFromIB2"/>
-                       </dictionary>
-                       <dictionary class="NSMutableDictionary" key="unlocalizedProperties"/>
-                       <nil key="activeLocalization"/>
-                       <dictionary class="NSMutableDictionary" key="localizations"/>
-                       <nil key="sourceID"/>
-                       <int key="maxID">213</int>
-               </object>
-               <object class="IBClassDescriber" key="IBDocument.Classes">
-                       <array class="NSMutableArray" key="referencedPartialClassDescriptions">
-                               <object class="IBPartialClassDescription">
-                                       <string key="className">SaverRunner</string>
-                                       <string key="superclassName">NSObject</string>
-                                       <dictionary class="NSMutableDictionary" key="actions">
-                                               <string key="aboutPanel:">id</string>
-                                               <string key="openPreferences:">id</string>
-                                       </dictionary>
-                                       <dictionary class="NSMutableDictionary" key="actionInfosByName">
-                                               <object class="IBActionInfo" key="aboutPanel:">
-                                                       <string key="name">aboutPanel:</string>
-                                                       <string key="candidateClassName">id</string>
-                                               </object>
-                                               <object class="IBActionInfo" key="openPreferences:">
-                                                       <string key="name">openPreferences:</string>
-                                                       <string key="candidateClassName">id</string>
-                                               </object>
-                                       </dictionary>
-                                       <object class="NSMutableDictionary" key="outlets">
-                                               <string key="NS.key.0">menubar</string>
-                                               <string key="NS.object.0">NSMenu</string>
-                                       </object>
-                                       <object class="NSMutableDictionary" key="toOneOutletInfosByName">
-                                               <string key="NS.key.0">menubar</string>
-                                               <object class="IBToOneOutletInfo" key="NS.object.0">
-                                                       <string key="name">menubar</string>
-                                                       <string key="candidateClassName">NSMenu</string>
-                                               </object>
-                                       </object>
-                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
-                                               <string key="majorKey">IBProjectSource</string>
-                                               <string key="minorKey">OSX/SaverRunner.h</string>
-                                       </object>
-                               </object>
-                       </array>
-                       <array class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+">
-                               <object class="IBPartialClassDescription">
-                                       <string key="className">NSApplication</string>
-                                       <string key="superclassName">NSResponder</string>
-                                       <object class="IBClassDescriptionSource" key="sourceIdentifier" id="559430808">
-                                               <string key="majorKey">IBFrameworkSource</string>
-                                               <string key="minorKey">AppKit.framework/Headers/NSApplication.h</string>
-                                       </object>
-                               </object>
-                               <object class="IBPartialClassDescription">
-                                       <string key="className">NSApplication</string>
-                                       <object class="IBClassDescriptionSource" key="sourceIdentifier" id="632847653">
-                                               <string key="majorKey">IBFrameworkSource</string>
-                                               <string key="minorKey">AppKit.framework/Headers/NSApplicationScripting.h</string>
-                                       </object>
-                               </object>
-                               <object class="IBPartialClassDescription">
-                                       <string key="className">NSApplication</string>
-                                       <object class="IBClassDescriptionSource" key="sourceIdentifier" id="391792136">
-                                               <string key="majorKey">IBFrameworkSource</string>
-                                               <string key="minorKey">AppKit.framework/Headers/NSColorPanel.h</string>
-                                       </object>
-                               </object>
-                               <object class="IBPartialClassDescription">
-                                       <string key="className">NSApplication</string>
-                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
-                                               <string key="majorKey">IBFrameworkSource</string>
-                                               <string key="minorKey">AppKit.framework/Headers/NSHelpManager.h</string>
-                                       </object>
-                               </object>
-                               <object class="IBPartialClassDescription">
-                                       <string key="className">NSApplication</string>
-                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
-                                               <string key="majorKey">IBFrameworkSource</string>
-                                               <string key="minorKey">AppKit.framework/Headers/NSPageLayout.h</string>
-                                       </object>
-                               </object>
-                               <object class="IBPartialClassDescription">
-                                       <string key="className">NSBrowser</string>
-                                       <string key="superclassName">NSControl</string>
-                                       <object class="IBClassDescriptionSource" key="sourceIdentifier" id="988770048">
-                                               <string key="majorKey">IBFrameworkSource</string>
-                                               <string key="minorKey">AppKit.framework/Headers/NSBrowser.h</string>
-                                       </object>
-                               </object>
-                               <object class="IBPartialClassDescription">
-                                       <string key="className">NSControl</string>
-                                       <string key="superclassName">NSView</string>
-                                       <object class="IBClassDescriptionSource" key="sourceIdentifier" id="339469989">
-                                               <string key="majorKey">IBFrameworkSource</string>
-                                               <string key="minorKey">AppKit.framework/Headers/NSControl.h</string>
-                                       </object>
-                               </object>
-                               <object class="IBPartialClassDescription">
-                                       <string key="className">NSDocument</string>
-                                       <string key="superclassName">NSObject</string>
-                                       <dictionary class="NSMutableDictionary" key="actions">
-                                               <string key="printDocument:">id</string>
-                                               <string key="revertDocumentToSaved:">id</string>
-                                               <string key="runPageLayout:">id</string>
-                                               <string key="saveDocument:">id</string>
-                                               <string key="saveDocumentAs:">id</string>
-                                               <string key="saveDocumentTo:">id</string>
-                                       </dictionary>
-                                       <dictionary class="NSMutableDictionary" key="actionInfosByName">
-                                               <object class="IBActionInfo" key="printDocument:">
-                                                       <string key="name">printDocument:</string>
-                                                       <string key="candidateClassName">id</string>
-                                               </object>
-                                               <object class="IBActionInfo" key="revertDocumentToSaved:">
-                                                       <string key="name">revertDocumentToSaved:</string>
-                                                       <string key="candidateClassName">id</string>
-                                               </object>
-                                               <object class="IBActionInfo" key="runPageLayout:">
-                                                       <string key="name">runPageLayout:</string>
-                                                       <string key="candidateClassName">id</string>
-                                               </object>
-                                               <object class="IBActionInfo" key="saveDocument:">
-                                                       <string key="name">saveDocument:</string>
-                                                       <string key="candidateClassName">id</string>
-                                               </object>
-                                               <object class="IBActionInfo" key="saveDocumentAs:">
-                                                       <string key="name">saveDocumentAs:</string>
-                                                       <string key="candidateClassName">id</string>
-                                               </object>
-                                               <object class="IBActionInfo" key="saveDocumentTo:">
-                                                       <string key="name">saveDocumentTo:</string>
-                                                       <string key="candidateClassName">id</string>
-                                               </object>
-                                       </dictionary>
-                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
-                                               <string key="majorKey">IBFrameworkSource</string>
-                                               <string key="minorKey">AppKit.framework/Headers/NSDocument.h</string>
-                                       </object>
-                               </object>
-                               <object class="IBPartialClassDescription">
-                                       <string key="className">NSDocument</string>
-                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
-                                               <string key="majorKey">IBFrameworkSource</string>
-                                               <string key="minorKey">AppKit.framework/Headers/NSDocumentScripting.h</string>
-                                       </object>
-                               </object>
-                               <object class="IBPartialClassDescription">
-                                       <string key="className">NSMatrix</string>
-                                       <string key="superclassName">NSControl</string>
-                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
-                                               <string key="majorKey">IBFrameworkSource</string>
-                                               <string key="minorKey">AppKit.framework/Headers/NSMatrix.h</string>
-                                       </object>
-                               </object>
-                               <object class="IBPartialClassDescription">
-                                       <string key="className">NSMenu</string>
-                                       <string key="superclassName">NSObject</string>
-                                       <object class="IBClassDescriptionSource" key="sourceIdentifier" id="1054084886">
-                                               <string key="majorKey">IBFrameworkSource</string>
-                                               <string key="minorKey">AppKit.framework/Headers/NSMenu.h</string>
-                                       </object>
-                               </object>
-                               <object class="IBPartialClassDescription">
-                                       <string key="className">NSMenuItem</string>
-                                       <string key="superclassName">NSObject</string>
-                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
-                                               <string key="majorKey">IBFrameworkSource</string>
-                                               <string key="minorKey">AppKit.framework/Headers/NSMenuItem.h</string>
-                                       </object>
-                               </object>
-                               <object class="IBPartialClassDescription">
-                                       <string key="className">NSMovieView</string>
-                                       <string key="superclassName">NSView</string>
-                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
-                                               <string key="majorKey">IBFrameworkSource</string>
-                                               <string key="minorKey">AppKit.framework/Headers/NSMovieView.h</string>
-                                       </object>
-                               </object>
-                               <object class="IBPartialClassDescription">
-                                       <string key="className">NSObject</string>
-                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
-                                               <string key="majorKey">IBFrameworkSource</string>
-                                               <string key="minorKey">AppKit.framework/Headers/NSAccessibility.h</string>
-                                       </object>
-                               </object>
-                               <object class="IBPartialClassDescription">
-                                       <string key="className">NSObject</string>
-                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
-                                               <string key="majorKey">IBFrameworkSource</string>
-                                               <string key="minorKey">AppKit.framework/Headers/NSAlert.h</string>
-                                       </object>
-                               </object>
-                               <object class="IBPartialClassDescription">
-                                       <string key="className">NSObject</string>
-                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
-                                               <string key="majorKey">IBFrameworkSource</string>
-                                               <string key="minorKey">AppKit.framework/Headers/NSAnimation.h</string>
-                                       </object>
-                               </object>
-                               <object class="IBPartialClassDescription">
-                                       <string key="className">NSObject</string>
-                                       <reference key="sourceIdentifier" ref="559430808"/>
-                               </object>
-                               <object class="IBPartialClassDescription">
-                                       <string key="className">NSObject</string>
-                                       <reference key="sourceIdentifier" ref="632847653"/>
-                               </object>
-                               <object class="IBPartialClassDescription">
-                                       <string key="className">NSObject</string>
-                                       <reference key="sourceIdentifier" ref="988770048"/>
-                               </object>
-                               <object class="IBPartialClassDescription">
-                                       <string key="className">NSObject</string>
-                                       <reference key="sourceIdentifier" ref="391792136"/>
-                               </object>
-                               <object class="IBPartialClassDescription">
-                                       <string key="className">NSObject</string>
-                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
-                                               <string key="majorKey">IBFrameworkSource</string>
-                                               <string key="minorKey">AppKit.framework/Headers/NSComboBox.h</string>
-                                       </object>
-                               </object>
-                               <object class="IBPartialClassDescription">
-                                       <string key="className">NSObject</string>
-                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
-                                               <string key="majorKey">IBFrameworkSource</string>
-                                               <string key="minorKey">AppKit.framework/Headers/NSComboBoxCell.h</string>
-                                       </object>
-                               </object>
-                               <object class="IBPartialClassDescription">
-                                       <string key="className">NSObject</string>
-                                       <reference key="sourceIdentifier" ref="339469989"/>
-                               </object>
-                               <object class="IBPartialClassDescription">
-                                       <string key="className">NSObject</string>
-                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
-                                               <string key="majorKey">IBFrameworkSource</string>
-                                               <string key="minorKey">AppKit.framework/Headers/NSDatePickerCell.h</string>
-                                       </object>
-                               </object>
-                               <object class="IBPartialClassDescription">
-                                       <string key="className">NSObject</string>
-                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
-                                               <string key="majorKey">IBFrameworkSource</string>
-                                               <string key="minorKey">AppKit.framework/Headers/NSDragging.h</string>
-                                       </object>
-                               </object>
-                               <object class="IBPartialClassDescription">
-                                       <string key="className">NSObject</string>
-                                       <object class="IBClassDescriptionSource" key="sourceIdentifier" id="813110203">
-                                               <string key="majorKey">IBFrameworkSource</string>
-                                               <string key="minorKey">AppKit.framework/Headers/NSDrawer.h</string>
-                                       </object>
-                               </object>
-                               <object class="IBPartialClassDescription">
-                                       <string key="className">NSObject</string>
-                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
-                                               <string key="majorKey">IBFrameworkSource</string>
-                                               <string key="minorKey">AppKit.framework/Headers/NSFontManager.h</string>
-                                       </object>
-                               </object>
-                               <object class="IBPartialClassDescription">
-                                       <string key="className">NSObject</string>
-                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
-                                               <string key="majorKey">IBFrameworkSource</string>
-                                               <string key="minorKey">AppKit.framework/Headers/NSFontPanel.h</string>
-                                       </object>
-                               </object>
-                               <object class="IBPartialClassDescription">
-                                       <string key="className">NSObject</string>
-                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
-                                               <string key="majorKey">IBFrameworkSource</string>
-                                               <string key="minorKey">AppKit.framework/Headers/NSImage.h</string>
-                                       </object>
-                               </object>
-                               <object class="IBPartialClassDescription">
-                                       <string key="className">NSObject</string>
-                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
-                                               <string key="majorKey">IBFrameworkSource</string>
-                                               <string key="minorKey">AppKit.framework/Headers/NSKeyValueBinding.h</string>
-                                       </object>
-                               </object>
-                               <object class="IBPartialClassDescription">
-                                       <string key="className">NSObject</string>
-                                       <reference key="sourceIdentifier" ref="1054084886"/>
-                               </object>
-                               <object class="IBPartialClassDescription">
-                                       <string key="className">NSObject</string>
-                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
-                                               <string key="majorKey">IBFrameworkSource</string>
-                                               <string key="minorKey">AppKit.framework/Headers/NSNibLoading.h</string>
-                                       </object>
-                               </object>
-                               <object class="IBPartialClassDescription">
-                                       <string key="className">NSObject</string>
-                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
-                                               <string key="majorKey">IBFrameworkSource</string>
-                                               <string key="minorKey">AppKit.framework/Headers/NSOutlineView.h</string>
-                                       </object>
-                               </object>
-                               <object class="IBPartialClassDescription">
-                                       <string key="className">NSObject</string>
-                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
-                                               <string key="majorKey">IBFrameworkSource</string>
-                                               <string key="minorKey">AppKit.framework/Headers/NSPasteboard.h</string>
-                                       </object>
-                               </object>
-                               <object class="IBPartialClassDescription">
-                                       <string key="className">NSObject</string>
-                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
-                                               <string key="majorKey">IBFrameworkSource</string>
-                                               <string key="minorKey">AppKit.framework/Headers/NSSavePanel.h</string>
-                                       </object>
-                               </object>
-                               <object class="IBPartialClassDescription">
-                                       <string key="className">NSObject</string>
-                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
-                                               <string key="majorKey">IBFrameworkSource</string>
-                                               <string key="minorKey">AppKit.framework/Headers/NSSound.h</string>
-                                       </object>
-                               </object>
-                               <object class="IBPartialClassDescription">
-                                       <string key="className">NSObject</string>
-                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
-                                               <string key="majorKey">IBFrameworkSource</string>
-                                               <string key="minorKey">AppKit.framework/Headers/NSSpeechRecognizer.h</string>
-                                       </object>
-                               </object>
-                               <object class="IBPartialClassDescription">
-                                       <string key="className">NSObject</string>
-                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
-                                               <string key="majorKey">IBFrameworkSource</string>
-                                               <string key="minorKey">AppKit.framework/Headers/NSSpeechSynthesizer.h</string>
-                                       </object>
-                               </object>
-                               <object class="IBPartialClassDescription">
-                                       <string key="className">NSObject</string>
-                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
-                                               <string key="majorKey">IBFrameworkSource</string>
-                                               <string key="minorKey">AppKit.framework/Headers/NSSplitView.h</string>
-                                       </object>
-                               </object>
-                               <object class="IBPartialClassDescription">
-                                       <string key="className">NSObject</string>
-                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
-                                               <string key="majorKey">IBFrameworkSource</string>
-                                               <string key="minorKey">AppKit.framework/Headers/NSTabView.h</string>
-                                       </object>
-                               </object>
-                               <object class="IBPartialClassDescription">
-                                       <string key="className">NSObject</string>
-                                       <object class="IBClassDescriptionSource" key="sourceIdentifier" id="618451181">
-                                               <string key="majorKey">IBFrameworkSource</string>
-                                               <string key="minorKey">AppKit.framework/Headers/NSTableView.h</string>
-                                       </object>
-                               </object>
-                               <object class="IBPartialClassDescription">
-                                       <string key="className">NSObject</string>
-                                       <object class="IBClassDescriptionSource" key="sourceIdentifier" id="639735868">
-                                               <string key="majorKey">IBFrameworkSource</string>
-                                               <string key="minorKey">AppKit.framework/Headers/NSText.h</string>
-                                       </object>
-                               </object>
-                               <object class="IBPartialClassDescription">
-                                       <string key="className">NSObject</string>
-                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
-                                               <string key="majorKey">IBFrameworkSource</string>
-                                               <string key="minorKey">AppKit.framework/Headers/NSTextStorage.h</string>
-                                       </object>
-                               </object>
-                               <object class="IBPartialClassDescription">
-                                       <string key="className">NSObject</string>
-                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
-                                               <string key="majorKey">IBFrameworkSource</string>
-                                               <string key="minorKey">AppKit.framework/Headers/NSTextView.h</string>
-                                       </object>
-                               </object>
-                               <object class="IBPartialClassDescription">
-                                       <string key="className">NSObject</string>
-                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
-                                               <string key="majorKey">IBFrameworkSource</string>
-                                               <string key="minorKey">AppKit.framework/Headers/NSTokenField.h</string>
-                                       </object>
-                               </object>
-                               <object class="IBPartialClassDescription">
-                                       <string key="className">NSObject</string>
-                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
-                                               <string key="majorKey">IBFrameworkSource</string>
-                                               <string key="minorKey">AppKit.framework/Headers/NSTokenFieldCell.h</string>
-                                       </object>
-                               </object>
-                               <object class="IBPartialClassDescription">
-                                       <string key="className">NSObject</string>
-                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
-                                               <string key="majorKey">IBFrameworkSource</string>
-                                               <string key="minorKey">AppKit.framework/Headers/NSToolbar.h</string>
-                                       </object>
-                               </object>
-                               <object class="IBPartialClassDescription">
-                                       <string key="className">NSObject</string>
-                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
-                                               <string key="majorKey">IBFrameworkSource</string>
-                                               <string key="minorKey">AppKit.framework/Headers/NSToolbarItem.h</string>
-                                       </object>
-                               </object>
-                               <object class="IBPartialClassDescription">
-                                       <string key="className">NSObject</string>
-                                       <object class="IBClassDescriptionSource" key="sourceIdentifier" id="1040394720">
-                                               <string key="majorKey">IBFrameworkSource</string>
-                                               <string key="minorKey">AppKit.framework/Headers/NSView.h</string>
-                                       </object>
-                               </object>
-                               <object class="IBPartialClassDescription">
-                                       <string key="className">NSObject</string>
-                                       <object class="IBClassDescriptionSource" key="sourceIdentifier" id="197276517">
-                                               <string key="majorKey">IBFrameworkSource</string>
-                                               <string key="minorKey">AppKit.framework/Headers/NSWindow.h</string>
-                                       </object>
-                               </object>
-                               <object class="IBPartialClassDescription">
-                                       <string key="className">NSResponder</string>
-                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
-                                               <string key="majorKey">IBFrameworkSource</string>
-                                               <string key="minorKey">AppKit.framework/Headers/NSInterfaceStyle.h</string>
-                                       </object>
-                               </object>
-                               <object class="IBPartialClassDescription">
-                                       <string key="className">NSResponder</string>
-                                       <string key="superclassName">NSObject</string>
-                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
-                                               <string key="majorKey">IBFrameworkSource</string>
-                                               <string key="minorKey">AppKit.framework/Headers/NSResponder.h</string>
-                                       </object>
-                               </object>
-                               <object class="IBPartialClassDescription">
-                                       <string key="className">NSTableView</string>
-                                       <string key="superclassName">NSControl</string>
-                                       <reference key="sourceIdentifier" ref="618451181"/>
-                               </object>
-                               <object class="IBPartialClassDescription">
-                                       <string key="className">NSText</string>
-                                       <string key="superclassName">NSView</string>
-                                       <reference key="sourceIdentifier" ref="639735868"/>
-                               </object>
-                               <object class="IBPartialClassDescription">
-                                       <string key="className">NSView</string>
-                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
-                                               <string key="majorKey">IBFrameworkSource</string>
-                                               <string key="minorKey">AppKit.framework/Headers/NSClipView.h</string>
-                                       </object>
-                               </object>
-                               <object class="IBPartialClassDescription">
-                                       <string key="className">NSView</string>
-                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
-                                               <string key="majorKey">IBFrameworkSource</string>
-                                               <string key="minorKey">AppKit.framework/Headers/NSRulerView.h</string>
-                                       </object>
-                               </object>
-                               <object class="IBPartialClassDescription">
-                                       <string key="className">NSView</string>
-                                       <string key="superclassName">NSResponder</string>
-                                       <reference key="sourceIdentifier" ref="1040394720"/>
-                               </object>
-                               <object class="IBPartialClassDescription">
-                                       <string key="className">NSWindow</string>
-                                       <reference key="sourceIdentifier" ref="813110203"/>
-                               </object>
-                               <object class="IBPartialClassDescription">
-                                       <string key="className">NSWindow</string>
-                                       <string key="superclassName">NSResponder</string>
-                                       <reference key="sourceIdentifier" ref="197276517"/>
-                               </object>
-                               <object class="IBPartialClassDescription">
-                                       <string key="className">NSWindow</string>
-                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
-                                               <string key="majorKey">IBFrameworkSource</string>
-                                               <string key="minorKey">AppKit.framework/Headers/NSWindowScripting.h</string>
-                                       </object>
-                               </object>
-                       </array>
-               </object>
-               <int key="IBDocument.localizationMode">0</int>
-               <string key="IBDocument.TargetRuntimeIdentifier">IBCocoaFramework</string>
-               <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencies">
-                       <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.macosx</string>
-                       <integer value="1050" key="NS.object.0"/>
-               </object>
-               <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
-                       <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.macosx</string>
-                       <integer value="1040" key="NS.object.0"/>
-               </object>
-               <bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
-               <string key="IBDocument.LastKnownRelativeProjectPath">../../xscreensaver.xcodeproj</string>
-               <int key="IBDocument.defaultPropertyAccessControl">3</int>
-               <dictionary class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes">
-                       <string key="NSMenuCheckmark">{9, 8}</string>
-                       <string key="NSMenuMixedState">{7, 2}</string>
-               </dictionary>
-       </data>
-</archive>
diff --git a/OSX/English.lproj/SaverRunner.nib/keyedobjects.nib b/OSX/English.lproj/SaverRunner.nib/keyedobjects.nib
deleted file mode 100644 (file)
index 96d6891..0000000
Binary files a/OSX/English.lproj/SaverRunner.nib/keyedobjects.nib and /dev/null differ
diff --git a/OSX/Gallant19.bdf b/OSX/Gallant19.bdf
deleted file mode 100644 (file)
index 75b4fa6..0000000
+++ /dev/null
@@ -1,13691 +0,0 @@
-STARTFONT 2.1
-COMMENT Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
-COMMENT Use is subject to license terms.
-COMMENT This is a derivation of a BDF font from the X consolidation
-COMMENT Originally a BSD vfont.
-COMMENT Re-built BDF and ISO10646-1 from hex code originally in
-COMMENT illumos usr/src/uts/common/font/12x22.c
-FONT -Sun-Gallant-Demi-R-Normal--19-190-72-72-C-120-ISO10646-1
-SIZE 19 72 72
-FONTBOUNDINGBOX 12 22 0 -5
-STARTPROPERTIES 18
-FONTNAME_REGISTRY ""
-FOUNDRY "Sun"
-FAMILY_NAME "Gallant"
-WEIGHT_NAME "Demi"
-SLANT "R"
-SETWIDTH_NAME "Normal"
-ADD_STYLE_NAME ""
-PIXEL_SIZE 19
-POINT_SIZE 190
-RESOLUTION_X 72
-RESOLUTION_Y 72
-SPACING "C"
-AVERAGE_WIDTH 120
-CHARSET_REGISTRY "ISO10646"
-CHARSET_ENCODING "1"
-FONT_ASCENT 17
-FONT_DESCENT 5
-DEFAULT_CHAR 65533
-ENDPROPERTIES
-CHARS 471
-STARTCHAR char0
-ENCODING 0
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-76E0
-76E0
-6060
-6060
-0000
-0000
-6060
-6060
-6060
-0000
-0000
-6060
-6060
-76E0
-76E0
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR space
-ENCODING 32
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR exclam
-ENCODING 33
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0000
-0000
-0600
-0600
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR quotedbl
-ENCODING 34
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-1980
-1980
-1980
-1980
-1980
-1980
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR numbersign
-ENCODING 35
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0330
-0330
-0330
-0660
-1FF0
-1FF0
-0CC0
-0CC0
-1980
-1980
-7FC0
-7FC0
-3300
-6600
-6600
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR dollar
-ENCODING 36
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0600
-1F80
-3FC0
-66E0
-6660
-6600
-3E00
-1F80
-07C0
-0660
-0660
-6660
-7FC0
-3F80
-0600
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR percent
-ENCODING 37
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-38C0
-4CC0
-4580
-6580
-3B00
-0300
-0600
-0600
-0C00
-0DC0
-1A60
-1A20
-3320
-31C0
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR ampersand
-ENCODING 38
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0700
-0F80
-18C0
-18C0
-18C0
-0F80
-1E00
-3E00
-7700
-6360
-61E0
-61C0
-6180
-3FE0
-1E60
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR quotesingle
-ENCODING 39
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0C00
-1E00
-1E00
-0600
-0600
-0C00
-1800
-1000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR parenleft
-ENCODING 40
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0180
-0300
-0600
-0600
-0C00
-0C00
-0C00
-0C00
-0C00
-0C00
-0C00
-0600
-0600
-0300
-0180
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR parenright
-ENCODING 41
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-1800
-0C00
-0600
-0600
-0300
-0300
-0300
-0300
-0300
-0300
-0300
-0600
-0600
-0C00
-1800
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR asterisk
-ENCODING 42
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0F00
-0600
-6660
-76E0
-1980
-0000
-1980
-76E0
-6660
-0600
-0F00
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR plus
-ENCODING 43
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0600
-0600
-0600
-0600
-7FE0
-7FE0
-0600
-0600
-0600
-0600
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR comma
-ENCODING 44
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0C00
-1E00
-1E00
-0600
-0600
-0C00
-1800
-1000
-ENDCHAR
-STARTCHAR hyphen
-ENCODING 45
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-7FE0
-7FE0
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR period
-ENCODING 46
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0C00
-1E00
-1E00
-0C00
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR slash
-ENCODING 47
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0060
-00C0
-00C0
-0180
-0180
-0300
-0300
-0600
-0600
-0C00
-0C00
-1800
-1800
-3000
-3000
-6000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR zero
-ENCODING 48
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0700
-0F80
-1180
-10C0
-30C0
-30C0
-30C0
-30C0
-30C0
-30C0
-30C0
-3080
-1880
-1F00
-0E00
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR one
-ENCODING 49
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0200
-0600
-0E00
-1E00
-3600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-3FC0
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR two
-ENCODING 50
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-1F00
-3F80
-61C0
-40C0
-00C0
-00C0
-00C0
-0180
-0300
-0600
-0C00
-1800
-3020
-7FE0
-7FE0
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR three
-ENCODING 51
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0F80
-1FC0
-20E0
-4060
-0060
-00E0
-07C0
-0FC0
-00E0
-0060
-0060
-4060
-6040
-3F80
-1F00
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR four
-ENCODING 52
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0180
-0380
-0380
-0580
-0580
-0980
-0980
-1180
-1180
-2180
-3FE0
-7FE0
-0180
-0180
-0180
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR five
-ENCODING 53
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0FC0
-0FC0
-1000
-1000
-2000
-3F80
-31C0
-00E0
-0060
-0060
-0060
-4060
-6060
-30C0
-1F80
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR six
-ENCODING 54
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0700
-0C00
-1800
-3000
-3000
-6000
-6780
-6FC0
-70E0
-6060
-6060
-6060
-7040
-3F80
-1F00
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR seven
-ENCODING 55
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-1FE0
-3FE0
-6040
-0040
-00C0
-0080
-0080
-0180
-0100
-0100
-0300
-0200
-0200
-0600
-0400
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR eight
-ENCODING 56
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0F00
-1180
-30C0
-30C0
-30C0
-1880
-0D00
-0600
-0B00
-1180
-30C0
-30C0
-30C0
-1880
-0F00
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR nine
-ENCODING 57
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0F80
-11C0
-20E0
-6060
-6060
-6060
-70E0
-3F60
-1E60
-0060
-00C0
-00C0
-0180
-0700
-3C00
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR colon
-ENCODING 58
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0C00
-1E00
-1E00
-0C00
-0000
-0000
-0C00
-1E00
-1E00
-0C00
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR semicolon
-ENCODING 59
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0C00
-1E00
-1E00
-0C00
-0000
-0000
-0C00
-1E00
-1E00
-0600
-0600
-0C00
-1800
-1000
-ENDCHAR
-STARTCHAR less
-ENCODING 60
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0060
-01C0
-0700
-1C00
-7000
-7000
-1C00
-0700
-01C0
-0060
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR equal
-ENCODING 61
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-7FE0
-7FE0
-0000
-0000
-7FE0
-7FE0
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR greater
-ENCODING 62
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-6000
-3800
-0E00
-0380
-00E0
-00E0
-0380
-0E00
-3800
-6000
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR question
-ENCODING 63
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0F00
-1F80
-39C0
-20C0
-00C0
-00C0
-0180
-0300
-0600
-0C00
-0C00
-0000
-0000
-0C00
-0C00
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR at
-ENCODING 64
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0F80
-3FC0
-3060
-6060
-6720
-6FA0
-6CA0
-6CA0
-67E0
-6000
-3000
-3FE0
-0FE0
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR A
-ENCODING 65
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0600
-0600
-0B00
-0B00
-0900
-1180
-1180
-1080
-3FC0
-20C0
-2040
-4060
-4060
-E0F0
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR B
-ENCODING 66
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-FF00
-6080
-60C0
-60C0
-60C0
-6180
-7F80
-60C0
-6060
-6060
-6060
-6060
-60C0
-FF80
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR C
-ENCODING 67
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0FC0
-1060
-2020
-2000
-6000
-6000
-6000
-6000
-6000
-6000
-2000
-3020
-1840
-0F80
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR D
-ENCODING 68
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-FF00
-61C0
-60C0
-6060
-6060
-6060
-6060
-6060
-6060
-6060
-6060
-6040
-6180
-FE00
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR E
-ENCODING 69
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-7FC0
-3040
-3040
-3000
-3000
-3080
-3F80
-3080
-3000
-3000
-3000
-3020
-3020
-7FE0
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR F
-ENCODING 70
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-7FC0
-3040
-3040
-3000
-3000
-3080
-3F80
-3080
-3000
-3000
-3000
-3000
-3000
-7800
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR G
-ENCODING 71
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0FC0
-1060
-2020
-2000
-6000
-6000
-6000
-6000
-61F0
-6060
-2060
-3060
-1860
-0F80
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR H
-ENCODING 72
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-F0F0
-6060
-6060
-6060
-6060
-6060
-7FE0
-6060
-6060
-6060
-6060
-6060
-6060
-F0F0
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR I
-ENCODING 73
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-1F80
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-1F80
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR J
-ENCODING 74
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-1F80
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0400
-3800
-3000
-ENDCHAR
-STARTCHAR K
-ENCODING 75
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-F0E0
-6180
-6300
-6600
-6C00
-7800
-7800
-7C00
-6E00
-6700
-6380
-61C0
-60E0
-F070
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR L
-ENCODING 76
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-7800
-3000
-3000
-3000
-3000
-3000
-3000
-3000
-3000
-3000
-3000
-3020
-3020
-7FE0
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR M
-ENCODING 77
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-E070
-60E0
-70E0
-70E0
-70E0
-5960
-5960
-5960
-4D60
-4E60
-4E60
-4460
-4460
-E4F0
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR N
-ENCODING 78
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-C070
-6020
-7020
-7820
-5820
-4C20
-4620
-4720
-4320
-41A0
-40E0
-40E0
-4060
-E030
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR O
-ENCODING 79
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0F00
-11C0
-20C0
-2060
-6060
-6060
-6060
-6060
-6060
-6060
-2040
-3040
-1880
-0F00
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR P
-ENCODING 80
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-7F80
-30C0
-3060
-3060
-3060
-30C0
-3780
-3000
-3000
-3000
-3000
-3000
-3000
-7800
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR Q
-ENCODING 81
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0F00
-11C0
-20C0
-2060
-6060
-6060
-6060
-6060
-6060
-6060
-3040
-3840
-1F80
-0E00
-1F00
-2390
-01E0
-0000
-0000
-ENDCHAR
-STARTCHAR R
-ENCODING 82
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-FF00
-6180
-60C0
-60C0
-60C0
-6080
-7F00
-7C00
-6E00
-6700
-6380
-61C0
-60E0
-F070
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR S
-ENCODING 83
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-1FE0
-3060
-6020
-6020
-7000
-3C00
-1E00
-0780
-01C0
-00E0
-4060
-4060
-60C0
-7F80
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR T
-ENCODING 84
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-7FE0
-4620
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-1F80
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR U
-ENCODING 85
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-F070
-6020
-6020
-6020
-6020
-6020
-6020
-6020
-6020
-6020
-6020
-7040
-3FC0
-1F80
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR V
-ENCODING 86
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-E0E0
-6040
-3080
-3080
-3080
-1900
-1900
-1900
-0A00
-0E00
-0E00
-0400
-0400
-0400
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR W
-ENCODING 87
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-FEF0
-6620
-6620
-6620
-7620
-7740
-3340
-3740
-3BC0
-3B80
-1980
-1980
-1980
-1980
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR X
-ENCODING 88
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-F070
-6020
-3040
-3880
-1880
-0D00
-0600
-0600
-0B00
-1180
-11C0
-20C0
-4060
-E0F0
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR Y
-ENCODING 89
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-F070
-6020
-3040
-1880
-1880
-0D00
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0F00
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR Z
-ENCODING 90
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-3FE0
-20C0
-00C0
-0180
-0180
-0300
-0300
-0600
-0600
-0C00
-0C00
-1800
-1820
-3FE0
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR bracketleft
-ENCODING 91
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0F80
-0F80
-0C00
-0C00
-0C00
-0C00
-0C00
-0C00
-0C00
-0C00
-0C00
-0C00
-0C00
-0F80
-0F80
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR backslash
-ENCODING 92
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-6000
-3000
-3000
-1800
-1800
-0C00
-0C00
-0600
-0600
-0300
-0300
-0180
-0180
-00C0
-00C0
-0060
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR bracketright
-ENCODING 93
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-1F00
-1F00
-0300
-0300
-0300
-0300
-0300
-0300
-0300
-0300
-0300
-0300
-0300
-1F00
-1F00
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR asciicircum
-ENCODING 94
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0400
-0E00
-1B00
-3180
-60C0
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR underscore
-ENCODING 95
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-FFF0
-FFF0
-0000
-0000
-ENDCHAR
-STARTCHAR grave
-ENCODING 96
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0100
-0300
-0600
-0600
-0780
-0780
-0300
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR a
-ENCODING 97
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0F80
-18C0
-10C0
-03C0
-1CC0
-30C0
-30C0
-30C0
-39C0
-1EE0
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR b
-ENCODING 98
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-2000
-6000
-E000
-6000
-6000
-6780
-6FC0
-70E0
-6060
-6060
-6060
-6060
-7060
-78C0
-4F80
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR c
-ENCODING 99
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-1F80
-31C0
-20C0
-6000
-6000
-6000
-6000
-7040
-30C0
-1F80
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR d
-ENCODING 100
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0060
-00E0
-0060
-0060
-0060
-0F60
-31E0
-20E0
-6060
-6060
-6060
-6060
-70E0
-3960
-1E70
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR e
-ENCODING 101
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0F00
-30C0
-6060
-6060
-7FE0
-6000
-6000
-3000
-1860
-0F80
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR f
-ENCODING 102
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0380
-04C0
-04C0
-0C00
-0C00
-0C00
-0C00
-3F80
-0C00
-0C00
-0C00
-0C00
-0C00
-0C00
-1E00
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR g
-ENCODING 103
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-1F20
-31E0
-60C0
-60C0
-60C0
-3180
-3F00
-6000
-7FC0
-3FE0
-2060
-4020
-4020
-7FC0
-3F80
-ENDCHAR
-STARTCHAR h
-ENCODING 104
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-1000
-3000
-7000
-3000
-3000
-3780
-39C0
-30C0
-30C0
-30C0
-30C0
-30C0
-30C0
-30C0
-79E0
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR i
-ENCODING 105
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0600
-0600
-0000
-0000
-1E00
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-1F80
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR j
-ENCODING 106
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-00C0
-00C0
-0000
-0000
-03C0
-00C0
-00C0
-00C0
-00C0
-00C0
-00C0
-00C0
-00C0
-00C0
-20C0
-30C0
-3880
-1F00
-0E00
-ENDCHAR
-STARTCHAR k
-ENCODING 107
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-6000
-E000
-6000
-6000
-6000
-61C0
-6300
-6600
-7C00
-7800
-7C00
-6E00
-6700
-6380
-F1E0
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR l
-ENCODING 108
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-1E00
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-1F80
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR m
-ENCODING 109
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-DDC0
-6EE0
-6660
-6660
-6660
-6660
-6660
-6660
-6660
-EF70
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR n
-ENCODING 110
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-2780
-79C0
-30C0
-30C0
-30C0
-30C0
-30C0
-30C0
-30C0
-79E0
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR o
-ENCODING 111
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0F80
-11C0
-20E0
-6060
-6060
-6060
-6060
-7040
-3880
-1F00
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR p
-ENCODING 112
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-EF80
-71C0
-60E0
-6060
-6060
-6060
-6060
-6040
-7080
-7F00
-6000
-6000
-6000
-6000
-F000
-ENDCHAR
-STARTCHAR q
-ENCODING 113
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0F20
-11E0
-20E0
-6060
-6060
-6060
-6060
-7060
-38E0
-1FE0
-0060
-0060
-0060
-0060
-00F0
-ENDCHAR
-STARTCHAR r
-ENCODING 114
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-7380
-34C0
-38C0
-3000
-3000
-3000
-3000
-3000
-3000
-7800
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR s
-ENCODING 115
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-1FC0
-30C0
-3040
-3800
-1E00
-0780
-01C0
-20C0
-30C0
-3F80
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR t
-ENCODING 116
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0400
-0400
-0C00
-7FC0
-0C00
-0C00
-0C00
-0C00
-0C00
-0C00
-0C20
-0E40
-0780
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR u
-ENCODING 117
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-79E0
-30C0
-30C0
-30C0
-30C0
-30C0
-30C0
-30C0
-39C0
-1E60
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR v
-ENCODING 118
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-F070
-6020
-3040
-3040
-1880
-1880
-0D00
-0D00
-0600
-0600
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR w
-ENCODING 119
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-FF70
-6620
-6620
-6620
-3740
-3B40
-3B40
-1980
-1980
-1980
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR x
-ENCODING 120
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-F8F0
-7040
-3880
-1D00
-0E00
-0700
-0B80
-11C0
-20E0
-F1F0
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR y
-ENCODING 121
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-F0F0
-6020
-3040
-3040
-1880
-1880
-0D00
-0D00
-0600
-0600
-0400
-0C00
-0800
-7800
-7000
-ENDCHAR
-STARTCHAR z
-ENCODING 122
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-7FE0
-60E0
-41C0
-0380
-0700
-0E00
-1C00
-3820
-7060
-7FE0
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR braceleft
-ENCODING 123
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0380
-0600
-0600
-0600
-0600
-0600
-0C00
-3800
-0C00
-0600
-0600
-0600
-0600
-0600
-0380
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR bar
-ENCODING 124
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-ENDCHAR
-STARTCHAR braceright
-ENCODING 125
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-1C00
-0600
-0600
-0600
-0600
-0600
-0300
-01C0
-0300
-0600
-0600
-0600
-0600
-0600
-1C00
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR asciitilde
-ENCODING 126
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-1C20
-3E60
-67C0
-4380
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR nbspace
-ENCODING 160
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR exclamdown
-ENCODING 161
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0600
-0600
-0000
-0000
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR cent
-ENCODING 162
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0600
-0600
-1F80
-36C0
-26C0
-6600
-6600
-6600
-6600
-7640
-36C0
-1F80
-0600
-0600
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR sterling
-ENCODING 163
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0F80
-1CC0
-18C0
-1800
-1800
-1800
-7E00
-7E00
-1800
-1800
-1800
-1800
-3E20
-7FE0
-61C0
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR currency
-ENCODING 164
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-6060
-2F40
-1F80
-30C0
-30C0
-30C0
-30C0
-1F80
-2F40
-6060
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR yen
-ENCODING 165
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-6060
-6060
-30C0
-1980
-1980
-0F00
-0600
-0600
-1F80
-1F80
-0600
-0600
-0600
-0600
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR brokenbar
-ENCODING 166
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0000
-0000
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-ENDCHAR
-STARTCHAR section
-ENCODING 167
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-1F00
-3180
-3180
-3000
-3000
-1F00
-3180
-3180
-1F00
-0180
-0180
-3180
-3180
-1F00
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR dieresis
-ENCODING 168
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-1980
-1980
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR copyright
-ENCODING 169
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-1F80
-2040
-4F20
-59A0
-5820
-5820
-59A0
-4F20
-2040
-1F80
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR ordfeminine
-ENCODING 170
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-1F00
-3180
-0180
-0780
-1980
-3180
-3180
-3380
-1DC0
-0000
-3FC0
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR guillemotleft
-ENCODING 171
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0660
-0CC0
-1980
-3300
-6600
-3300
-1980
-0CC0
-0660
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR logicalnot
-ENCODING 172
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-3FC0
-3FC0
-00C0
-00C0
-00C0
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR softhyphen
-ENCODING 173
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-7FE0
-7FE0
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR registered
-ENCODING 174
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-1F80
-2040
-5F20
-59A0
-59A0
-5F20
-59A0
-59A0
-2040
-1F80
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR macron
-ENCODING 175
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-1F80
-1F80
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR degree
-ENCODING 176
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0F00
-1980
-1980
-1980
-0F00
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR plusminus
-ENCODING 177
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0600
-0600
-0600
-0600
-7FE0
-7FE0
-0600
-0600
-0600
-0600
-0000
-7FE0
-7FE0
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR twosuperior
-ENCODING 178
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0F00
-1F80
-3180
-2180
-0300
-0600
-0C00
-1840
-3FC0
-3FC0
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR threesuperior
-ENCODING 179
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0F00
-1B80
-2180
-0180
-0F00
-0380
-0180
-3180
-3F80
-1F00
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR acute
-ENCODING 180
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0300
-0600
-0C00
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR mu
-ENCODING 181
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-30C0
-30C0
-30C0
-30C0
-30C0
-30C0
-30C0
-30C0
-39C0
-36E0
-3000
-3000
-6000
-0000
-0000
-ENDCHAR
-STARTCHAR paragraph
-ENCODING 182
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-1FF0
-3CC0
-7CC0
-7CC0
-7CC0
-3CC0
-1CC0
-0CC0
-0CC0
-0CC0
-0CC0
-0CC0
-0CC0
-1CE0
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR periodcentered
-ENCODING 183
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0600
-0F00
-0F00
-0600
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR cedilla
-ENCODING 184
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0600
-0300
-0180
-0F00
-0000
-ENDCHAR
-STARTCHAR onesuperior
-ENCODING 185
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0200
-0600
-0E00
-1600
-0600
-0600
-0600
-0600
-0600
-1F80
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR ordmasculine
-ENCODING 186
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0700
-1980
-10C0
-30C0
-30C0
-30C0
-3080
-1980
-0E00
-0000
-3FC0
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR guillemotright
-ENCODING 187
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-6600
-3300
-1980
-0CC0
-0660
-0CC0
-1980
-3300
-6600
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR onequarter
-ENCODING 188
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-1000
-3000
-1000
-1040
-1080
-1100
-3A40
-04C0
-0940
-1240
-2440
-47E0
-0040
-0040
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR onehalf
-ENCODING 189
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-1000
-3000
-1000
-1040
-1080
-1100
-3A00
-05C0
-0A20
-1020
-20C0
-4100
-0200
-03E0
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR threequarters
-ENCODING 190
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-3800
-4400
-0400
-1840
-0480
-4500
-3A40
-04C0
-0940
-1240
-2440
-47E0
-0040
-0040
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR questiondown
-ENCODING 191
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0300
-0300
-0000
-0000
-0300
-0300
-0600
-0C00
-1800
-3000
-3000
-3040
-39C0
-1F80
-0F00
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR Agrave
-ENCODING 192
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0C00
-0600
-0300
-0000
-0600
-0600
-0B00
-0B00
-1980
-1180
-3FC0
-20C0
-6060
-4060
-E0F0
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR Aacute
-ENCODING 193
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0300
-0600
-0C00
-0000
-0600
-0600
-0B00
-0B00
-1980
-1180
-3FC0
-20C0
-6060
-4060
-E0F0
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR Acircumflex
-ENCODING 194
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0600
-0F00
-1980
-0000
-0600
-0600
-0B00
-0B00
-1980
-1180
-3FC0
-20C0
-6060
-4060
-E0F0
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR Atilde
-ENCODING 195
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-1C40
-3FC0
-2380
-0000
-0600
-0600
-0B00
-0B00
-1980
-1180
-3FC0
-20C0
-6060
-4060
-E0F0
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR Adieresis
-ENCODING 196
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-1980
-1980
-0000
-0400
-0600
-0600
-0B00
-0B00
-1980
-1180
-3FC0
-20C0
-6060
-4060
-E0F0
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR Aring
-ENCODING 197
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0F00
-1980
-0F00
-0400
-0600
-0600
-0B00
-0B00
-1980
-1180
-3FC0
-20C0
-6060
-4060
-E0F0
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR AE
-ENCODING 198
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-03F0
-0710
-0710
-0B00
-0B00
-0B20
-13E0
-1320
-3F00
-2300
-2300
-4310
-4310
-E7F0
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR Ccedilla
-ENCODING 199
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0FC0
-1060
-2020
-2000
-6000
-6000
-6000
-6000
-6000
-6000
-2000
-3020
-1840
-0F80
-0600
-0300
-0180
-0F00
-0000
-ENDCHAR
-STARTCHAR Egrave
-ENCODING 200
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0C00
-0600
-0100
-7FE0
-3020
-3000
-3000
-3080
-3F80
-3080
-3000
-3000
-3020
-3020
-7FE0
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR Eacute
-ENCODING 201
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0300
-0600
-0800
-7FE0
-3020
-3000
-3000
-3080
-3F80
-3080
-3000
-3000
-3020
-3020
-7FE0
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR Ecircumflex
-ENCODING 202
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0700
-0D80
-0000
-7FE0
-3020
-3000
-3000
-3080
-3F80
-3080
-3000
-3000
-3020
-3020
-7FE0
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR Edieresis
-ENCODING 203
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-1980
-1980
-0000
-7FE0
-3020
-3000
-3000
-3080
-3F80
-3080
-3000
-3000
-3020
-3020
-7FE0
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR Igrave
-ENCODING 204
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-1800
-0C00
-0200
-1F80
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-1F80
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR Iacute
-ENCODING 205
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0180
-0300
-0400
-1F80
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-1F80
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR Icircumflex
-ENCODING 206
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0600
-0F00
-1980
-0000
-1F80
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-1F80
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR Idieresis
-ENCODING 207
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-1980
-1980
-0000
-1F80
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-1F80
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR Eth
-ENCODING 208
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-7F00
-31C0
-30C0
-3060
-3060
-3060
-FC60
-FC60
-3060
-3060
-3060
-3040
-3180
-7E00
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR Ntilde
-ENCODING 209
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-1C40
-3FC0
-2380
-C070
-6020
-7020
-7820
-5C20
-4E20
-4720
-43A0
-41E0
-40E0
-4060
-E030
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR Ograve
-ENCODING 210
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0C00
-0600
-0100
-0F80
-11C0
-20C0
-2060
-6060
-6060
-6060
-6060
-2040
-3040
-1880
-0F00
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR Oacute
-ENCODING 211
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0180
-0300
-0400
-0F80
-11C0
-20C0
-2060
-6060
-6060
-6060
-6060
-2040
-3040
-1880
-0F00
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR Ocircumflex
-ENCODING 212
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0600
-0900
-1080
-0F00
-11C0
-20C0
-2060
-6060
-6060
-6060
-6060
-2040
-3040
-1880
-0F00
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR Otilde
-ENCODING 213
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-1C60
-3FC0
-2280
-0F80
-11C0
-20C0
-2060
-6060
-6060
-6060
-6060
-2040
-3040
-1880
-0F00
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR Odieresis
-ENCODING 214
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-1980
-1980
-0000
-0F80
-11C0
-20C0
-2060
-6060
-6060
-6060
-6060
-2040
-3040
-1880
-0F00
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR multiply
-ENCODING 215
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-6060
-30C0
-1980
-0F00
-0600
-0F00
-1980
-30C0
-6060
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR Oslash
-ENCODING 216
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0080
-0F80
-11C0
-21C0
-2260
-6260
-6260
-6460
-6460
-6460
-2840
-3840
-1880
-1F00
-1000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR Ugrave
-ENCODING 217
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0C00
-0600
-E330
-6020
-6020
-6020
-6020
-6020
-6020
-6020
-6020
-6020
-7040
-3FC0
-1F80
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR Uacute
-ENCODING 218
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0180
-0300
-E630
-6020
-6020
-6020
-6020
-6020
-6020
-6020
-6020
-6020
-7040
-3FC0
-1F80
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR Ucircumflex
-ENCODING 219
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0700
-0D80
-E8B0
-6020
-6020
-6020
-6020
-6020
-6020
-6020
-6020
-6020
-7040
-3FC0
-1F80
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR Udieresis
-ENCODING 220
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-1980
-1980
-E030
-6020
-6020
-6020
-6020
-6020
-6020
-6020
-6020
-6020
-7040
-3FC0
-1F80
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR Yacute
-ENCODING 221
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0180
-0300
-E670
-6020
-3040
-1880
-0D00
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0F00
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR Thorn
-ENCODING 222
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-7800
-3000
-3F80
-30C0
-3060
-3060
-3060
-30C0
-3F80
-3000
-3000
-3000
-3000
-3000
-7800
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR germandbls
-ENCODING 223
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0F00
-1980
-30C0
-30C0
-30C0
-3180
-3780
-3180
-30C0
-30C0
-30C0
-30C0
-3180
-7700
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR agrave
-ENCODING 224
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0C00
-0600
-0300
-0000
-0F80
-18C0
-10C0
-03C0
-1CC0
-30C0
-30C0
-30C0
-39C0
-1EE0
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR aacute
-ENCODING 225
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0180
-0300
-0600
-0000
-0F80
-18C0
-10C0
-03C0
-1CC0
-30C0
-30C0
-30C0
-39C0
-1EE0
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR acircumflex
-ENCODING 226
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0200
-0700
-0D80
-18C0
-0000
-0F80
-18C0
-10C0
-03C0
-1CC0
-30C0
-30C0
-30C0
-39C0
-1EE0
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR atilde
-ENCODING 227
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0E40
-1FC0
-1380
-0000
-0000
-0F80
-18C0
-10C0
-03C0
-1CC0
-30C0
-30C0
-30C0
-39C0
-1EE0
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR adieresis
-ENCODING 228
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-1980
-1980
-0000
-0000
-0F80
-18C0
-10C0
-03C0
-1CC0
-30C0
-30C0
-30C0
-39C0
-1EE0
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR aring
-ENCODING 229
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0700
-0D80
-0D80
-0700
-0000
-0F80
-18C0
-10C0
-03C0
-1CC0
-30C0
-30C0
-30C0
-39C0
-1EE0
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR ae
-ENCODING 230
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-3DE0
-6630
-4630
-0630
-3FF0
-6600
-C600
-C600
-E730
-7DE0
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR ccedilla
-ENCODING 231
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-1F80
-31C0
-20C0
-6000
-6000
-6000
-6000
-7040
-30C0
-1F80
-0600
-0300
-0180
-0F00
-0000
-ENDCHAR
-STARTCHAR egrave
-ENCODING 232
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0C00
-0600
-0300
-0000
-0F00
-30C0
-6060
-6060
-7FE0
-6000
-6000
-3000
-1860
-0F80
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR eacute
-ENCODING 233
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0180
-0300
-0600
-0000
-0F00
-30C0
-6060
-6060
-7FE0
-6000
-6000
-3000
-1860
-0F80
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR ecircumflex
-ENCODING 234
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0200
-0700
-0D80
-18C0
-0000
-0F00
-30C0
-6060
-6060
-7FE0
-6000
-6000
-3000
-1860
-0F80
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR edieresis
-ENCODING 235
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-1980
-1980
-0000
-0000
-0F00
-30C0
-6060
-6060
-7FE0
-6000
-6000
-3000
-1860
-0F80
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR igrave
-ENCODING 236
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-1800
-0C00
-0600
-0000
-1E00
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-1F80
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR iacute
-ENCODING 237
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0180
-0300
-0600
-0000
-1E00
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-1F80
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR icircumflex
-ENCODING 238
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0400
-0E00
-1B00
-3180
-0000
-1E00
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-1F80
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR idieresis
-ENCODING 239
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-1980
-1980
-0000
-0000
-1E00
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-1F80
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR eth
-ENCODING 240
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-1C00
-06C0
-0300
-0D80
-00C0
-00C0
-0060
-0F60
-18E0
-3060
-3060
-3060
-3060
-18C0
-0F00
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR ntilde
-ENCODING 241
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-1C40
-3FC0
-2380
-0000
-0000
-2780
-79C0
-30C0
-30C0
-30C0
-30C0
-30C0
-30C0
-30C0
-79E0
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR ograve
-ENCODING 242
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0C00
-0600
-0300
-0000
-0F80
-11C0
-20E0
-6060
-6060
-6060
-6060
-7040
-3880
-1F00
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR oacute
-ENCODING 243
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0180
-0300
-0600
-0000
-0F80
-11C0
-20E0
-6060
-6060
-6060
-6060
-7040
-3880
-1F00
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR ocircumflex
-ENCODING 244
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0200
-0700
-0D80
-18C0
-0000
-0F80
-11C0
-20E0
-6060
-6060
-6060
-6060
-7040
-3880
-1F00
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR otilde
-ENCODING 245
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-1C40
-3FC0
-2380
-0000
-0000
-0F80
-11C0
-20E0
-6060
-6060
-6060
-6060
-7040
-3880
-1F00
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR odieresis
-ENCODING 246
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-1980
-1980
-0000
-0000
-0F80
-11C0
-20E0
-6060
-6060
-6060
-6060
-7040
-3880
-1F00
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR divide
-ENCODING 247
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0600
-0600
-0000
-0000
-7FE0
-7FE0
-0000
-0000
-0600
-0600
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR oslash
-ENCODING 248
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0010
-0FA0
-11C0
-20E0
-6160
-6260
-6460
-6860
-7040
-3880
-5F00
-8000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR ugrave
-ENCODING 249
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-1800
-0C00
-0600
-0000
-79E0
-30C0
-30C0
-30C0
-30C0
-30C0
-30C0
-30C0
-39C0
-1E60
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR uacute
-ENCODING 250
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0180
-0300
-0600
-0000
-79E0
-30C0
-30C0
-30C0
-30C0
-30C0
-30C0
-30C0
-39C0
-1E60
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR ucircumflex
-ENCODING 251
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0200
-0700
-0D80
-18C0
-0000
-79E0
-30C0
-30C0
-30C0
-30C0
-30C0
-30C0
-30C0
-39C0
-1E60
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR udieresis
-ENCODING 252
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-1980
-1980
-0000
-0000
-79E0
-30C0
-30C0
-30C0
-30C0
-30C0
-30C0
-30C0
-39C0
-1E60
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR yacute
-ENCODING 253
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0180
-0300
-0600
-0000
-F0F0
-6020
-3040
-3040
-1880
-1880
-0D00
-0D00
-0600
-0600
-0400
-0C00
-0800
-7800
-7000
-ENDCHAR
-STARTCHAR thorn
-ENCODING 254
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-7800
-3000
-3000
-3F80
-30C0
-3060
-3060
-30C0
-3F80
-3000
-3000
-3000
-3000
-3000
-7800
-ENDCHAR
-STARTCHAR ydieresis
-ENCODING 255
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-1980
-1980
-0000
-0000
-F0F0
-6020
-3040
-3040
-1880
-1880
-0D00
-0D00
-0600
-0600
-0400
-0C00
-0800
-7800
-7000
-ENDCHAR
-STARTCHAR Amacron
-ENCODING 256
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-1F80
-1F80
-0000
-0600
-0600
-0B00
-0B00
-0900
-1180
-1180
-1080
-3FC0
-20C0
-2040
-4060
-4060
-E0F0
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR amacron
-ENCODING 257
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0FC0
-0FC0
-0000
-0000
-0F80
-18C0
-10C0
-03C0
-1CC0
-30C0
-30C0
-30C0
-39C0
-1EE0
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR Abreve
-ENCODING 258
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-1B00
-1B00
-0E00
-0600
-0600
-0B00
-0B00
-0900
-1180
-1180
-1080
-3FC0
-20C0
-2040
-4060
-4060
-E0F0
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR abreve
-ENCODING 259
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0D80
-0D80
-0700
-0000
-0000
-0F80
-18C0
-10C0
-03C0
-1CC0
-30C0
-30C0
-30C0
-39C0
-1EE0
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR Aogonek
-ENCODING 260
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0600
-0600
-0B00
-0B00
-0900
-1180
-1180
-1080
-3FC0
-20C0
-2040
-4060
-4060
-E0F0
-00C0
-0180
-0300
-01E0
-0000
-ENDCHAR
-STARTCHAR aogonek
-ENCODING 261
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0F80
-18C0
-10C0
-03C0
-1CC0
-30C0
-30C0
-30C0
-39C0
-1EE0
-00C0
-0180
-0300
-01E0
-0000
-ENDCHAR
-STARTCHAR Cacute
-ENCODING 262
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0300
-0600
-0C00
-0FC0
-1060
-2020
-2000
-6000
-6000
-6000
-6000
-6000
-6000
-2000
-3020
-1840
-0F80
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR cacute
-ENCODING 263
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0300
-0600
-0C00
-0000
-1F80
-31C0
-20C0
-6000
-6000
-6000
-6000
-7040
-30C0
-1F80
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR Ccircumflex
-ENCODING 264
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0700
-0D80
-0000
-0FC0
-1060
-2020
-2000
-6000
-6000
-6000
-6000
-6000
-6000
-2000
-3020
-1840
-0F80
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR ccircumflex
-ENCODING 265
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0400
-0E00
-1B00
-3180
-0000
-1F80
-31C0
-20C0
-6000
-6000
-6000
-6000
-7040
-30C0
-1F80
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR Cdotaccent
-ENCODING 266
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0600
-0600
-0000
-0FC0
-1060
-2020
-2000
-6000
-6000
-6000
-6000
-6000
-6000
-2000
-3020
-1840
-0F80
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR cdotaccent
-ENCODING 267
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0600
-0600
-0000
-1F80
-31C0
-20C0
-6000
-6000
-6000
-6000
-7040
-30C0
-1F80
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR Ccaron
-ENCODING 268
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-18C0
-0D80
-0700
-0FC0
-1060
-2020
-2000
-6000
-6000
-6000
-6000
-6000
-6000
-2000
-3020
-1840
-0F80
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR ccaron
-ENCODING 269
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-3180
-1B00
-0E00
-0400
-0000
-1F80
-31C0
-20C0
-6000
-6000
-6000
-6000
-7040
-30C0
-1F80
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR Dcaron
-ENCODING 270
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-3180
-1B00
-0E00
-FF00
-61C0
-60C0
-6060
-6060
-6060
-6060
-6060
-6060
-6060
-6060
-6040
-6180
-FE00
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR dcaron
-ENCODING 271
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-3180
-1B00
-0E60
-04E0
-0060
-0060
-0060
-0F60
-31E0
-20E0
-6060
-6060
-6060
-6060
-70E0
-3960
-1E70
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR Dstroke
-ENCODING 272
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-FF00
-61C0
-60C0
-6060
-6060
-6060
-FC60
-6060
-6060
-6060
-6060
-6040
-6180
-FE00
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR dstroke
-ENCODING 273
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0060
-00E0
-0060
-07F0
-0060
-0F60
-31E0
-20E0
-6060
-6060
-6060
-6060
-70E0
-3960
-1E70
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR Emacron
-ENCODING 274
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-1F80
-1F80
-0000
-7FC0
-3040
-3040
-3000
-3000
-3080
-3F80
-3080
-3000
-3000
-3000
-3020
-3020
-7FE0
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR emacron
-ENCODING 275
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-1F80
-1F80
-0000
-0000
-0F00
-30C0
-6060
-6060
-7FE0
-6000
-6000
-3000
-1860
-0F80
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR Ebreve
-ENCODING 276
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0D80
-0D80
-0700
-7FC0
-3040
-3040
-3000
-3000
-3080
-3F80
-3080
-3000
-3000
-3000
-3020
-3020
-7FE0
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR ebreve
-ENCODING 277
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0D80
-0D80
-0700
-0000
-0000
-0F00
-30C0
-6060
-6060
-7FE0
-6000
-6000
-3000
-1860
-0F80
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR Edotaccent
-ENCODING 278
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0600
-0600
-0000
-7FC0
-3040
-3040
-3000
-3000
-3080
-3F80
-3080
-3000
-3000
-3000
-3020
-3020
-7FE0
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR edotaccent
-ENCODING 279
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0600
-0600
-0000
-0F00
-30C0
-6060
-6060
-7FE0
-6000
-6000
-3000
-1860
-0F80
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR Eogonek
-ENCODING 280
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-7FC0
-3040
-3040
-3000
-3000
-3080
-3F80
-3080
-3000
-3000
-3000
-3020
-3020
-7FE0
-00C0
-0180
-0300
-01E0
-0000
-ENDCHAR
-STARTCHAR eogonek
-ENCODING 281
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0F00
-30C0
-6060
-6060
-7FE0
-6000
-6000
-3000
-1860
-0F80
-0600
-0C00
-1800
-0F00
-0000
-ENDCHAR
-STARTCHAR Ecaron
-ENCODING 282
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-18C0
-0D80
-0700
-7FC0
-3040
-3040
-3000
-3000
-3080
-3F80
-3080
-3000
-3000
-3000
-3020
-3020
-7FE0
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR ecaron
-ENCODING 283
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-18C0
-0D80
-0700
-0200
-0000
-0F00
-30C0
-6060
-6060
-7FE0
-6000
-6000
-3000
-1860
-0F80
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR Gcircumflex
-ENCODING 284
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0700
-0D80
-0000
-0FC0
-1060
-2020
-2000
-6000
-6000
-6000
-6000
-61F0
-6060
-2060
-3060
-1860
-0F80
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR gcircumflex
-ENCODING 285
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0200
-0700
-0D80
-18C0
-0000
-1F20
-31E0
-60C0
-60C0
-60C0
-3180
-3F00
-6000
-7FC0
-3FE0
-2060
-4020
-4020
-7FC0
-3F80
-ENDCHAR
-STARTCHAR Gbreve
-ENCODING 286
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0D80
-0D80
-0700
-0FC0
-1060
-2020
-2000
-6000
-6000
-6000
-6000
-61F0
-6060
-2060
-3060
-1860
-0F80
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR gbreve
-ENCODING 287
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-1B00
-1B00
-0E00
-0000
-0000
-1F20
-31E0
-60C0
-60C0
-60C0
-3180
-3F00
-6000
-7FC0
-3FE0
-2060
-4020
-4020
-7FC0
-3F80
-ENDCHAR
-STARTCHAR Gdotaccent
-ENCODING 288
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0300
-0300
-0000
-0FC0
-1060
-2020
-2000
-6000
-6000
-6000
-6000
-61F0
-6060
-2060
-3060
-1860
-0F80
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR gdotaccent
-ENCODING 289
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0600
-0600
-0000
-1F20
-31E0
-60C0
-60C0
-60C0
-3180
-3F00
-6000
-7FC0
-3FE0
-2060
-4020
-4020
-7FC0
-3F80
-ENDCHAR
-STARTCHAR Gcommaaccent
-ENCODING 290
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0FC0
-1060
-2020
-2000
-6000
-6000
-6000
-6000
-61F0
-6060
-2060
-3060
-1860
-0F80
-0600
-0300
-0180
-0F00
-0000
-ENDCHAR
-STARTCHAR gcommaaccent
-ENCODING 291
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0600
-0C00
-0E00
-0E00
-0000
-1F20
-31E0
-60C0
-60C0
-60C0
-3180
-3F00
-6000
-7FC0
-3FE0
-2060
-4020
-4020
-7FC0
-3F80
-ENDCHAR
-STARTCHAR Hcircumflex
-ENCODING 292
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0700
-0D80
-0000
-F0F0
-6060
-6060
-6060
-6060
-6060
-7FE0
-6060
-6060
-6060
-6060
-6060
-6060
-F0F0
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR hcircumflex
-ENCODING 293
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0380
-16C0
-3000
-7000
-3000
-3000
-3780
-39C0
-30C0
-30C0
-30C0
-30C0
-30C0
-30C0
-30C0
-79E0
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR Hstroke
-ENCODING 294
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-F0F0
-6060
-6060
-FFF0
-6060
-6060
-7FE0
-6060
-6060
-6060
-6060
-6060
-6060
-F0F0
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR hstroke
-ENCODING 295
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-1000
-3000
-7000
-7E00
-3000
-3780
-39C0
-30C0
-30C0
-30C0
-30C0
-30C0
-30C0
-30C0
-79E0
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR Itilde
-ENCODING 296
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0E40
-1FC0
-1380
-0000
-1F80
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-1F80
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR itilde
-ENCODING 297
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-1C80
-3F80
-2700
-0000
-0000
-1E00
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-1F80
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR Imacron
-ENCODING 298
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-1F80
-1F80
-0000
-1F80
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-1F80
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR imacron
-ENCODING 299
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-1F80
-1F80
-0000
-0000
-1E00
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-1F80
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR Ibreve
-ENCODING 300
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-1980
-1980
-0F00
-1F80
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-1F80
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR ibreve
-ENCODING 301
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-1B00
-1B00
-0E00
-0000
-0000
-1E00
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-1F80
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR Iogonek
-ENCODING 302
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-1F80
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-1F80
-0600
-0C00
-1800
-0F00
-0000
-ENDCHAR
-STARTCHAR iogonek
-ENCODING 303
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0600
-0600
-0000
-0000
-1E00
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-1F80
-0600
-0C00
-1800
-0F00
-0000
-ENDCHAR
-STARTCHAR Idotaccent
-ENCODING 304
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0600
-0600
-0000
-1F80
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-1F80
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR dotlessi
-ENCODING 305
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-1E00
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-1F80
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR IJ
-ENCODING 306
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-78F0
-3060
-3060
-3060
-3060
-3060
-3060
-3060
-3060
-3060
-3060
-3060
-3360
-79C0
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR ij
-ENCODING 307
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-3060
-3060
-0000
-0000
-70E0
-3060
-3060
-3060
-3060
-3060
-3060
-3060
-3060
-7860
-0060
-0C60
-0E40
-07C0
-0380
-ENDCHAR
-STARTCHAR Jcircumflex
-ENCODING 308
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0E00
-1B00
-0000
-1F80
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0400
-3800
-3000
-ENDCHAR
-STARTCHAR jcircumflex
-ENCODING 309
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0200
-0700
-0D80
-18C0
-0000
-03C0
-00C0
-00C0
-00C0
-00C0
-00C0
-00C0
-00C0
-00C0
-00C0
-20C0
-30C0
-3880
-1F00
-0E00
-ENDCHAR
-STARTCHAR Kcommaaccent
-ENCODING 310
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-F0E0
-6180
-6300
-6600
-6C00
-7800
-7800
-7C00
-6E00
-6700
-6380
-61C0
-60E0
-F070
-0600
-0300
-0180
-0F00
-0000
-ENDCHAR
-STARTCHAR kcommaaccent
-ENCODING 311
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-6000
-E000
-6000
-6000
-6000
-61C0
-6300
-6600
-7C00
-7800
-7C00
-6E00
-6700
-6380
-F1E0
-0600
-0300
-0180
-0F00
-0000
-ENDCHAR
-STARTCHAR kra
-ENCODING 312
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-6000
-E1C0
-6300
-6600
-7C00
-7800
-7C00
-6E00
-6700
-6380
-F1E0
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR Lacute
-ENCODING 313
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0C00
-1800
-3000
-7800
-3000
-3000
-3000
-3000
-3000
-3000
-3000
-3000
-3000
-3000
-3020
-3020
-7FE0
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR lacute
-ENCODING 314
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0300
-0600
-0C00
-0000
-1E00
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-1F80
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR Lcommaaccent
-ENCODING 315
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-7800
-3000
-3000
-3000
-3000
-3000
-3000
-3000
-3000
-3000
-3000
-3020
-3020
-7FE0
-0600
-0300
-0180
-0F00
-0000
-ENDCHAR
-STARTCHAR lcommaaccent
-ENCODING 316
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-1E00
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-1F80
-0600
-0300
-0180
-0F00
-0000
-ENDCHAR
-STARTCHAR Lcaron
-ENCODING 317
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0C60
-06C0
-0380
-7900
-3000
-3000
-3000
-3000
-3000
-3000
-3000
-3000
-3000
-3000
-3020
-3020
-7FE0
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR lcaron
-ENCODING 318
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-18C0
-0D80
-0700
-0000
-1E00
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-1F80
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR Ldot
-ENCODING 319
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-7800
-3000
-3000
-3000
-3000
-3180
-3180
-3000
-3000
-3000
-3000
-3020
-3020
-7FE0
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR ldot
-ENCODING 320
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-1E00
-0600
-0600
-0600
-0600
-0600
-0660
-0660
-0600
-0600
-0600
-0600
-0600
-0600
-1F80
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR Lslash
-ENCODING 321
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-7800
-3000
-3000
-3400
-3800
-3000
-3000
-7000
-B000
-3000
-3000
-3020
-3020
-7FE0
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR lslash
-ENCODING 322
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-1E00
-0600
-0600
-0680
-0700
-0600
-0600
-0E00
-1600
-0600
-0600
-0600
-0600
-0600
-1F80
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR Nacute
-ENCODING 323
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0180
-0300
-0600
-C070
-6020
-7020
-7820
-5820
-4C20
-4620
-4720
-4320
-41A0
-40E0
-40E0
-4060
-E030
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR nacute
-ENCODING 324
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0180
-0300
-0600
-0000
-2780
-79C0
-30C0
-30C0
-30C0
-30C0
-30C0
-30C0
-30C0
-79E0
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR Ncommaaccent
-ENCODING 325
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-C070
-6020
-7020
-7820
-5820
-4C20
-4620
-4720
-4320
-41A0
-40E0
-40E0
-4060
-E030
-0600
-0300
-0180
-0F00
-0000
-ENDCHAR
-STARTCHAR ncommaaccent
-ENCODING 326
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-2780
-79C0
-30C0
-30C0
-30C0
-30C0
-30C0
-30C0
-30C0
-79E0
-0600
-0300
-0180
-0F00
-0000
-ENDCHAR
-STARTCHAR Ncaron
-ENCODING 327
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-18C0
-0D80
-0700
-C270
-6020
-7020
-7820
-5820
-4C20
-4620
-4720
-4320
-41A0
-40E0
-40E0
-4060
-E030
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR ncaron
-ENCODING 328
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-18C0
-0D80
-0700
-0200
-0000
-2780
-79C0
-30C0
-30C0
-30C0
-30C0
-30C0
-30C0
-30C0
-79E0
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR napostrophe
-ENCODING 329
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-E000
-E000
-6000
-6000
-4000
-8000
-2780
-79C0
-30C0
-30C0
-30C0
-30C0
-30C0
-30C0
-30C0
-79E0
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR Eng
-ENCODING 330
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-C070
-6020
-7020
-7820
-5820
-4C20
-4620
-4720
-4320
-41A0
-40E0
-40E0
-4060
-E060
-0060
-0060
-0040
-0380
-0300
-ENDCHAR
-STARTCHAR eng
-ENCODING 331
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-2780
-79C0
-30C0
-30C0
-30C0
-30C0
-30C0
-30C0
-30C0
-78C0
-00C0
-00C0
-0080
-0700
-0600
-ENDCHAR
-STARTCHAR Omacron
-ENCODING 332
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-1F80
-1F80
-0000
-0F00
-11C0
-20C0
-2060
-6060
-6060
-6060
-6060
-6060
-6060
-2040
-3040
-1880
-0F00
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR omacron
-ENCODING 333
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-1F80
-1F80
-0000
-0000
-0F80
-11C0
-20E0
-6060
-6060
-6060
-6060
-7040
-3880
-1F00
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR Obreve
-ENCODING 334
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0D80
-0D80
-0700
-0F00
-11C0
-20C0
-2060
-6060
-6060
-6060
-6060
-6060
-6060
-2040
-3040
-1880
-0F00
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR obreve
-ENCODING 335
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0D80
-0D80
-0700
-0000
-0F80
-11C0
-20E0
-6060
-6060
-6060
-6060
-7040
-3880
-1F00
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR Ohungarumlaut
-ENCODING 336
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0360
-06C0
-0D80
-0F00
-11C0
-20C0
-2060
-6060
-6060
-6060
-6060
-6060
-6060
-2040
-3040
-1880
-0F00
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR ohungarumlaut
-ENCODING 337
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-06C0
-0D80
-1B00
-0000
-0F80
-11C0
-20E0
-6060
-6060
-6060
-6060
-7040
-3880
-1F00
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR OE
-ENCODING 338
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-1FE0
-2620
-4620
-4600
-C600
-C610
-C7F0
-C610
-C600
-C600
-4600
-6610
-3610
-1FF0
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR oe
-ENCODING 339
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-1DE0
-2230
-4230
-C230
-C3F0
-C200
-C200
-E200
-7330
-3DE0
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR Racute
-ENCODING 340
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0180
-0300
-0600
-FF00
-6180
-60C0
-60C0
-60C0
-6080
-7F00
-7C00
-6E00
-6700
-6380
-61C0
-60E0
-F070
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR racute
-ENCODING 341
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0300
-0600
-0C00
-0000
-7380
-34C0
-38C0
-3000
-3000
-3000
-3000
-3000
-3000
-7800
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR Rcommaaccent
-ENCODING 342
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-FF00
-6180
-60C0
-60C0
-60C0
-6080
-7F00
-7C00
-6E00
-6700
-6380
-61C0
-60E0
-F070
-0600
-0300
-0180
-0F00
-0000
-ENDCHAR
-STARTCHAR rcommaaccent
-ENCODING 343
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-7380
-34C0
-38C0
-3000
-3000
-3000
-3000
-3000
-3000
-7800
-1800
-0C00
-0600
-3C00
-0000
-ENDCHAR
-STARTCHAR Rcaron
-ENCODING 344
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-3180
-1B00
-0E00
-FF00
-6180
-60C0
-60C0
-60C0
-6080
-7F00
-7C00
-6E00
-6700
-6380
-61C0
-60E0
-F070
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR rcaron
-ENCODING 345
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-3180
-1B00
-0E00
-0400
-0000
-7380
-34C0
-38C0
-3000
-3000
-3000
-3000
-3000
-3000
-7800
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR Sacute
-ENCODING 346
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0180
-0300
-0600
-1FE0
-3060
-6020
-6020
-7000
-3C00
-1E00
-0780
-01C0
-00E0
-4060
-4060
-60C0
-7F80
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR sacute
-ENCODING 347
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0180
-0300
-0600
-0000
-1FC0
-30C0
-3040
-3800
-1E00
-0780
-01C0
-20C0
-30C0
-3F80
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR Scircumflex
-ENCODING 348
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0700
-0D80
-0000
-1FE0
-3060
-6020
-6020
-7000
-3C00
-1E00
-0780
-01C0
-00E0
-4060
-4060
-60C0
-7F80
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR scircumflex
-ENCODING 349
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0200
-0700
-0D80
-18C0
-0000
-1FC0
-30C0
-3040
-3800
-1E00
-0780
-01C0
-20C0
-30C0
-3F80
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR Scedilla
-ENCODING 350
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-1FE0
-3060
-6020
-6020
-7000
-3C00
-1E00
-0780
-01C0
-00E0
-4060
-4060
-60C0
-7F80
-0600
-0300
-0180
-0F00
-0000
-ENDCHAR
-STARTCHAR scedilla
-ENCODING 351
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-1FC0
-30C0
-3040
-3800
-1E00
-0780
-01C0
-20C0
-30C0
-3F80
-0600
-0300
-0180
-0F00
-0000
-ENDCHAR
-STARTCHAR Scaron
-ENCODING 352
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-18C0
-0D80
-0700
-1FE0
-3060
-6020
-6020
-7000
-3C00
-1E00
-0780
-01C0
-00E0
-4060
-4060
-60C0
-7F80
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR scaron
-ENCODING 353
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-18C0
-0D80
-0700
-0200
-0000
-1FC0
-30C0
-3040
-3800
-1E00
-0780
-01C0
-20C0
-30C0
-3F80
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR Tcedilla
-ENCODING 354
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-7FE0
-4620
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-1F80
-0600
-0300
-0180
-0F00
-0000
-ENDCHAR
-STARTCHAR tcedilla
-ENCODING 355
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0400
-0400
-0C00
-7FC0
-0C00
-0C00
-0C00
-0C00
-0C00
-0C00
-0C20
-0E40
-0780
-0600
-0300
-0180
-0F00
-0000
-ENDCHAR
-STARTCHAR Tcaron
-ENCODING 356
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-18C0
-0D80
-0700
-7FE0
-4620
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-1F80
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR tcaron
-ENCODING 357
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-3180
-1B00
-0E00
-0000
-0400
-0400
-0C00
-7FC0
-0C00
-0C00
-0C00
-0C00
-0C00
-0C00
-0C20
-0E40
-0780
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR Tstroke
-ENCODING 358
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-7FE0
-4620
-0600
-0600
-0600
-0600
-3FC0
-0600
-0600
-0600
-0600
-0600
-0600
-1F80
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR tstroke
-ENCODING 359
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0400
-0400
-0C00
-7FC0
-0C00
-0C00
-3F80
-0C00
-0C00
-0C00
-0C20
-0E40
-0780
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR Utilde
-ENCODING 360
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0E40
-1FC0
-1380
-F070
-6020
-6020
-6020
-6020
-6020
-6020
-6020
-6020
-6020
-6020
-7040
-3FC0
-1F80
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR utilde
-ENCODING 361
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0E40
-1FC0
-1380
-0000
-79E0
-30C0
-30C0
-30C0
-30C0
-30C0
-30C0
-30C0
-39C0
-1E60
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR Umacron
-ENCODING 362
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-1F80
-1F80
-0000
-F070
-6020
-6020
-6020
-6020
-6020
-6020
-6020
-6020
-6020
-6020
-7040
-3FC0
-1F80
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR umacron
-ENCODING 363
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-1F80
-1F80
-0000
-0000
-79E0
-30C0
-30C0
-30C0
-30C0
-30C0
-30C0
-30C0
-39C0
-1E60
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR Ubreve
-ENCODING 364
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0D80
-0D80
-0700
-F070
-6020
-6020
-6020
-6020
-6020
-6020
-6020
-6020
-6020
-6020
-7040
-3FC0
-1F80
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR ubreve
-ENCODING 365
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0D80
-0D80
-0700
-0000
-79E0
-30C0
-30C0
-30C0
-30C0
-30C0
-30C0
-30C0
-39C0
-1E60
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR Uring
-ENCODING 366
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0700
-0D80
-0D80
-F770
-6020
-6020
-6020
-6020
-6020
-6020
-6020
-6020
-6020
-6020
-7040
-3FC0
-1F80
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR uring
-ENCODING 367
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0700
-0D80
-0D80
-0700
-0000
-79E0
-30C0
-30C0
-30C0
-30C0
-30C0
-30C0
-30C0
-39C0
-1E60
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR Uhungarumlaut
-ENCODING 368
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-06C0
-0D80
-1B00
-F070
-6020
-6020
-6020
-6020
-6020
-6020
-6020
-6020
-6020
-6020
-7040
-3FC0
-1F80
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR uhungarumlaut
-ENCODING 369
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-06C0
-0D80
-1B00
-0000
-79E0
-30C0
-30C0
-30C0
-30C0
-30C0
-30C0
-30C0
-39C0
-1E60
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR Uogonek
-ENCODING 370
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-F070
-6020
-6020
-6020
-6020
-6020
-6020
-6020
-6020
-6020
-6020
-7040
-3FC0
-1F80
-0180
-0300
-0600
-03C0
-0000
-ENDCHAR
-STARTCHAR uogonek
-ENCODING 371
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-79E0
-30C0
-30C0
-30C0
-30C0
-30C0
-30C0
-30C0
-39C0
-1E60
-00C0
-0180
-0300
-01E0
-0000
-ENDCHAR
-STARTCHAR Wcircumflex
-ENCODING 372
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0700
-0D80
-0000
-FEF0
-6620
-6620
-6620
-7620
-7740
-3340
-3740
-3BC0
-3B80
-1980
-1980
-1980
-1980
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR wcircumflex
-ENCODING 373
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0200
-0700
-0D80
-18C0
-0000
-FF70
-6620
-6620
-6620
-3740
-3B40
-3B40
-1980
-1980
-1980
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR Ycircumflex
-ENCODING 374
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0700
-0D80
-0000
-F070
-6020
-3040
-1880
-1880
-0D00
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0F00
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR ycircumflex
-ENCODING 375
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0200
-0700
-0D80
-18C0
-0000
-F0F0
-6020
-3040
-3040
-1880
-1880
-0D00
-0D00
-0600
-0600
-0400
-0C00
-0800
-7800
-7000
-ENDCHAR
-STARTCHAR Ydieresis
-ENCODING 376
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-1980
-1980
-0000
-F070
-6020
-3040
-1880
-1880
-0D00
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0F00
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR Zacute
-ENCODING 377
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0180
-0300
-0600
-3FE0
-20C0
-00C0
-0180
-0180
-0300
-0300
-0600
-0600
-0C00
-0C00
-1800
-1820
-3FE0
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR zacute
-ENCODING 378
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0300
-0600
-0C00
-0000
-7FE0
-60E0
-41C0
-0380
-0700
-0E00
-1C00
-3820
-7060
-7FE0
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR Zdotaccent
-ENCODING 379
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0300
-0300
-0000
-3FE0
-20C0
-00C0
-0180
-0180
-0300
-0300
-0600
-0600
-0C00
-0C00
-1800
-1820
-3FE0
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR zdotaccent
-ENCODING 380
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0600
-0600
-0000
-7FE0
-60E0
-41C0
-0380
-0700
-0E00
-1C00
-3820
-7060
-7FE0
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR Zcaron
-ENCODING 381
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-18C0
-0D80
-0700
-3FE0
-20C0
-00C0
-0180
-0180
-0300
-0300
-0600
-0600
-0C00
-0C00
-1800
-1820
-3FE0
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR zcaron
-ENCODING 382
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-18C0
-0D80
-0700
-0200
-0000
-7FE0
-60E0
-41C0
-0380
-0700
-0E00
-1C00
-3820
-7060
-7FE0
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR longs
-ENCODING 383
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0380
-04C0
-04C0
-0C00
-0C00
-0C00
-0C00
-3C00
-0C00
-0C00
-0C00
-0C00
-0C00
-0C00
-1E00
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR gravecomb
-ENCODING 768
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0C00
-0600
-0300
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR acutecomb
-ENCODING 769
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0300
-0600
-0C00
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR circumflexcomb
-ENCODING 770
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0400
-0E00
-1B00
-3180
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR tildecomb
-ENCODING 771
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-1C80
-3F80
-2700
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR macroncomb
-ENCODING 772
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-1F80
-1F80
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR brevecomb
-ENCODING 774
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-1B00
-1B00
-0E00
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR diaresiscomb
-ENCODING 776
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-1980
-1980
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR ringcomb
-ENCODING 778
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0E00
-1B00
-1B00
-0E00
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR caroncomb
-ENCODING 780
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-3180
-1B00
-0E00
-0400
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR cedillacomb
-ENCODING 807
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0600
-0300
-0180
-0F00
-0000
-ENDCHAR
-STARTCHAR ogonekcomb
-ENCODING 808
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0600
-0C00
-1800
-0F00
-0000
-ENDCHAR
-STARTCHAR Combining Low Line
-ENCODING 818
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-FFF0
-FFF0
-ENDCHAR
-STARTCHAR hyphen
-ENCODING 8208
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-3FC0
-3FC0
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR char8209
-ENCODING 8209
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-3FC0
-3FC0
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR figuredash
-ENCODING 8210
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-3FC0
-3FC0
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR endash
-ENCODING 8211
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-3FC0
-3FC0
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR emdash
-ENCODING 8212
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-7FE0
-7FE0
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR afii00208
-ENCODING 8213
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-7FE0
-7FE0
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR dblverticalbar
-ENCODING 8214
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-1980
-1980
-1980
-1980
-1980
-1980
-1980
-1980
-1980
-1980
-1980
-1980
-1980
-1980
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR dbllowline
-ENCODING 8215
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-3FC0
-0000
-0000
-3FC0
-ENDCHAR
-STARTCHAR quoteleft
-ENCODING 8216
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0100
-0300
-0600
-0C00
-0C00
-0F00
-0F00
-0600
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR quoteright
-ENCODING 8217
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0600
-0F00
-0F00
-0300
-0300
-0600
-0C00
-0800
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR quotesinglebase
-ENCODING 8218
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0600
-0F00
-0F00
-0300
-0300
-0600
-0C00
-0800
-0000
-0000
-ENDCHAR
-STARTCHAR quotereversed
-ENCODING 8219
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0600
-0F00
-0F00
-0C00
-0C00
-0600
-0300
-0100
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR quotedblleft
-ENCODING 8220
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0CC0
-1980
-1980
-1980
-1980
-1980
-1980
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR quotedblright
-ENCODING 8221
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-1980
-1980
-1980
-1980
-1980
-1980
-3300
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR quotedblbase
-ENCODING 8222
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-1980
-1980
-1980
-1980
-1980
-3300
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR char8223
-ENCODING 8223
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-1980
-1980
-1980
-1980
-1980
-1980
-0CC0
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR dagger
-ENCODING 8224
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0600
-0600
-0600
-3FC0
-3FC0
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR daggerdbl
-ENCODING 8225
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0600
-0600
-0600
-3FC0
-3FC0
-0600
-0600
-0600
-0600
-3FC0
-3FC0
-0600
-0600
-0600
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR bullet
-ENCODING 8226
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0700
-0F80
-0F80
-0F80
-0700
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR ellipsis
-ENCODING 8230
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-2220
-7770
-7770
-2220
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR perthousand
-ENCODING 8240
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-3180
-4980
-4B00
-3300
-0600
-0600
-0C00
-0C00
-1800
-1800
-36C0
-3920
-6920
-66C0
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR minute
-ENCODING 8242
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0600
-0600
-0600
-0600
-0600
-0600
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR second
-ENCODING 8243
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-1980
-1980
-1980
-1980
-1980
-1980
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR guilsinglleft
-ENCODING 8249
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0180
-0300
-0600
-0C00
-1800
-0C00
-0600
-0300
-0180
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR guilsinglright
-ENCODING 8250
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-1800
-0C00
-0600
-0300
-0180
-0300
-0600
-0C00
-1800
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR exclamdbl
-ENCODING 8252
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-1980
-1980
-1980
-1980
-1980
-1980
-1980
-1980
-1980
-1980
-1980
-0000
-0000
-1980
-1980
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR overline
-ENCODING 8254
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-3FC0
-3FC0
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR Euro
-ENCODING 8364
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0F80
-1040
-2020
-2000
-6000
-FF80
-6000
-6000
-FF00
-6000
-2000
-3000
-1840
-0F80
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR minus
-ENCODING 8722
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-3FC0
-3FC0
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR char9146
-ENCODING 9146
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-FFF0
-FFF0
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR char9147
-ENCODING 9147
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-FFF0
-FFF0
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR char9148
-ENCODING 9148
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-FFF0
-FFF0
-0000
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR char9149
-ENCODING 9149
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-FFF0
-FFF0
-ENDCHAR
-STARTCHAR char18
-ENCODING 9472
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-FFF0
-FFF0
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR char18
-ENCODING 9473
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-FFF0
-FFF0
-FFF0
-FFF0
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR char9474
-ENCODING 9474
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-ENDCHAR
-STARTCHAR char9474
-ENCODING 9475
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-ENDCHAR
-STARTCHAR char13
-ENCODING 9484
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-07F0
-07F0
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-ENDCHAR
-STARTCHAR char13
-ENCODING 9485
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-07F0
-07F0
-07F0
-07F0
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-ENDCHAR
-STARTCHAR char13
-ENCODING 9486
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0FF0
-0FF0
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-ENDCHAR
-STARTCHAR char13
-ENCODING 9487
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0FF0
-0FF0
-0FF0
-0FF0
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-ENDCHAR
-STARTCHAR char12
-ENCODING 9488
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-FE00
-FE00
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-ENDCHAR
-STARTCHAR char12
-ENCODING 9489
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-FE00
-FE00
-FE00
-FE00
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-ENDCHAR
-STARTCHAR char12
-ENCODING 9490
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-FF00
-FF00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-ENDCHAR
-STARTCHAR char12
-ENCODING 9491
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-FF00
-FF00
-FF00
-FF00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-ENDCHAR
-STARTCHAR char14
-ENCODING 9492
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-07F0
-07F0
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR char14
-ENCODING 9493
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-07F0
-07F0
-07F0
-07F0
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR char14
-ENCODING 9494
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0FF0
-0FF0
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR char14
-ENCODING 9495
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0FF0
-0FF0
-0FF0
-0FF0
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR char11
-ENCODING 9496
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-FE00
-FE00
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR char11
-ENCODING 9497
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-FE00
-FE00
-FE00
-FE00
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR char11
-ENCODING 9498
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-FF00
-FF00
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR char11
-ENCODING 9499
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-FF00
-FF00
-FF00
-FF00
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR char21
-ENCODING 9500
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-07F0
-07F0
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-ENDCHAR
-STARTCHAR char21
-ENCODING 9501
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-07F0
-07F0
-07F0
-07F0
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-ENDCHAR
-STARTCHAR char21
-ENCODING 9502
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0FF0
-0FF0
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-ENDCHAR
-STARTCHAR char21
-ENCODING 9503
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0FF0
-0FF0
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-ENDCHAR
-STARTCHAR char21
-ENCODING 9504
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0FF0
-0FF0
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-ENDCHAR
-STARTCHAR char21
-ENCODING 9505
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0FF0
-0FF0
-0FF0
-0FF0
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-ENDCHAR
-STARTCHAR char21
-ENCODING 9506
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0FF0
-0FF0
-0FF0
-0FF0
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-ENDCHAR
-STARTCHAR char21
-ENCODING 9507
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0FF0
-0FF0
-0FF0
-0FF0
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-ENDCHAR
-STARTCHAR char22
-ENCODING 9508
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-FE00
-FE00
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-ENDCHAR
-STARTCHAR char22
-ENCODING 9509
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-FE00
-FE00
-FE00
-FE00
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-ENDCHAR
-STARTCHAR char22
-ENCODING 9510
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-FF00
-FF00
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-ENDCHAR
-STARTCHAR char22
-ENCODING 9511
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-FF00
-FF00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-ENDCHAR
-STARTCHAR char22
-ENCODING 9512
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-FF00
-FF00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-ENDCHAR
-STARTCHAR char22
-ENCODING 9513
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-FF00
-FF00
-FF00
-FF00
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-ENDCHAR
-STARTCHAR char22
-ENCODING 9514
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-FF00
-FF00
-FF00
-FF00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-ENDCHAR
-STARTCHAR char22
-ENCODING 9515
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-FF00
-FF00
-FF00
-FF00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-ENDCHAR
-STARTCHAR char24
-ENCODING 9516
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-FFF0
-FFF0
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-ENDCHAR
-STARTCHAR char24
-ENCODING 9517
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-FE00
-FFF0
-FFF0
-FE00
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-ENDCHAR
-STARTCHAR char24
-ENCODING 9518
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-07F0
-FFF0
-FFF0
-07F0
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-ENDCHAR
-STARTCHAR char24
-ENCODING 9519
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-FFF0
-FFF0
-FFF0
-FFF0
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-ENDCHAR
-STARTCHAR char24
-ENCODING 9520
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-FFF0
-FFF0
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-ENDCHAR
-STARTCHAR char24
-ENCODING 9521
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-FF00
-FFF0
-FFF0
-FF00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-ENDCHAR
-STARTCHAR char24
-ENCODING 9522
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0FF0
-FFF0
-FFF0
-0FF0
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-ENDCHAR
-STARTCHAR char24
-ENCODING 9523
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-FFF0
-FFF0
-FFF0
-FFF0
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-ENDCHAR
-STARTCHAR char23
-ENCODING 9524
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-FFF0
-FFF0
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR char23
-ENCODING 9525
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-FE00
-FFF0
-FFF0
-FE00
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR char23
-ENCODING 9526
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-07F0
-FFF0
-FFF0
-07F0
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR char23
-ENCODING 9527
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-FFF0
-FFF0
-FFF0
-FFF0
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR char23
-ENCODING 9528
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-FFF0
-FFF0
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR char23
-ENCODING 9529
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-FF00
-FFF0
-FFF0
-FF00
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR char23
-ENCODING 9530
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0FF0
-FFF0
-FFF0
-0FF0
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR char23
-ENCODING 9531
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-FFF0
-FFF0
-FFF0
-FFF0
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR char9532
-ENCODING 9532
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-FFF0
-FFF0
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-ENDCHAR
-STARTCHAR char9532
-ENCODING 9533
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-FE00
-FFF0
-FFF0
-FE00
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-ENDCHAR
-STARTCHAR char9532
-ENCODING 9534
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-07F0
-FFF0
-FFF0
-07F0
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-ENDCHAR
-STARTCHAR char9532
-ENCODING 9535
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-FFF0
-FFF0
-FFF0
-FFF0
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-ENDCHAR
-STARTCHAR char9532
-ENCODING 9536
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-FFF0
-FFF0
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-ENDCHAR
-STARTCHAR char9532
-ENCODING 9537
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-FFF0
-FFF0
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-ENDCHAR
-STARTCHAR char9532
-ENCODING 9538
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-FFF0
-FFF0
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-ENDCHAR
-STARTCHAR char9532
-ENCODING 9539
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-FF00
-FFF0
-FFF0
-FE00
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-ENDCHAR
-STARTCHAR char9532
-ENCODING 9540
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0FF0
-FFF0
-FFF0
-07F0
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-ENDCHAR
-STARTCHAR char9532
-ENCODING 9541
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-FE00
-FFF0
-FFF0
-FF00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-ENDCHAR
-STARTCHAR char9532
-ENCODING 9542
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-07F0
-FFF0
-FFF0
-0FF0
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-ENDCHAR
-STARTCHAR char9532
-ENCODING 9543
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-FFF0
-FFF0
-FFF0
-FFF0
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-ENDCHAR
-STARTCHAR char9532
-ENCODING 9544
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-FFF0
-FFF0
-FFF0
-FFF0
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-ENDCHAR
-STARTCHAR char9532
-ENCODING 9545
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-FF00
-FFF0
-FFF0
-FF00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-ENDCHAR
-STARTCHAR char9532
-ENCODING 9546
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0FF0
-FFF0
-FFF0
-0FF0
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-ENDCHAR
-STARTCHAR char9532
-ENCODING 9547
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-FFF0
-FFF0
-FFF0
-FFF0
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-0F00
-ENDCHAR
-STARTCHAR char9552
-ENCODING 9552
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-FFF0
-0000
-0000
-FFF0
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR char9552
-ENCODING 9553
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0900
-0900
-0900
-0900
-0900
-0900
-0900
-0900
-0900
-0900
-0900
-0900
-0900
-0900
-0900
-0900
-0900
-0900
-0900
-0900
-0900
-0900
-ENDCHAR
-STARTCHAR char9552
-ENCODING 9554
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-07F0
-0600
-0600
-07F0
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-ENDCHAR
-STARTCHAR char9552
-ENCODING 9555
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0FF0
-0FF0
-0900
-0900
-0900
-0900
-0900
-0900
-0900
-0900
-0900
-0900
-ENDCHAR
-STARTCHAR char9552
-ENCODING 9556
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0FF0
-0800
-0800
-09F0
-0900
-0900
-0900
-0900
-0900
-0900
-0900
-0900
-0900
-ENDCHAR
-STARTCHAR char9552
-ENCODING 9557
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-FE00
-0600
-0600
-FE00
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-ENDCHAR
-STARTCHAR char9552
-ENCODING 9558
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-FF00
-FF00
-0900
-0900
-0900
-0900
-0900
-0900
-0900
-0900
-0900
-0900
-ENDCHAR
-STARTCHAR char9552
-ENCODING 9559
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-FF00
-0100
-0100
-F900
-0900
-0900
-0900
-0900
-0900
-0900
-0900
-0900
-0900
-ENDCHAR
-STARTCHAR char9552
-ENCODING 9560
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-07F0
-0600
-0600
-07F0
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR char9552
-ENCODING 9561
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0900
-0900
-0900
-0900
-0900
-0900
-0900
-0900
-0900
-0900
-0FF0
-0FF0
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR char9552
-ENCODING 9562
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0900
-0900
-0900
-0900
-0900
-0900
-0900
-0900
-0900
-09F0
-0800
-0800
-0FF0
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR char9552
-ENCODING 9563
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-FE00
-0600
-0600
-FE00
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR char9552
-ENCODING 9564
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0900
-0900
-0900
-0900
-0900
-0900
-0900
-0900
-0900
-0900
-FF00
-FF00
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR char9552
-ENCODING 9565
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0900
-0900
-0900
-0900
-0900
-0900
-0900
-0900
-0900
-F900
-0100
-0100
-FF00
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR char9552
-ENCODING 9566
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-07F0
-0600
-0600
-07F0
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-ENDCHAR
-STARTCHAR char9552
-ENCODING 9567
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0900
-0900
-0900
-0900
-0900
-0900
-0900
-0900
-0900
-0900
-0FF0
-0FF0
-0900
-0900
-0900
-0900
-0900
-0900
-0900
-0900
-0900
-0900
-ENDCHAR
-STARTCHAR char9552
-ENCODING 9568
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0900
-0900
-0900
-0900
-0900
-0900
-0900
-0900
-0900
-09F0
-0800
-0800
-09F0
-0900
-0900
-0900
-0900
-0900
-0900
-0900
-0900
-0900
-ENDCHAR
-STARTCHAR char9552
-ENCODING 9569
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-FE00
-0600
-0600
-FE00
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-ENDCHAR
-STARTCHAR char9552
-ENCODING 9570
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0900
-0900
-0900
-0900
-0900
-0900
-0900
-0900
-0900
-0900
-FF00
-FF00
-0900
-0900
-0900
-0900
-0900
-0900
-0900
-0900
-0900
-0900
-ENDCHAR
-STARTCHAR char9552
-ENCODING 9571
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0900
-0900
-0900
-0900
-0900
-0900
-0900
-0900
-0900
-F900
-0100
-0100
-F900
-0900
-0900
-0900
-0900
-0900
-0900
-0900
-0900
-0900
-ENDCHAR
-STARTCHAR char9552
-ENCODING 9572
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-FFF0
-0000
-0000
-FFF0
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-ENDCHAR
-STARTCHAR char9552
-ENCODING 9573
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-FFF0
-FFF0
-0900
-0900
-0900
-0900
-0900
-0900
-0900
-0900
-0900
-0900
-ENDCHAR
-STARTCHAR char9552
-ENCODING 9574
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-FFF0
-0000
-0000
-F9F0
-0900
-0900
-0900
-0900
-0900
-0900
-0900
-0900
-0900
-ENDCHAR
-STARTCHAR char9552
-ENCODING 9575
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-FFF0
-0000
-0000
-FFF0
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR char9552
-ENCODING 9576
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0900
-0900
-0900
-0900
-0900
-0900
-0900
-0900
-0900
-0900
-FFF0
-FFF0
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR char9552
-ENCODING 9577
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0900
-0900
-0900
-0900
-0900
-0900
-0900
-0900
-0900
-F9F0
-0000
-0000
-FFF0
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR char9552
-ENCODING 9578
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-FFF0
-0600
-0600
-FFF0
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-ENDCHAR
-STARTCHAR char9552
-ENCODING 9579
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0900
-0900
-0900
-0900
-0900
-0900
-0900
-0900
-0900
-0900
-FFF0
-FFF0
-0900
-0900
-0900
-0900
-0900
-0900
-0900
-0900
-0900
-0900
-ENDCHAR
-STARTCHAR char9552
-ENCODING 9580
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0900
-0900
-0900
-0900
-0900
-0900
-0900
-0900
-0900
-F9F0
-0000
-0000
-F9F0
-0900
-0900
-0900
-0900
-0900
-0900
-0900
-0900
-0900
-ENDCHAR
-STARTCHAR char13
-ENCODING 9581
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0070
-01F0
-0380
-0300
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-ENDCHAR
-STARTCHAR char13
-ENCODING 9582
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-E000
-F800
-1C00
-0C00
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-ENDCHAR
-STARTCHAR char13
-ENCODING 9583
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0C00
-1C00
-F800
-E000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR char13
-ENCODING 9584
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0600
-0300
-0380
-01F0
-0070
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR ltshade
-ENCODING 9617
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-AAA0
-0000
-AAA0
-0000
-AAA0
-0000
-AAA0
-0000
-AAA0
-0000
-AAA0
-0000
-AAA0
-0000
-AAA0
-0000
-AAA0
-0000
-AAA0
-0000
-AAA0
-0000
-ENDCHAR
-STARTCHAR shade
-ENCODING 9618
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-3330
-CCC0
-3330
-CCC0
-3330
-CCC0
-3330
-CCC0
-3330
-CCC0
-3330
-CCC0
-3330
-CCC0
-3330
-CCC0
-3330
-CCC0
-3330
-CCC0
-3330
-CCC0
-ENDCHAR
-STARTCHAR dkshade
-ENCODING 9619
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-FFF0
-AAA0
-FFF0
-AAA0
-FFF0
-AAA0
-FFF0
-AAA0
-FFF0
-AAA0
-FFF0
-AAA0
-FFF0
-AAA0
-FFF0
-AAA0
-FFF0
-AAA0
-FFF0
-AAA0
-FFF0
-AAA0
-ENDCHAR
-STARTCHAR blackdiamond
-ENCODING 9670
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-0000
-0000
-0000
-0600
-0F00
-1F80
-3FC0
-7FE0
-FFF0
-FFF0
-7FE0
-3FC0
-1F80
-0F00
-0600
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-STARTCHAR char65534
-ENCODING 65533
-SWIDTH 631 0
-DWIDTH 12 0
-BBX 12 22 0 -5
-BITMAP
-0000
-0000
-7FE0
-7FE0
-6060
-6060
-6060
-6060
-6060
-6060
-6060
-6060
-6060
-6060
-6060
-7FE0
-7FE0
-0000
-0000
-0000
-0000
-0000
-ENDCHAR
-ENDFONT
index 456c1bd8056bcd7ff7677987350127e9a13a5c23..bf1f6c615c13d90bcff2fd7b9da4207fbde481a7 100644 (file)
@@ -12,6 +12,7 @@ XCODE_APP = /Applications/Xcode.app
 TARGETS    = All Savers
 #ARCH      = -arch i386 -arch x86_64 ONLY_ACTIVE_ARCH=NO
 CERT      = 'Developer ID Installer: Jamie Zawinski (4627ATJELP)'
+CERT2     = 'Developer ID Application: Jamie Zawinski (4627ATJELP)'
 PKGID     = org.jwz.xscreensaver
 THUMBDIR   = build/screenshots
 XCODEBUILD = $(XCODE_APP)/Contents/Developer/usr/bin/xcodebuild
@@ -286,7 +287,6 @@ build/Release/installer.pkg: installer.rtf installer.xml installer.sh installer.
   rm -rf "$$STAGE" ;                                                   \
 
 
-# -format UDBZ saves 4% (~1.2 MB) over UDZO.
 dmg:: distdepend check_versions check_coretext
 #dmg:: check_gc
 dmg:: build/Release/installer.pkg
@@ -362,6 +362,10 @@ _dmg::
   mv "$$STAGE/bindist2.webloc" "$$STAGE/Get the Android Version.webloc" ;     \
                                                                              \
   set +x ;                                                                   \
+                                                                             \
+  echo "Chowning..." ;                                                       \
+  sudo chown -R root:wheel "$$STAGE/"* ;                                     \
+                                                                             \
   echo "Checking signatures..." ;                                            \
   spctl --assess --type install "$$PKG" ;                                    \
   spctl --assess --type execute "$$SRC/XScreenSaverUpdater.app" ;            \
@@ -377,6 +381,10 @@ _dmg::
     "$$TMPDMG" -o "$$DMG" ;                                                  \
   xattr -w com.apple.quarantine "0000;00000000;;" "$$DMG" ;                  \
   rm -f "$$TMPDMG" ;                                                         \
+                                                                             \
+  codesign --sign $(CERT2) "$$DMG" ;                                         \
+  spctl --assess --type install "$$DMG" ;                                    \
+                                                                             \
   ls -ldhgF "$$DMG" ;                                                        \
   $(MAKE) notarize ;                                                         \
 
@@ -389,8 +397,8 @@ _dmg::
 #    Pass: the one you just generated.
 #
 # "make notarize", which will upload the DMG (slow).
-# A response will be emailed back in about an hour.
-# When that arrives, "make staple".
+# "notarize_wait" waits for the response to be ready (takes 5+ minutes).
+# Only once that has arrived can we "staple" it onto the DMG.
 #
 # https://developer.apple.com/documentation/security/notarizing_your_app_before_distribution/customizing_the_notarization_workflow?language=objc
 #
@@ -433,12 +441,12 @@ staple::
   DMG="$$OUTDIR/$$BASE.dmg" ;                                                \
   set -x ;                                                                   \
   xcrun stapler staple "$$DMG" ;                                             \
-  xcrun stapler validate "$$DMG"
+  xcrun stapler validate "$$DMG" ;                                           \
 
 notarization_history::
        xcrun altool --notarization-history 0 $(NOTARGS)
        @echo 'now do: xcrun altool $(NOTARGS) --notarization-info <UUID>' ;  \
-       echo 'and wget the LogFileURL'
+       echo 'and wget the LogFileURL' ;                                      \
 
 
 # When debugging, sometimes I have to reset the preferences for all
index a1c4ed48e0625dc1f69aaa0f8cf4fad3a11e407c..11f7feebfb752088eeed3fa480076fcdb85d5452 100644 (file)
@@ -1,4 +1,4 @@
-/* xscreensaver, Copyright (c) 2006-2015 Jamie Zawinski <jwz@jwz.org>
+/* xscreensaver, Copyright (c) 2006-2019 Jamie Zawinski <jwz@jwz.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
     return NULL;
   }
   if (! [o isKindOfClass:[NSString class]]) {
-    NSLog(@"asked for %s as a string, but it is a %@", name, [o class]);
+    // Yeah, we do this sometimes. It's fine.
+    // NSLog(@"asked for %s as a string, but it is a %@", name, [o class]);
     o = [(NSNumber *) o stringValue];
   }
 
index e57d5a737923117e8f20d4090f875b87f84c6d76..502ad101e1f18cd2a236e51b7cd0b8f97ed2c935 100644 (file)
@@ -36,7 +36,7 @@ ridiculously long list of steps!
  16: Put a 200x150 screen shot in ~/www/xscreensaver/screenshots/
  17: ln -s ../../src/xscreensaver/OSX/build/Debug/NEW.saver \
            ~/Library/Screen\ Savers/
- 18: git add xscreensaver.xcodeproj/xcuserdata/*/xcschemes/*.xcscheme
+ 18: git add xscreensaver.xcodeproj/xcshareddata/xcschemes/*.xcscheme
  19: Don't forget to create a man page from the XML with xml2man.pl,
      and update Makefile.in.
  20: Make a video: -record-animation 3600 -geom 1920x1080+128+64
index e68387c9f5d5da5964cec2db2fdec726b26cb47b..71b5fb5e5026af00c67b2d063ec66ed1ace8e292 100644 (file)
@@ -1,4 +1,4 @@
-/* xscreensaver, Copyright (c) 2012-2018 Jamie Zawinski <jwz@jwz.org>
+/* xscreensaver, Copyright (c) 2012-2019 Jamie Zawinski <jwz@jwz.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
   win.size.height = 44; // #### This cannot possibly be right.
   UISearchBar *search = [[UISearchBar alloc] initWithFrame:win];
   search.delegate = self;
-  search.placeholder = @"Search...";
+  search.placeholder = NSLocalizedString(@"Search...", @"");
   self.tableView.tableHeaderView = search;
 
   // Dismiss the search field's keyboard as soon as we scroll.
index 8ab45c1fc0b963b6c0aac4c721987a6c90db8bdc..dc4352ec6c7871b32b34b7fc6764f9de59b7c724 100644 (file)
@@ -1,4 +1,4 @@
-/* xscreensaver, Copyright (c) 2006-2018 Jamie Zawinski <jwz@jwz.org>
+/* xscreensaver, Copyright (c) 2006-2019 Jamie Zawinski <jwz@jwz.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
   return self;
 }
 
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-implementations"
 - (BOOL)shouldAutorotateToInterfaceOrientation: (UIInterfaceOrientation)o
 {
   return allowRotation;                                /* Deprecated in iOS 6 */
 }
+#pragma clang diagnostic pop
 
 - (BOOL)shouldAutorotate                       /* Added in iOS 6 */
 {
 
 - (void)dealloc
 {
-  [_saverName release];
+  [saverName release];
   // iOS: When a UIView deallocs, it doesn't do [UIView removeFromSuperView]
   // for its subviews, so the subviews end up with a dangling pointer in their
   // superview properties.
 
   if (! _saverView) {
     UIAlertController *c = [UIAlertController
-                             alertControllerWithTitle:@"Unable to load!"
+                             alertControllerWithTitle:
+                               NSLocalizedString(@"Unable to load!", @"")
                              message:@""
                              preferredStyle:UIAlertControllerStyleAlert];
-    [c addAction: [UIAlertAction actionWithTitle: @"Bummer"
+    [c addAction: [UIAlertAction actionWithTitle:
+                                   NSLocalizedString(@"Bummer", @"")
                                  style: UIAlertActionStyleDefault
                                  handler: ^(UIAlertAction *a) {
       // #### Should expose the SaverListController...
 }
 
 
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-implementations"
 - (BOOL)shouldAutorotateToInterfaceOrientation: (UIInterfaceOrientation)o
 {
   return NO;                                   /* Deprecated in iOS 6 */
 }
+#pragma clang diagnostic pop
 
 
 - (BOOL)shouldAutorotate                       /* Added in iOS 6 */
@@ -1343,7 +1351,7 @@ FAIL:
     rect.origin.y = 0;
     rect.size.width = rect.size.height = 10;
     pb = [[NSButton alloc] initWithFrame:rect];
-    [pb setTitle:@"Preferences"];
+    [pb setTitle:NSLocalizedString(@"Preferences", @"")];
     [pb setBezelStyle:NSRoundedBezelStyle];
     [pb sizeToFit];
 
index 1a5f022bfdaf5bcd5ecd69232136e520a4a14e6b..61045303dda58c1bfcfb0d4545fa467cd435f1c0 100644 (file)
@@ -7,7 +7,7 @@
        <key>CFBundleExecutable</key>
        <string>${EXECUTABLE_NAME}</string>
        <key>CFBundleGetInfoString</key>
-       <string>5.42</string>
+       <string>5.43</string>
        <key>CFBundleIconFile</key>
        <string>SaverRunner</string>
        <key>CFBundleIdentifier</key>
        <key>CFBundleInfoDictionaryVersion</key>
        <string>6.0</string>
        <key>CFBundleLongVersionString</key>
-       <string>5.42</string>
+       <string>5.43</string>
        <key>CFBundleName</key>
        <string>${PRODUCT_NAME}</string>
        <key>CFBundlePackageType</key>
        <string>APPL</string>
        <key>CFBundleShortVersionString</key>
-       <string>5.42</string>
+       <string>5.43</string>
        <key>CFBundleSignature</key>
        <string>????</string>
        <key>CFBundleVersion</key>
-       <string>5.42</string>
+       <string>5.43</string>
        <key>LSMinimumSystemVersion</key>
        <string>${MACOSX_DEPLOYMENT_TARGET}</string>
        <key>NSHumanReadableCopyright</key>
-       <string>5.42</string>
+       <string>5.43</string>
        <key>NSMainNibFile</key>
        <string>SaverRunner</string>
        <key>NSPrincipalClass</key>
index 05befe8e1ca74dd6c19da66a878c91a5bc2d05ae..47088928b3636369f562fb30f524b7af7fb08940 100644 (file)
@@ -9,7 +9,7 @@
        <key>CFBundleExecutable</key>
        <string>${EXECUTABLE_NAME}</string>
        <key>CFBundleGetInfoString</key>
-       <string>5.42</string>
+       <string>5.43</string>
        <key>CFBundleIconFile</key>
        <string>SaverRunner</string>
        <key>CFBundleIdentifier</key>
        <key>CFBundleInfoDictionaryVersion</key>
        <string>6.0</string>
        <key>CFBundleLongVersionString</key>
-       <string>5.42</string>
+       <string>5.43</string>
        <key>CFBundleName</key>
        <string>${PRODUCT_NAME}</string>
        <key>CFBundlePackageType</key>
        <string>APPL</string>
        <key>CFBundleShortVersionString</key>
-       <string>5.42</string>
+       <string>5.43</string>
        <key>CFBundleSignature</key>
        <string>????</string>
        <key>CFBundleVersion</key>
-       <string>5.42</string>
+       <string>5.43</string>
        <key>LSMinimumSystemVersion</key>
        <string>${MACOSX_DEPLOYMENT_TARGET}</string>
        <key>LSUIElement</key>
        <true/>
        <key>NSHumanReadableCopyright</key>
-       <string>5.42</string>
+       <string>5.43</string>
        <key>NSMainNibFile</key>
        <string>Updater</string>
        <key>NSPrincipalClass</key>
index 4d106ada7f09c4afa5042128232a4e02d02a1105..c3fa8c9c5d90b47a84eb0e1cbc0e917f5df28975 100644 (file)
        <key>CFBundlePackageType</key>
        <string>BNDL</string>
        <key>CFBundleShortVersionString</key>
-       <string>5.42</string>
+       <string>5.43</string>
        <key>CFBundleSignature</key>
        <string>????</string>
        <key>CFBundleVersion</key>
-       <string>5.42</string>
+       <string>5.43</string>
        <key>LSMinimumSystemVersion</key>
        <string>10.8</string>
        <key>NSMainNibFile</key>
index 8e40dde6f09ff8105fc27eaca6a5c4464acb79cb..ae558dee86afd951c06ed193e2007e1007bad214 100644 (file)
@@ -1,4 +1,4 @@
-/* xscreensaver, Copyright (c) 2006-2018 Jamie Zawinski <jwz@jwz.org>
+/* xscreensaver, Copyright (c) 2006-2019 Jamie Zawinski <jwz@jwz.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -57,6 +57,7 @@
   NSDictionary *defaultOptions;
   const XrmOptionDescRec *opts;
   id xml_root, xml_parsing;
+  BOOL haveUpdater;
 
 # ifdef USE_IPHONE
   UITextField *active_text_field;
@@ -74,6 +75,7 @@
           options: (const XrmOptionDescRec *) opts
        controller: (NSUserDefaultsController *) prefs
  globalController: (NSUserDefaultsController *) globalPrefs
-         defaults: (NSDictionary *) defs;
+         defaults: (NSDictionary *) defs
+      haveUpdater: (BOOL) haveUpdater;
 
 @end
index eaa5add13cb4da1e07cf56c3f84c5763a4b5379b..185377c9aa024c916879af0076b6eef2a8b81394 100644 (file)
@@ -1,4 +1,4 @@
-/* xscreensaver, Copyright (c) 2006-2017 Jamie Zawinski <jwz@jwz.org>
+/* xscreensaver, Copyright (c) 2006-2019 Jamie Zawinski <jwz@jwz.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -103,10 +103,19 @@ typedef enum { SimpleXMLCommentKind,
 @synthesize attributes;
 @synthesize object;
 
+- (void) dealloc
+{
+  [name release];
+  [children release];
+  //[attributes release];
+  [object release];
+  [super dealloc];
+}
+
 - (id) init
 {
   self = [super init];
-  attributes = [NSMutableArray arrayWithCapacity:10];
+  attributes = [[NSMutableArray alloc] initWithCapacity:10];
   return self;
 }
 
@@ -189,7 +198,26 @@ typedef enum { SimpleXMLCommentKind,
   return value;
 }
 @end
-#endif // USE_IPHONE
+
+/* Current theory is that the @"value" KVO binding on NSTextFields are
+   sometimes returning nil when they're empty, but meanwhile
+   [NSUserDefaults setObject:forKey:] needs non-nil objects.
+ */
+@interface NonNilStringTransformer: NSValueTransformer {}
+@end
+@implementation NonNilStringTransformer
++ (Class)transformedValueClass { return [NSString class]; }
++ (BOOL)allowsReverseTransformation { return YES; }
+
+- (id)transformedValue:(id)value {
+  return value ? value : @"";
+}
+
+- (id)reverseTransformedValue:(id)value {
+  return value ? value : @"";
+}
+@end
+#endif // !USE_IPHONE
 
 
 #pragma mark Implementing radio buttons
@@ -217,6 +245,12 @@ typedef enum { SimpleXMLCommentKind,
 @synthesize index;
 @synthesize items;
 
+- (void)dealloc
+{
+  [items release];
+  [super dealloc];
+}
+
 - (id) initWithIndex:(int)_index items:_items
 {
   self = [super initWithFrame:CGRectZero];
@@ -710,14 +744,14 @@ static void layout_group (NSView *group, BOOL horiz_p);
 
 - (void) okAction:(NSObject *)arg
 {
+  // Without this, edits to text fields only happen if the user hits RET.
+  // Clicking OK should also commit those edits.
+  [self makeFirstResponder:nil];
+
   // Without the setAppliesImmediately:, when the saver restarts, it's still
   // got the old settings. -[XScreenSaverConfigSheet traverseTree] sets this
   // to NO; default is YES.
 
-  // #### However: I'm told that when these are set to YES, then changes to
-  // 'textLiteral', 'textURL' and 'textProgram' are ignored, but 'textFile'
-  // works.  In StarWars, at least...
-
   [userDefaultsController   setAppliesImmediately:YES];
   [globalDefaultsController setAppliesImmediately:YES];
   [userDefaultsController   commitEditing];
@@ -777,6 +811,9 @@ static void layout_group (NSView *group, BOOL horiz_p);
   if ([control isKindOfClass:[NSMatrix class]]) {
     opts_dict = @{ NSValueTransformerNameBindingOption:
                    @"TextModeTransformer" };
+  } else if ([control isKindOfClass:[NSTextField class]]) {
+    opts_dict = @{ NSValueTransformerNameBindingOption:
+                     @"NonNilStringTransformer" };
   }
 
   [control bind:bindto
@@ -1233,7 +1270,7 @@ hreffify (NSText *nstext)
   [lab setEditable:NO];
   [lab setBezeled:NO];
   [lab setDrawsBackground:NO];
-  [lab setStringValue:text];
+  [lab setStringValue:NSLocalizedString(text, @"")];
   [lab sizeToFit];
 # else  // USE_IPHONE
   UILabel *lab = [[UILabel alloc] initWithFrame:rect];
@@ -1255,15 +1292,21 @@ hreffify (NSText *nstext)
  */
 - (void) makeCheckbox:(NSXMLNode *)node on:(NSView *)parent
 {
-  NSMutableDictionary *dict = [@{ @"id":       @"",
+  NSMutableDictionary *dict = [@{ @"id":        @"",
                                   @"_label":    @"",
                                   @"arg-set":   @"",
-                                  @"arg-unset": @"" }
+                                  @"arg-unset": @"",
+                                  @"disabled":  @"" }
                                 mutableCopy];
   [self parseAttrs:dict node:node];
   NSString *label     = [dict objectForKey:@"_label"];
   NSString *arg_set   = [dict objectForKey:@"arg-set"];
   NSString *arg_unset = [dict objectForKey:@"arg-unset"];
+
+  NSString *dd   = [dict objectForKey:@"disabled"];
+  BOOL disabledp = (dd &&
+                    (NSOrderedSame == [dd caseInsensitiveCompare:@"true"] ||
+                     NSOrderedSame == [dd caseInsensitiveCompare:@"yes"]));
   [dict release];
   dict = 0;
   
@@ -1312,7 +1355,11 @@ hreffify (NSText *nstext)
 
 # endif // USE_IPHONE
   
-  [self bindSwitch:button cmdline:(arg_set ? arg_set : arg_unset)];
+  if (disabledp)
+    [button setEnabled:NO];
+  else
+    [self bindSwitch:button cmdline:(arg_set ? arg_set : arg_unset)];
+
   [button release];
 }
 
@@ -1509,7 +1556,7 @@ hreffify (NSText *nstext)
     rect.size.width = rect.size.height = 10;
     
     NSTextField *txt = [[NSTextField alloc] initWithFrame:rect];
-    [txt setStringValue:@"0000.0"];
+    [txt setStringValue:NSLocalizedString(@"0000.0", @"")];
     [txt sizeToFit];
     [txt setStringValue:@""];
     
@@ -1610,6 +1657,7 @@ set_menu_item_object (NSMenuItem *item, NSObject *obj)
 /* Creates the popup menu described by the given XML node (and its children).
  */
 - (void) makeOptionMenu:(NSXMLNode *)node on:(NSView *)parent
+               disabled:(BOOL)disabled
 {
   NSArray *children = [node children];
   NSUInteger i, count = [children count];
@@ -1790,7 +1838,10 @@ set_menu_item_object (NSMenuItem *item, NSObject *obj)
 
 # if !defined(USE_IPHONE) || defined(USE_PICKER_VIEW)
   [self placeChild:popup on:parent];
-  [self bindResource:popup key:menu_key];
+  if (disabled)
+    [popup setEnabled:NO];
+  else
+    [self bindResource:popup key:menu_key];
   [popup release];
 # endif
 
@@ -1829,6 +1880,11 @@ set_menu_item_object (NSMenuItem *item, NSObject *obj)
 
 }
 
+- (void) makeOptionMenu:(NSXMLNode *)node on:(NSView *)parent
+{
+ [self makeOptionMenu:node on:parent disabled:NO];
+}
+
 
 /* Creates an uneditable, wrapping NSTextField to display the given
    text enclosed by <description> ... </description> in the XML.
@@ -1926,7 +1982,8 @@ set_menu_item_object (NSMenuItem *item, NSObject *obj)
   // make the default size be around 30 columns; a typical value for
   // these text fields is "xscreensaver-text --cols 40".
   //
-  [txt setStringValue:@"123456789 123456789 123456789 "];
+  [txt setStringValue:
+         NSLocalizedString(@"123456789 123456789 123456789 ", @"")];
   [txt sizeToFit];
   [[txt cell] setWraps:NO];
   [[txt cell] setScrollable:YES];
@@ -2001,7 +2058,7 @@ set_menu_item_object (NSMenuItem *item, NSObject *obj)
 
   // make the default size be around 20 columns.
   //
-  [txt setStringValue:@"123456789 123456789 "];
+  [txt setStringValue:NSLocalizedString(@"123456789 123456789 ", @"")];
   [txt sizeToFit];
   [txt setSelectable:YES];
   [txt setEditable:editable_p];
@@ -2037,7 +2094,7 @@ set_menu_item_object (NSMenuItem *item, NSObject *obj)
   rect.origin.x = rect.origin.y = 0;    
   rect.size.width = rect.size.height = 10;
   NSButton *choose = [[NSButton alloc] initWithFrame:rect];
-  [choose setTitle:@"Choose..."];
+  [choose setTitle:NSLocalizedString(@"Choose...", @"")];
   [choose setBezelStyle:NSRoundedBezelStyle];
   [choose sizeToFit];
 
@@ -2072,6 +2129,22 @@ do_file_selector (NSTextField *txt, BOOL dirs_p)
   [panel setAllowsMultipleSelection:NO];
   [panel setCanChooseFiles:!dirs_p];
   [panel setCanChooseDirectories:dirs_p];
+  [panel setCanCreateDirectories:NO];
+
+  NSString *def = [[txt stringValue] stringByExpandingTildeInPath];
+  if (dirs_p) {
+    // Open in the previously-selected directory.
+    [panel setDirectoryURL:
+             [NSURL fileURLWithPath:def isDirectory:YES]];
+    [panel setNameFieldStringValue:[def lastPathComponent]];
+  } else {
+    // Open in the directory of the previously-selected file.
+    [panel setDirectoryURL:
+             [NSURL fileURLWithPath:[def stringByDeletingLastPathComponent]
+                    isDirectory:YES]];
+    // I hoped that this would select that file by default, but it does not.
+    [panel setNameFieldStringValue:[def lastPathComponent]];
+  }
 
   NSInteger result = [panel runModal];
   if (result == NSOKButton) {
@@ -2083,6 +2156,9 @@ do_file_selector (NSTextField *txt, BOOL dirs_p)
     // Fuck me!  Just setting the value of the NSTextField does not cause
     // that to end up in the preferences!
     //
+    [[txt window] makeFirstResponder:nil];  // And this doesn't fix it.
+
+    // So set the value manually.
     NSDictionary *dict = [txt infoForBinding:@"value"];
     NSUserDefaultsController *prefs = [dict objectForKey:@"NSObservedObject"];
     NSString *path = [dict objectForKey:@"NSObservedKeyPath"];
@@ -2360,7 +2436,7 @@ find_text_field_of_button (NSButton *button)
   NSBox *box = [[NSBox alloc] initWithFrame:rect];
   [box setTitlePosition:NSAtTop];
   [box setBorderType:NSBezelBorder];
-  [box setTitle:@"Display Text"];
+  [box setTitle:NSLocalizedString(@"Display Text", @"")];
 
   rect.size.width = rect.size.height = 12;
   [box setContentViewMargins:rect.size];
@@ -2481,6 +2557,7 @@ find_text_field_of_button (NSButton *button)
            @{ @"id":        @SUSUEnableAutomaticChecksKey,
               @"_label":    @"Automatically check for updates",
               @"arg-unset": @"-no-" SUSUEnableAutomaticChecksKey,
+              @"disabled":  (haveUpdater ? @"no" : @"yes")
             }];
   [self makeCheckbox:node2 on:group];
   [node2 release];
@@ -2528,12 +2605,26 @@ find_text_field_of_button (NSButton *button)
   [node3 autorelease];
 
   // </option>
-  [self makeOptionMenu:node2 on:group];
+  [self makeOptionMenu:node2 on:group disabled:!haveUpdater];
   [node2 release];
 
   // </hgroup>
   layout_group (group, TRUE);
 
+  if (!haveUpdater) {
+    // Add a second, explanatory label.
+    LABEL *lab2 = 0;
+    lab2 = [self makeLabel:@"XScreenSaverUpdater.app is not installed!\n"
+                            "Unable to check for updates."];
+    [self placeChild:lab2 on:group];
+
+    // Pack it in a little tighter vertically.
+    NSRect r2 = [lab2 frame];
+    r2.origin.x += -4;
+    r2.origin.y += 14;
+    [lab2 setFrameOrigin:r2.origin];
+  }
+
   rect.size.width = rect.size.height = 0;
   NSBox *box = [[NSBox alloc] initWithFrame:rect];
   [box setTitlePosition:NSNoTitle];
@@ -2997,13 +3088,13 @@ wrap_with_buttons (NSWindow *window, NSView *panel)
   rect.origin.x = rect.origin.y = 0;
   rect.size.width = rect.size.height = 10;
   NSButton *reset = [[NSButton alloc] initWithFrame:rect];
-  [reset setTitle:@"Reset to Defaults"];
+  [reset setTitle:NSLocalizedString(@"Reset to Defaults", @"")];
   [reset setBezelStyle:NSRoundedBezelStyle];
   [reset sizeToFit];
 
   rect = [reset frame];
   NSButton *ok = [[NSButton alloc] initWithFrame:rect];
-  [ok setTitle:@"OK"];
+  [ok setTitle:NSLocalizedString(@"OK", @"")];
   [ok setBezelStyle:NSRoundedBezelStyle];
   [ok sizeToFit];
   rect = [bbox frame];
@@ -3012,7 +3103,7 @@ wrap_with_buttons (NSWindow *window, NSView *panel)
 
   rect = [ok frame];
   NSButton *cancel = [[NSButton alloc] initWithFrame:rect];
-  [cancel setTitle:@"Cancel"];
+  [cancel setTitle:NSLocalizedString(@"Cancel", @"")];
   [cancel setBezelStyle:NSRoundedBezelStyle];
   [cancel sizeToFit];
   rect.origin.x -= [cancel frame].size.width + 10;
@@ -3267,7 +3358,8 @@ wrap_with_buttons (NSWindow *window, NSView *panel)
 {
   [[self navigationItem] 
     setRightBarButtonItem: [[UIBarButtonItem alloc]
-                             initWithTitle: @"Reset to Defaults"
+                             initWithTitle:
+                               NSLocalizedString(@"Reset to Defaults", @"")
                              style: UIBarButtonItemStylePlain
                              target:self
                              action:@selector(resetAction:)]];
@@ -3278,7 +3370,15 @@ wrap_with_buttons (NSWindow *window, NSView *panel)
 }
 
 
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-implementations"
 - (BOOL)shouldAutorotateToInterfaceOrientation: (UIInterfaceOrientation)o
+{
+  return YES;                                  /* Deprecated in iOS 6 */
+}
+#pragma clang diagnostic pop
+
+- (BOOL)shouldAutorotate                       /* Added in iOS 6 */
 {
   return YES;
 }
@@ -3377,6 +3477,8 @@ wrap_with_buttons (NSWindow *window, NSView *panel)
 }
 
 
+#pragma clang diagnostic push   /* Deprecated in iOS 8 */
+#pragma clang diagnostic ignored "-Wdeprecated-implementations"
 - (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)o
 {
   [NSTimer scheduledTimerWithTimeInterval: 0
@@ -3385,6 +3487,7 @@ wrap_with_buttons (NSWindow *window, NSView *panel)
            userInfo:nil
            repeats:NO];
 }
+#pragma clang diagnostic pop
 
 
 #ifndef USE_PICKER_VIEW
@@ -3640,6 +3743,7 @@ wrap_with_buttons (NSWindow *window, NSView *panel)
        controller: (NSUserDefaultsController *) _prefs
  globalController: (NSUserDefaultsController *) _globalPrefs
          defaults: (NSDictionary *) _defs
+      haveUpdater: (BOOL) _haveUpdater
 {
 # ifndef USE_IPHONE
   self = [super init];
@@ -3654,6 +3758,7 @@ wrap_with_buttons (NSWindow *window, NSView *panel)
   defaultOptions = _defs;
   userDefaultsController   = [_prefs retain];
   globalDefaultsController = [_globalPrefs retain];
+  haveUpdater = _haveUpdater;
 
   NSXMLParser *xmlDoc = [[NSXMLParser alloc] initWithData:xml_data];
 
index 57b0c7c74b8c57351af4d050b4518b860eb13af7..c9d659e79594a74796b174d65a5c84c87b7f2260 100644 (file)
@@ -1,4 +1,4 @@
-/* xscreensaver, Copyright (c) 2006-2017 Jamie Zawinski <jwz@jwz.org>
+/* xscreensaver, Copyright (c) 2006-2019 Jamie Zawinski <jwz@jwz.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -43,7 +43,7 @@ extern void check_gl_error (const char *type);
 
 /* With GL programs, drawing at full resolution isn't a problem.
  */
-- (CGFloat) hackedContentScaleFactor
+- (CGFloat) hackedContentScaleFactor:(BOOL)fonts_p
 {
 # ifdef USE_IPHONE
   return [self contentScaleFactor];
@@ -351,8 +351,8 @@ init_GL (ModeInfo *mi)
 
   // Caller expects a pointer to an opaque struct...  which it dereferences.
   // Don't ask me, it's historical...
-  static int blort = -1;
-  return (void *) &blort;
+  static GLXContext blort = (GLXContext) -1;
+  return &blort;
 }
 
 
index 1965ef8e95c2ece05b11b2e02d1c4003647559bb..f03f0a54f98e7a7b8daff19c6249f5eaf2d980c9 100644 (file)
@@ -1,4 +1,4 @@
-/* xscreensaver, Copyright (c) 2006-2017 Jamie Zawinski <jwz@jwz.org>
+/* xscreensaver, Copyright (c) 2006-2019 Jamie Zawinski <jwz@jwz.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
 + (NSString *) decompressXML:(NSData *)xml;
 
 - (CGFloat) hackedContentScaleFactor;
+- (CGFloat) hackedContentScaleFactor:(BOOL)fonts_p;
 
 #ifdef USE_IPHONE
 - (void)setScreenLocked:(BOOL)locked;
index 371cf17743c1fd63f40e571873344bfb8c83aefe..ad505bdaf09102a224ea69ee66ca462d54842f61 100644 (file)
@@ -1,4 +1,4 @@
-/* xscreensaver, Copyright (c) 2006-2018 Jamie Zawinski <jwz@jwz.org>
+/* xscreensaver, Copyright (c) 2006-2019 Jamie Zawinski <jwz@jwz.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -295,15 +295,11 @@ add_default_options (const XrmOptionDescRec *opts,
 # endif
     ".doubleBuffer:       True",
     ".multiSample:        False",
-# ifndef USE_IPHONE
-    ".textMode:           date",
-# else
     ".textMode:           url",
-# endif
- // ".textLiteral:        ",
- // ".textFile:           ",
+    ".textLiteral:        ",
+    ".textFile:           ",
     ".textURL:            https://en.wikipedia.org/w/index.php?title=Special:NewPages&feed=rss",
// ".textProgram:        ",
   ".textProgram:        ",
     ".grabDesktopImages:  yes",
 # ifndef USE_IPHONE
     ".chooseRandomImages: no",
@@ -932,6 +928,11 @@ screenhack_do_fps (Display *dpy, Window w, fps_state *fpst, void *closure)
    nature.
  */
 - (CGFloat) hackedContentScaleFactor
+{
+  return [self hackedContentScaleFactor:FALSE];
+}
+
+- (CGFloat) hackedContentScaleFactor:(BOOL)fonts_p
 {
 # ifdef USE_IPHONE
   CGFloat s = self.contentScaleFactor;
@@ -939,8 +940,8 @@ screenhack_do_fps (Display *dpy, Window w, fps_state *fpst, void *closure)
   CGFloat s = self.window.backingScaleFactor;
 # endif
 
-  if (_lowrez_p) {
-    NSSize b = [self bounds].size;
+  if (_lowrez_p && !fonts_p) {
+    NSSize b = [self bounds].size;  // This is in points, not pixels
     CGFloat wh = b.width > b.height ? b.width : b.height;
 
     // Scale down to as close to 1024 as we can get without going under,
@@ -1011,12 +1012,14 @@ current_device_rotation (void)
                                               e]
                            preferredStyle:UIAlertControllerStyleAlert];
 
-  [c addAction: [UIAlertAction actionWithTitle: @"Exit"
+  [c addAction: [UIAlertAction actionWithTitle:
+                                 NSLocalizedString(@"Exit", @"")
                                style: UIAlertActionStyleDefault
                                handler: ^(UIAlertAction *a) {
     exit (-1);
   }]];
-  [c addAction: [UIAlertAction actionWithTitle: @"Keep going"
+  [c addAction: [UIAlertAction actionWithTitle:
+                                 NSLocalizedString(@"Keep going", @"")
                                style: UIAlertActionStyleDefault
                                handler: ^(UIAlertAction *a) {
     [self stopAndClose:NO];
@@ -1866,6 +1869,15 @@ gl_check_ver (const struct gl_version *caps,
 }
 
 
+/* drawRect always does nothing, and animateOneFrame renders bits to the
+   screen.  This is (now) true of both X11 and GL on both MacOS and iOS.
+   But this null method needs to exist or things complain.
+ */
+- (void)drawRect:(NSRect)rect
+{
+}
+
+
 - (void) animateOneFrame
 {
   // Render X11 into the backing store bitmap...
@@ -1990,10 +2002,13 @@ gl_check_ver (const struct gl_version *caps,
   
 # ifdef USE_IPHONE
   UIViewController *sheet;
+  NSString *updater = 0;
 # else  // !USE_IPHONE
   NSWindow *sheet;
+  NSString *updater = [self updaterPath];
 # endif // !USE_IPHONE
 
+
   NSData *xmld = [NSData dataWithContentsOfFile:path];
   NSString *xml = [[self class] decompressXML: xmld];
   sheet = [[XScreenSaverConfigSheet alloc]
@@ -2001,7 +2016,8 @@ gl_check_ver (const struct gl_version *caps,
                 options:xsft->options
              controller:[prefsReader userDefaultsController]
        globalController:[prefsReader globalDefaultsController]
-               defaults:[prefsReader defaultOptions]];
+               defaults:[prefsReader defaultOptions]
+            haveUpdater:(updater ? TRUE : FALSE)];
 
   // #### am I expected to retain this, or not? wtf.
   //      I thought not, but if I don't do this, we (sometimes) crash.
@@ -2953,24 +2969,12 @@ gl_check_ver (const struct gl_version *caps,
 #endif // USE_IPHONE
 
 
-- (void) checkForUpdates
-{
 # ifndef USE_IPHONE
-  // We only check once at startup, even if there are multiple screens,
-  // and even if this saver is running for many days.
-  // (Uh, except this doesn't work because this static isn't shared,
-  // even if we make it an exported global. Not sure why. Oh well.)
-  static BOOL checked_p = NO;
-  if (checked_p) return;
-  checked_p = YES;
-
-  // If it's off, don't bother running the updater.  Otherwise, the
-  // updater will decide if it's time to hit the network.
-  if (! get_boolean_resource (xdpy,
-                              SUSUEnableAutomaticChecksKey,
-                              SUSUEnableAutomaticChecksKey))
-    return;
 
+// Returns the full pathname to the Sparkle updater app.
+//
+- (NSString *) updaterPath
+{
   NSString *updater = @"XScreenSaverUpdater.app";
 
   // There may be multiple copies of the updater: e.g., one in /Applications
@@ -3001,11 +3005,37 @@ gl_check_ver (const struct gl_version *caps,
   if (app_path && [app_path hasPrefix:@"/Volumes/XScreenSaver "])
     app_path = 0;  // The DMG version will not do.
 
+  return app_path;
+}
+# endif // !USE_IPHONE
+
+
+- (void) checkForUpdates
+{
+# ifndef USE_IPHONE
+  // We only check once at startup, even if there are multiple screens,
+  // and even if this saver is running for many days.
+  // (Uh, except this doesn't work because this static isn't shared,
+  // even if we make it an exported global. Not sure why. Oh well.)
+  static BOOL checked_p = NO;
+  if (checked_p) return;
+  checked_p = YES;
+
+  // If it's off, don't bother running the updater.  Otherwise, the
+  // updater will decide if it's time to hit the network.
+  if (! get_boolean_resource (xdpy,
+                              SUSUEnableAutomaticChecksKey,
+                              SUSUEnableAutomaticChecksKey))
+    return;
+
+  NSString *app_path = [self updaterPath];
+
   if (!app_path) {
-    NSLog(@"Unable to find %@", updater);
+    NSLog(@"Unable to find XScreenSaverUpdater.app");
     return;
   }
 
+  NSWorkspace *workspace = [NSWorkspace sharedWorkspace];
   NSError *err = nil;
   if (! [workspace launchApplicationAtURL:[NSURL fileURLWithPath:app_path]
                    options:(NSWorkspaceLaunchWithoutAddingToRecents |
@@ -3028,6 +3058,7 @@ gl_check_ver (const struct gl_version *caps,
 static PrefsReader *
 get_prefsReader (Display *dpy)
 {
+  if (! dpy) return 0;
   XScreenSaverView *view = jwxyz_window_view (XRootWindow (dpy, 0));
   if (!view) return 0;
   return [view prefsReader];
index 251bb11a5b6512e78d61ea3b708fffcfabaad7dd..f6191e141c9e69d02fd15cfe1b0ab10bcaeed30b 100644 (file)
@@ -16,8 +16,8 @@
 \b0 by Jamie Zawinski\
 and many others\
 \
-version 5.42\
-28-Dec-2018\
+version 5.43\
+01-Jul-2019\
 \
 {\field{\*\fldinst{HYPERLINK "https://www.jwz.org/xscreensaver/"}}{\fldrslt \cf2 \ul \ulc2 https://www.jwz.org/xscreensaver/}}\
 \pard\pardeftab720
index c93343cf747a0fded5dcdfcdb93f4daac67637f4..1ba18a09dfbfc6f7f5b4604e72be4c23559bec4e 100755 (executable)
@@ -1,5 +1,5 @@
 #!/usr/bin/perl -w
-# Copyright © 2012-2018 Jamie Zawinski <jwz@jwz.org>
+# Copyright © 2012-2019 Jamie Zawinski <jwz@jwz.org>
 #
 # Permission to use, copy, modify, distribute, and sell this software and its
 # documentation for any purpose is hereby granted without fee, provided that
@@ -23,7 +23,7 @@ require 5;
 use strict;
 
 my $progname = $0; $progname =~ s@.*/@@g;
-my ($version) = ('$Revision: 1.6 $' =~ m/\s(\d[.\d]+)\s/s);
+my ($version) = ('$Revision: 1.7 $' =~ m/\s(\d[.\d]+)\s/s);
 
 my $verbose = 1;
 
@@ -66,8 +66,10 @@ sub build_h($) {
 
   parse_makefiles();
 
-  my @schemes = glob('xscreensaver.xcodeproj/xcuserdata/' .
-                     '*.xcuserdatad/xcschemes/*.xcscheme');
+  my @schemes = (glob('xscreensaver.xcodeproj/xcuserdata/' .
+                      '*.xcuserdatad/xcschemes/*.xcscheme'),
+                 glob('xscreensaver.xcodeproj/xcshareddata/' .
+                      'xcschemes/*.xcscheme'));
   error ("no scheme files") unless (@schemes);
 
   my %names = ();
diff --git a/OSX/en.lproj/InfoPlist.strings b/OSX/en.lproj/InfoPlist.strings
new file mode 100644 (file)
index 0000000..dea12de
Binary files /dev/null and b/OSX/en.lproj/InfoPlist.strings differ
diff --git a/OSX/en.lproj/SaverRunner.nib/designable.nib b/OSX/en.lproj/SaverRunner.nib/designable.nib
new file mode 100644 (file)
index 0000000..1facee5
--- /dev/null
@@ -0,0 +1,1790 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="8.00">
+       <data>
+               <int key="IBDocument.SystemTarget">1050</int>
+               <string key="IBDocument.SystemVersion">10K549</string>
+               <string key="IBDocument.InterfaceBuilderVersion">851</string>
+               <string key="IBDocument.AppKitVersion">1038.36</string>
+               <string key="IBDocument.HIToolboxVersion">461.00</string>
+               <object class="NSMutableDictionary" key="IBDocument.PluginVersions">
+                       <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string>
+                       <string key="NS.object.0">851</string>
+               </object>
+               <array class="NSMutableArray" key="IBDocument.EditedObjectIDs">
+                       <integer value="57"/>
+               </array>
+               <array key="IBDocument.PluginDependencies">
+                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+               </array>
+               <object class="NSMutableDictionary" key="IBDocument.Metadata">
+                       <string key="NS.key.0">PluginDependencyRecalculationVersion</string>
+                       <integer value="1" key="NS.object.0"/>
+               </object>
+               <array class="NSMutableArray" key="IBDocument.RootObjects" id="837227664">
+                       <object class="NSCustomObject" id="838516170">
+                               <object class="NSMutableString" key="NSClassName">
+                                       <characters key="NS.bytes">NSApplication</characters>
+                               </object>
+                       </object>
+                       <object class="NSCustomObject" id="998231172">
+                               <string key="NSClassName">FirstResponder</string>
+                       </object>
+                       <object class="NSCustomObject" id="996827039">
+                               <string key="NSClassName">NSApplication</string>
+                       </object>
+                       <object class="NSMenu" id="45111635">
+                               <string key="NSTitle">MainMenu</string>
+                               <array class="NSMutableArray" key="NSMenuItems">
+                                       <object class="NSMenuItem" id="690370694">
+                                               <reference key="NSMenu" ref="45111635"/>
+                                               <string key="NSTitle">XScreenSaver</string>
+                                               <string key="NSKeyEquiv"/>
+                                               <int key="NSKeyEquivModMask">1048576</int>
+                                               <int key="NSMnemonicLoc">2147483647</int>
+                                               <object class="NSCustomResource" key="NSOnImage" id="301225830">
+                                                       <string key="NSClassName">NSImage</string>
+                                                       <string key="NSResourceName">NSMenuCheckmark</string>
+                                               </object>
+                                               <object class="NSCustomResource" key="NSMixedImage" id="862154113">
+                                                       <string key="NSClassName">NSImage</string>
+                                                       <string key="NSResourceName">NSMenuMixedState</string>
+                                               </object>
+                                               <string key="NSAction">submenuAction:</string>
+                                               <object class="NSMenu" key="NSSubmenu" id="648337178">
+                                                       <string key="NSTitle">XScreenSaver</string>
+                                                       <array class="NSMutableArray" key="NSMenuItems">
+                                                               <object class="NSMenuItem" id="8914611">
+                                                                       <reference key="NSMenu" ref="648337178"/>
+                                                                       <string key="NSTitle">About XScreenSaver</string>
+                                                                       <string key="NSKeyEquiv"/>
+                                                                       <int key="NSMnemonicLoc">2147483647</int>
+                                                                       <reference key="NSOnImage" ref="301225830"/>
+                                                                       <reference key="NSMixedImage" ref="862154113"/>
+                                                               </object>
+                                                               <object class="NSMenuItem" id="627255583">
+                                                                       <reference key="NSMenu" ref="648337178"/>
+                                                                       <bool key="NSIsDisabled">YES</bool>
+                                                                       <bool key="NSIsSeparator">YES</bool>
+                                                                       <string key="NSTitle"/>
+                                                                       <string key="NSKeyEquiv"/>
+                                                                       <int key="NSKeyEquivModMask">1048576</int>
+                                                                       <int key="NSMnemonicLoc">2147483647</int>
+                                                                       <reference key="NSOnImage" ref="301225830"/>
+                                                                       <reference key="NSMixedImage" ref="862154113"/>
+                                                               </object>
+                                                               <object class="NSMenuItem" id="381880730">
+                                                                       <reference key="NSMenu" ref="648337178"/>
+                                                                       <bool key="NSIsDisabled">YES</bool>
+                                                                       <string key="NSTitle">Preferences…</string>
+                                                                       <string key="NSKeyEquiv">,</string>
+                                                                       <int key="NSKeyEquivModMask">1048576</int>
+                                                                       <int key="NSMnemonicLoc">2147483647</int>
+                                                                       <reference key="NSOnImage" ref="301225830"/>
+                                                                       <reference key="NSMixedImage" ref="862154113"/>
+                                                               </object>
+                                                               <object class="NSMenuItem" id="862592074">
+                                                                       <reference key="NSMenu" ref="648337178"/>
+                                                                       <bool key="NSIsDisabled">YES</bool>
+                                                                       <bool key="NSIsSeparator">YES</bool>
+                                                                       <string key="NSTitle"/>
+                                                                       <string key="NSKeyEquiv"/>
+                                                                       <int key="NSKeyEquivModMask">1048576</int>
+                                                                       <int key="NSMnemonicLoc">2147483647</int>
+                                                                       <reference key="NSOnImage" ref="301225830"/>
+                                                                       <reference key="NSMixedImage" ref="862154113"/>
+                                                               </object>
+                                                               <object class="NSMenuItem" id="923603386">
+                                                                       <reference key="NSMenu" ref="648337178"/>
+                                                                       <string key="NSTitle">Services</string>
+                                                                       <string key="NSKeyEquiv"/>
+                                                                       <int key="NSKeyEquivModMask">1048576</int>
+                                                                       <int key="NSMnemonicLoc">2147483647</int>
+                                                                       <reference key="NSOnImage" ref="301225830"/>
+                                                                       <reference key="NSMixedImage" ref="862154113"/>
+                                                                       <string key="NSAction">submenuAction:</string>
+                                                                       <object class="NSMenu" key="NSSubmenu" id="1035646574">
+                                                                               <object class="NSMutableString" key="NSTitle">
+                                                                                       <characters key="NS.bytes">Services</characters>
+                                                                               </object>
+                                                                               <array class="NSMutableArray" key="NSMenuItems"/>
+                                                                               <string key="NSName">_NSServicesMenu</string>
+                                                                       </object>
+                                                               </object>
+                                                               <object class="NSMenuItem" id="819131537">
+                                                                       <reference key="NSMenu" ref="648337178"/>
+                                                                       <bool key="NSIsDisabled">YES</bool>
+                                                                       <bool key="NSIsSeparator">YES</bool>
+                                                                       <string key="NSTitle"/>
+                                                                       <string key="NSKeyEquiv"/>
+                                                                       <int key="NSKeyEquivModMask">1048576</int>
+                                                                       <int key="NSMnemonicLoc">2147483647</int>
+                                                                       <reference key="NSOnImage" ref="301225830"/>
+                                                                       <reference key="NSMixedImage" ref="862154113"/>
+                                                               </object>
+                                                               <object class="NSMenuItem" id="632798708">
+                                                                       <reference key="NSMenu" ref="648337178"/>
+                                                                       <string key="NSTitle">Hide XScreenSaver</string>
+                                                                       <string key="NSKeyEquiv">h</string>
+                                                                       <int key="NSKeyEquivModMask">1048576</int>
+                                                                       <int key="NSMnemonicLoc">2147483647</int>
+                                                                       <reference key="NSOnImage" ref="301225830"/>
+                                                                       <reference key="NSMixedImage" ref="862154113"/>
+                                                               </object>
+                                                               <object class="NSMenuItem" id="468461345">
+                                                                       <reference key="NSMenu" ref="648337178"/>
+                                                                       <string key="NSTitle">Hide Others</string>
+                                                                       <string key="NSKeyEquiv">h</string>
+                                                                       <int key="NSKeyEquivModMask">1572864</int>
+                                                                       <int key="NSMnemonicLoc">2147483647</int>
+                                                                       <reference key="NSOnImage" ref="301225830"/>
+                                                                       <reference key="NSMixedImage" ref="862154113"/>
+                                                               </object>
+                                                               <object class="NSMenuItem" id="437251807">
+                                                                       <reference key="NSMenu" ref="648337178"/>
+                                                                       <string key="NSTitle">Show All</string>
+                                                                       <string key="NSKeyEquiv"/>
+                                                                       <int key="NSKeyEquivModMask">1048576</int>
+                                                                       <int key="NSMnemonicLoc">2147483647</int>
+                                                                       <reference key="NSOnImage" ref="301225830"/>
+                                                                       <reference key="NSMixedImage" ref="862154113"/>
+                                                               </object>
+                                                               <object class="NSMenuItem" id="583949930">
+                                                                       <reference key="NSMenu" ref="648337178"/>
+                                                                       <bool key="NSIsDisabled">YES</bool>
+                                                                       <bool key="NSIsSeparator">YES</bool>
+                                                                       <string key="NSTitle"/>
+                                                                       <string key="NSKeyEquiv"/>
+                                                                       <int key="NSKeyEquivModMask">1048576</int>
+                                                                       <int key="NSMnemonicLoc">2147483647</int>
+                                                                       <reference key="NSOnImage" ref="301225830"/>
+                                                                       <reference key="NSMixedImage" ref="862154113"/>
+                                                               </object>
+                                                               <object class="NSMenuItem" id="504373960">
+                                                                       <reference key="NSMenu" ref="648337178"/>
+                                                                       <string key="NSTitle">Quit XScreenSaver</string>
+                                                                       <string key="NSKeyEquiv">q</string>
+                                                                       <int key="NSKeyEquivModMask">1048576</int>
+                                                                       <int key="NSMnemonicLoc">2147483647</int>
+                                                                       <reference key="NSOnImage" ref="301225830"/>
+                                                                       <reference key="NSMixedImage" ref="862154113"/>
+                                                               </object>
+                                                       </array>
+                                                       <string key="NSName">_NSAppleMenu</string>
+                                               </object>
+                                       </object>
+                                       <object class="NSMenuItem" id="799166226">
+                                               <reference key="NSMenu" ref="45111635"/>
+                                               <string key="NSTitle">File</string>
+                                               <string key="NSKeyEquiv"/>
+                                               <int key="NSKeyEquivModMask">1048576</int>
+                                               <int key="NSMnemonicLoc">2147483647</int>
+                                               <reference key="NSOnImage" ref="301225830"/>
+                                               <reference key="NSMixedImage" ref="862154113"/>
+                                               <string key="NSAction">submenuAction:</string>
+                                               <object class="NSMenu" key="NSSubmenu" id="811240304">
+                                                       <object class="NSMutableString" key="NSTitle">
+                                                               <characters key="NS.bytes">File</characters>
+                                                       </object>
+                                                       <array class="NSMutableArray" key="NSMenuItems">
+                                                               <object class="NSMenuItem" id="222387297">
+                                                                       <reference key="NSMenu" ref="811240304"/>
+                                                                       <string key="NSTitle">Close</string>
+                                                                       <string key="NSKeyEquiv">w</string>
+                                                                       <int key="NSKeyEquivModMask">1048576</int>
+                                                                       <int key="NSMnemonicLoc">2147483647</int>
+                                                                       <reference key="NSOnImage" ref="301225830"/>
+                                                                       <reference key="NSMixedImage" ref="862154113"/>
+                                                               </object>
+                                                               <object class="NSMenuItem" id="608174085">
+                                                                       <reference key="NSMenu" ref="811240304"/>
+                                                                       <bool key="NSIsDisabled">YES</bool>
+                                                                       <bool key="NSIsSeparator">YES</bool>
+                                                                       <string key="NSTitle"/>
+                                                                       <string key="NSKeyEquiv"/>
+                                                                       <int key="NSKeyEquivModMask">1048576</int>
+                                                                       <int key="NSMnemonicLoc">2147483647</int>
+                                                                       <reference key="NSOnImage" ref="301225830"/>
+                                                                       <reference key="NSMixedImage" ref="862154113"/>
+                                                               </object>
+                                                               <object class="NSMenuItem" id="876081012">
+                                                                       <reference key="NSMenu" ref="811240304"/>
+                                                                       <string key="NSTitle">Page Setup…</string>
+                                                                       <string key="NSKeyEquiv">P</string>
+                                                                       <int key="NSKeyEquivModMask">1048576</int>
+                                                                       <int key="NSMnemonicLoc">2147483647</int>
+                                                                       <reference key="NSOnImage" ref="301225830"/>
+                                                                       <reference key="NSMixedImage" ref="862154113"/>
+                                                               </object>
+                                                               <object class="NSMenuItem" id="926886853">
+                                                                       <reference key="NSMenu" ref="811240304"/>
+                                                                       <string key="NSTitle">Print…</string>
+                                                                       <string key="NSKeyEquiv">p</string>
+                                                                       <int key="NSKeyEquivModMask">1048576</int>
+                                                                       <int key="NSMnemonicLoc">2147483647</int>
+                                                                       <reference key="NSOnImage" ref="301225830"/>
+                                                                       <reference key="NSMixedImage" ref="862154113"/>
+                                                               </object>
+                                                       </array>
+                                               </object>
+                                       </object>
+                                       <object class="NSMenuItem" id="455143041">
+                                               <reference key="NSMenu" ref="45111635"/>
+                                               <string key="NSTitle">Edit</string>
+                                               <string key="NSKeyEquiv"/>
+                                               <int key="NSKeyEquivModMask">1048576</int>
+                                               <int key="NSMnemonicLoc">2147483647</int>
+                                               <reference key="NSOnImage" ref="301225830"/>
+                                               <reference key="NSMixedImage" ref="862154113"/>
+                                               <string key="NSAction">submenuAction:</string>
+                                               <object class="NSMenu" key="NSSubmenu" id="750267634">
+                                                       <object class="NSMutableString" key="NSTitle">
+                                                               <characters key="NS.bytes">Edit</characters>
+                                                       </object>
+                                                       <array class="NSMutableArray" key="NSMenuItems">
+                                                               <object class="NSMenuItem" id="497437714">
+                                                                       <reference key="NSMenu" ref="750267634"/>
+                                                                       <string key="NSTitle">Undo</string>
+                                                                       <string key="NSKeyEquiv">z</string>
+                                                                       <int key="NSKeyEquivModMask">1048576</int>
+                                                                       <int key="NSMnemonicLoc">2147483647</int>
+                                                                       <reference key="NSOnImage" ref="301225830"/>
+                                                                       <reference key="NSMixedImage" ref="862154113"/>
+                                                               </object>
+                                                               <object class="NSMenuItem" id="216516037">
+                                                                       <reference key="NSMenu" ref="750267634"/>
+                                                                       <string key="NSTitle">Redo</string>
+                                                                       <string key="NSKeyEquiv">Z</string>
+                                                                       <int key="NSKeyEquivModMask">1048576</int>
+                                                                       <int key="NSMnemonicLoc">2147483647</int>
+                                                                       <reference key="NSOnImage" ref="301225830"/>
+                                                                       <reference key="NSMixedImage" ref="862154113"/>
+                                                               </object>
+                                                               <object class="NSMenuItem" id="50949474">
+                                                                       <reference key="NSMenu" ref="750267634"/>
+                                                                       <bool key="NSIsDisabled">YES</bool>
+                                                                       <bool key="NSIsSeparator">YES</bool>
+                                                                       <string key="NSTitle"/>
+                                                                       <string key="NSKeyEquiv"/>
+                                                                       <int key="NSKeyEquivModMask">1048576</int>
+                                                                       <int key="NSMnemonicLoc">2147483647</int>
+                                                                       <reference key="NSOnImage" ref="301225830"/>
+                                                                       <reference key="NSMixedImage" ref="862154113"/>
+                                                               </object>
+                                                               <object class="NSMenuItem" id="734088368">
+                                                                       <reference key="NSMenu" ref="750267634"/>
+                                                                       <string key="NSTitle">Cut</string>
+                                                                       <string key="NSKeyEquiv">x</string>
+                                                                       <int key="NSKeyEquivModMask">1048576</int>
+                                                                       <int key="NSMnemonicLoc">2147483647</int>
+                                                                       <reference key="NSOnImage" ref="301225830"/>
+                                                                       <reference key="NSMixedImage" ref="862154113"/>
+                                                               </object>
+                                                               <object class="NSMenuItem" id="56237994">
+                                                                       <reference key="NSMenu" ref="750267634"/>
+                                                                       <string key="NSTitle">Copy</string>
+                                                                       <string key="NSKeyEquiv">c</string>
+                                                                       <int key="NSKeyEquivModMask">1048576</int>
+                                                                       <int key="NSMnemonicLoc">2147483647</int>
+                                                                       <reference key="NSOnImage" ref="301225830"/>
+                                                                       <reference key="NSMixedImage" ref="862154113"/>
+                                                               </object>
+                                                               <object class="NSMenuItem" id="838407332">
+                                                                       <reference key="NSMenu" ref="750267634"/>
+                                                                       <string key="NSTitle">Paste</string>
+                                                                       <string key="NSKeyEquiv">v</string>
+                                                                       <int key="NSKeyEquivModMask">1048576</int>
+                                                                       <int key="NSMnemonicLoc">2147483647</int>
+                                                                       <reference key="NSOnImage" ref="301225830"/>
+                                                                       <reference key="NSMixedImage" ref="862154113"/>
+                                                               </object>
+                                                               <object class="NSMenuItem" id="285560595">
+                                                                       <reference key="NSMenu" ref="750267634"/>
+                                                                       <string key="NSTitle">Paste and Match Style</string>
+                                                                       <string key="NSKeyEquiv">V</string>
+                                                                       <int key="NSKeyEquivModMask">1572864</int>
+                                                                       <int key="NSMnemonicLoc">2147483647</int>
+                                                                       <reference key="NSOnImage" ref="301225830"/>
+                                                                       <reference key="NSMixedImage" ref="862154113"/>
+                                                               </object>
+                                                               <object class="NSMenuItem" id="406944349">
+                                                                       <reference key="NSMenu" ref="750267634"/>
+                                                                       <string key="NSTitle">Delete</string>
+                                                                       <string key="NSKeyEquiv"/>
+                                                                       <int key="NSKeyEquivModMask">1048576</int>
+                                                                       <int key="NSMnemonicLoc">2147483647</int>
+                                                                       <reference key="NSOnImage" ref="301225830"/>
+                                                                       <reference key="NSMixedImage" ref="862154113"/>
+                                                               </object>
+                                                               <object class="NSMenuItem" id="24225155">
+                                                                       <reference key="NSMenu" ref="750267634"/>
+                                                                       <string key="NSTitle">Select All</string>
+                                                                       <string key="NSKeyEquiv">a</string>
+                                                                       <int key="NSKeyEquivModMask">1048576</int>
+                                                                       <int key="NSMnemonicLoc">2147483647</int>
+                                                                       <reference key="NSOnImage" ref="301225830"/>
+                                                                       <reference key="NSMixedImage" ref="862154113"/>
+                                                               </object>
+                                                               <object class="NSMenuItem" id="785449747">
+                                                                       <reference key="NSMenu" ref="750267634"/>
+                                                                       <bool key="NSIsDisabled">YES</bool>
+                                                                       <bool key="NSIsSeparator">YES</bool>
+                                                                       <string key="NSTitle"/>
+                                                                       <string key="NSKeyEquiv"/>
+                                                                       <int key="NSKeyEquivModMask">1048576</int>
+                                                                       <int key="NSMnemonicLoc">2147483647</int>
+                                                                       <reference key="NSOnImage" ref="301225830"/>
+                                                                       <reference key="NSMixedImage" ref="862154113"/>
+                                                               </object>
+                                                               <object class="NSMenuItem" id="18140746">
+                                                                       <reference key="NSMenu" ref="750267634"/>
+                                                                       <string key="NSTitle">Find</string>
+                                                                       <string key="NSKeyEquiv"/>
+                                                                       <int key="NSKeyEquivModMask">1048576</int>
+                                                                       <int key="NSMnemonicLoc">2147483647</int>
+                                                                       <reference key="NSOnImage" ref="301225830"/>
+                                                                       <reference key="NSMixedImage" ref="862154113"/>
+                                                                       <string key="NSAction">submenuAction:</string>
+                                                                       <object class="NSMenu" key="NSSubmenu" id="830368365">
+                                                                               <object class="NSMutableString" key="NSTitle">
+                                                                                       <characters key="NS.bytes">Find</characters>
+                                                                               </object>
+                                                                               <array class="NSMutableArray" key="NSMenuItems">
+                                                                                       <object class="NSMenuItem" id="10797587">
+                                                                                               <reference key="NSMenu" ref="830368365"/>
+                                                                                               <string key="NSTitle">Find…</string>
+                                                                                               <string key="NSKeyEquiv">f</string>
+                                                                                               <int key="NSKeyEquivModMask">1048576</int>
+                                                                                               <int key="NSMnemonicLoc">2147483647</int>
+                                                                                               <reference key="NSOnImage" ref="301225830"/>
+                                                                                               <reference key="NSMixedImage" ref="862154113"/>
+                                                                                               <int key="NSTag">1</int>
+                                                                                       </object>
+                                                                                       <object class="NSMenuItem" id="144442828">
+                                                                                               <reference key="NSMenu" ref="830368365"/>
+                                                                                               <string key="NSTitle">Find Next</string>
+                                                                                               <string key="NSKeyEquiv">g</string>
+                                                                                               <int key="NSKeyEquivModMask">1048576</int>
+                                                                                               <int key="NSMnemonicLoc">2147483647</int>
+                                                                                               <reference key="NSOnImage" ref="301225830"/>
+                                                                                               <reference key="NSMixedImage" ref="862154113"/>
+                                                                                               <int key="NSTag">2</int>
+                                                                                       </object>
+                                                                                       <object class="NSMenuItem" id="208214618">
+                                                                                               <reference key="NSMenu" ref="830368365"/>
+                                                                                               <string key="NSTitle">Find Previous</string>
+                                                                                               <string key="NSKeyEquiv">G</string>
+                                                                                               <int key="NSKeyEquivModMask">1048576</int>
+                                                                                               <int key="NSMnemonicLoc">2147483647</int>
+                                                                                               <reference key="NSOnImage" ref="301225830"/>
+                                                                                               <reference key="NSMixedImage" ref="862154113"/>
+                                                                                               <int key="NSTag">3</int>
+                                                                                       </object>
+                                                                                       <object class="NSMenuItem" id="841162955">
+                                                                                               <reference key="NSMenu" ref="830368365"/>
+                                                                                               <string key="NSTitle">Use Selection for Find</string>
+                                                                                               <string key="NSKeyEquiv">e</string>
+                                                                                               <int key="NSKeyEquivModMask">1048576</int>
+                                                                                               <int key="NSMnemonicLoc">2147483647</int>
+                                                                                               <reference key="NSOnImage" ref="301225830"/>
+                                                                                               <reference key="NSMixedImage" ref="862154113"/>
+                                                                                               <int key="NSTag">7</int>
+                                                                                       </object>
+                                                                                       <object class="NSMenuItem" id="912738317">
+                                                                                               <reference key="NSMenu" ref="830368365"/>
+                                                                                               <string key="NSTitle">Jump to Selection</string>
+                                                                                               <string key="NSKeyEquiv">j</string>
+                                                                                               <int key="NSKeyEquivModMask">1048576</int>
+                                                                                               <int key="NSMnemonicLoc">2147483647</int>
+                                                                                               <reference key="NSOnImage" ref="301225830"/>
+                                                                                               <reference key="NSMixedImage" ref="862154113"/>
+                                                                                       </object>
+                                                                               </array>
+                                                                       </object>
+                                                               </object>
+                                                               <object class="NSMenuItem" id="883299468">
+                                                                       <reference key="NSMenu" ref="750267634"/>
+                                                                       <string key="NSTitle">Spelling</string>
+                                                                       <string key="NSKeyEquiv"/>
+                                                                       <int key="NSKeyEquivModMask">1048576</int>
+                                                                       <int key="NSMnemonicLoc">2147483647</int>
+                                                                       <reference key="NSOnImage" ref="301225830"/>
+                                                                       <reference key="NSMixedImage" ref="862154113"/>
+                                                                       <string key="NSAction">submenuAction:</string>
+                                                                       <object class="NSMenu" key="NSSubmenu" id="768298486">
+                                                                               <string key="NSTitle">Spelling</string>
+                                                                               <array class="NSMutableArray" key="NSMenuItems">
+                                                                                       <object class="NSMenuItem" id="177276662">
+                                                                                               <reference key="NSMenu" ref="768298486"/>
+                                                                                               <string key="NSTitle">Spelling…</string>
+                                                                                               <string key="NSKeyEquiv">:</string>
+                                                                                               <int key="NSKeyEquivModMask">1048576</int>
+                                                                                               <int key="NSMnemonicLoc">2147483647</int>
+                                                                                               <reference key="NSOnImage" ref="301225830"/>
+                                                                                               <reference key="NSMixedImage" ref="862154113"/>
+                                                                                       </object>
+                                                                                       <object class="NSMenuItem" id="832350994">
+                                                                                               <reference key="NSMenu" ref="768298486"/>
+                                                                                               <string key="NSTitle">Check Spelling</string>
+                                                                                               <string key="NSKeyEquiv">;</string>
+                                                                                               <int key="NSKeyEquivModMask">1048576</int>
+                                                                                               <int key="NSMnemonicLoc">2147483647</int>
+                                                                                               <reference key="NSOnImage" ref="301225830"/>
+                                                                                               <reference key="NSMixedImage" ref="862154113"/>
+                                                                                       </object>
+                                                                                       <object class="NSMenuItem" id="230465977">
+                                                                                               <reference key="NSMenu" ref="768298486"/>
+                                                                                               <string key="NSTitle">Check Spelling as You Type</string>
+                                                                                               <string key="NSKeyEquiv"/>
+                                                                                               <int key="NSKeyEquivModMask">1048576</int>
+                                                                                               <int key="NSMnemonicLoc">2147483647</int>
+                                                                                               <reference key="NSOnImage" ref="301225830"/>
+                                                                                               <reference key="NSMixedImage" ref="862154113"/>
+                                                                                       </object>
+                                                                               </array>
+                                                                       </object>
+                                                               </object>
+                                                       </array>
+                                               </object>
+                                       </object>
+                                       <object class="NSMenuItem" id="224272834">
+                                               <reference key="NSMenu" ref="45111635"/>
+                                               <string key="NSTitle">Window</string>
+                                               <string key="NSKeyEquiv"/>
+                                               <int key="NSKeyEquivModMask">1048576</int>
+                                               <int key="NSMnemonicLoc">2147483647</int>
+                                               <reference key="NSOnImage" ref="301225830"/>
+                                               <reference key="NSMixedImage" ref="862154113"/>
+                                               <string key="NSAction">submenuAction:</string>
+                                               <object class="NSMenu" key="NSSubmenu" id="77346976">
+                                                       <object class="NSMutableString" key="NSTitle">
+                                                               <characters key="NS.bytes">Window</characters>
+                                                       </object>
+                                                       <array class="NSMutableArray" key="NSMenuItems">
+                                                               <object class="NSMenuItem" id="711269442">
+                                                                       <reference key="NSMenu" ref="77346976"/>
+                                                                       <string key="NSTitle">Minimize</string>
+                                                                       <string key="NSKeyEquiv">m</string>
+                                                                       <int key="NSKeyEquivModMask">1048576</int>
+                                                                       <int key="NSMnemonicLoc">2147483647</int>
+                                                                       <reference key="NSOnImage" ref="301225830"/>
+                                                                       <reference key="NSMixedImage" ref="862154113"/>
+                                                               </object>
+                                                               <object class="NSMenuItem" id="531690807">
+                                                                       <reference key="NSMenu" ref="77346976"/>
+                                                                       <string key="NSTitle">Zoom</string>
+                                                                       <string key="NSKeyEquiv"/>
+                                                                       <int key="NSKeyEquivModMask">1048576</int>
+                                                                       <int key="NSMnemonicLoc">2147483647</int>
+                                                                       <reference key="NSOnImage" ref="301225830"/>
+                                                                       <reference key="NSMixedImage" ref="862154113"/>
+                                                               </object>
+                                                               <object class="NSMenuItem" id="229796363">
+                                                                       <reference key="NSMenu" ref="77346976"/>
+                                                                       <bool key="NSIsDisabled">YES</bool>
+                                                                       <bool key="NSIsSeparator">YES</bool>
+                                                                       <string key="NSTitle"/>
+                                                                       <string key="NSKeyEquiv"/>
+                                                                       <int key="NSKeyEquivModMask">1048576</int>
+                                                                       <int key="NSMnemonicLoc">2147483647</int>
+                                                                       <reference key="NSOnImage" ref="301225830"/>
+                                                                       <reference key="NSMixedImage" ref="862154113"/>
+                                                               </object>
+                                                               <object class="NSMenuItem" id="691026595">
+                                                                       <reference key="NSMenu" ref="77346976"/>
+                                                                       <string key="NSTitle">Bring All to Front</string>
+                                                                       <string key="NSKeyEquiv"/>
+                                                                       <int key="NSKeyEquivModMask">1048576</int>
+                                                                       <int key="NSMnemonicLoc">2147483647</int>
+                                                                       <reference key="NSOnImage" ref="301225830"/>
+                                                                       <reference key="NSMixedImage" ref="862154113"/>
+                                                               </object>
+                                                       </array>
+                                                       <string key="NSName">_NSWindowsMenu</string>
+                                               </object>
+                                       </object>
+                                       <object class="NSMenuItem" id="372969117">
+                                               <reference key="NSMenu" ref="45111635"/>
+                                               <string key="NSTitle">Help</string>
+                                               <string key="NSKeyEquiv"/>
+                                               <int key="NSKeyEquivModMask">1048576</int>
+                                               <int key="NSMnemonicLoc">2147483647</int>
+                                               <reference key="NSOnImage" ref="301225830"/>
+                                               <reference key="NSMixedImage" ref="862154113"/>
+                                               <string key="NSAction">submenuAction:</string>
+                                               <object class="NSMenu" key="NSSubmenu" id="839568932">
+                                                       <string key="NSTitle">Help</string>
+                                                       <array class="NSMutableArray" key="NSMenuItems">
+                                                               <object class="NSMenuItem" id="148697282">
+                                                                       <reference key="NSMenu" ref="839568932"/>
+                                                                       <bool key="NSIsDisabled">YES</bool>
+                                                                       <string key="NSTitle">XScreenSaver Help</string>
+                                                                       <string key="NSKeyEquiv">?</string>
+                                                                       <int key="NSKeyEquivModMask">1048576</int>
+                                                                       <int key="NSMnemonicLoc">2147483647</int>
+                                                                       <reference key="NSOnImage" ref="301225830"/>
+                                                                       <reference key="NSMixedImage" ref="862154113"/>
+                                                               </object>
+                                                       </array>
+                                               </object>
+                                       </object>
+                               </array>
+                               <string key="NSName">_NSMainMenu</string>
+                       </object>
+                       <object class="NSCustomObject" id="606990062">
+                               <string key="NSClassName">SaverRunner</string>
+                       </object>
+               </array>
+               <object class="IBObjectContainer" key="IBDocument.Objects">
+                       <array class="NSMutableArray" key="connectionRecords">
+                               <object class="IBConnectionRecord">
+                                       <object class="IBActionConnection" key="connection">
+                                               <string key="label">performMiniaturize:</string>
+                                               <reference key="source" ref="998231172"/>
+                                               <reference key="destination" ref="711269442"/>
+                                       </object>
+                                       <int key="connectionID">37</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBActionConnection" key="connection">
+                                               <string key="label">arrangeInFront:</string>
+                                               <reference key="source" ref="998231172"/>
+                                               <reference key="destination" ref="691026595"/>
+                                       </object>
+                                       <int key="connectionID">39</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBActionConnection" key="connection">
+                                               <string key="label">print:</string>
+                                               <reference key="source" ref="998231172"/>
+                                               <reference key="destination" ref="926886853"/>
+                                       </object>
+                                       <int key="connectionID">86</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBActionConnection" key="connection">
+                                               <string key="label">runPageLayout:</string>
+                                               <reference key="source" ref="998231172"/>
+                                               <reference key="destination" ref="876081012"/>
+                                       </object>
+                                       <int key="connectionID">87</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBActionConnection" key="connection">
+                                               <string key="label">showHelp:</string>
+                                               <reference key="source" ref="998231172"/>
+                                               <reference key="destination" ref="148697282"/>
+                                       </object>
+                                       <int key="connectionID">122</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBActionConnection" key="connection">
+                                               <string key="label">terminate:</string>
+                                               <reference key="source" ref="838516170"/>
+                                               <reference key="destination" ref="504373960"/>
+                                       </object>
+                                       <int key="connectionID">139</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBActionConnection" key="connection">
+                                               <string key="label">hideOtherApplications:</string>
+                                               <reference key="source" ref="838516170"/>
+                                               <reference key="destination" ref="468461345"/>
+                                       </object>
+                                       <int key="connectionID">146</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBActionConnection" key="connection">
+                                               <string key="label">hide:</string>
+                                               <reference key="source" ref="838516170"/>
+                                               <reference key="destination" ref="632798708"/>
+                                       </object>
+                                       <int key="connectionID">152</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBActionConnection" key="connection">
+                                               <string key="label">unhideAllApplications:</string>
+                                               <reference key="source" ref="838516170"/>
+                                               <reference key="destination" ref="437251807"/>
+                                       </object>
+                                       <int key="connectionID">153</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBActionConnection" key="connection">
+                                               <string key="label">cut:</string>
+                                               <reference key="source" ref="998231172"/>
+                                               <reference key="destination" ref="734088368"/>
+                                       </object>
+                                       <int key="connectionID">175</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBActionConnection" key="connection">
+                                               <string key="label">paste:</string>
+                                               <reference key="source" ref="998231172"/>
+                                               <reference key="destination" ref="838407332"/>
+                                       </object>
+                                       <int key="connectionID">176</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBActionConnection" key="connection">
+                                               <string key="label">redo:</string>
+                                               <reference key="source" ref="998231172"/>
+                                               <reference key="destination" ref="216516037"/>
+                                       </object>
+                                       <int key="connectionID">178</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBActionConnection" key="connection">
+                                               <string key="label">selectAll:</string>
+                                               <reference key="source" ref="998231172"/>
+                                               <reference key="destination" ref="24225155"/>
+                                       </object>
+                                       <int key="connectionID">179</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBActionConnection" key="connection">
+                                               <string key="label">undo:</string>
+                                               <reference key="source" ref="998231172"/>
+                                               <reference key="destination" ref="497437714"/>
+                                       </object>
+                                       <int key="connectionID">180</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBActionConnection" key="connection">
+                                               <string key="label">copy:</string>
+                                               <reference key="source" ref="998231172"/>
+                                               <reference key="destination" ref="56237994"/>
+                                       </object>
+                                       <int key="connectionID">181</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBActionConnection" key="connection">
+                                               <string key="label">showGuessPanel:</string>
+                                               <reference key="source" ref="998231172"/>
+                                               <reference key="destination" ref="177276662"/>
+                                       </object>
+                                       <int key="connectionID">188</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBActionConnection" key="connection">
+                                               <string key="label">checkSpelling:</string>
+                                               <reference key="source" ref="998231172"/>
+                                               <reference key="destination" ref="832350994"/>
+                                       </object>
+                                       <int key="connectionID">190</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBActionConnection" key="connection">
+                                               <string key="label">toggleContinuousSpellChecking:</string>
+                                               <reference key="source" ref="998231172"/>
+                                               <reference key="destination" ref="230465977"/>
+                                       </object>
+                                       <int key="connectionID">192</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBActionConnection" key="connection">
+                                               <string key="label">performClose:</string>
+                                               <reference key="source" ref="998231172"/>
+                                               <reference key="destination" ref="222387297"/>
+                                       </object>
+                                       <int key="connectionID">193</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBActionConnection" key="connection">
+                                               <string key="label">delete:</string>
+                                               <reference key="source" ref="998231172"/>
+                                               <reference key="destination" ref="406944349"/>
+                                       </object>
+                                       <int key="connectionID">195</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBActionConnection" key="connection">
+                                               <string key="label">performZoom:</string>
+                                               <reference key="source" ref="998231172"/>
+                                               <reference key="destination" ref="531690807"/>
+                                       </object>
+                                       <int key="connectionID">198</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBActionConnection" key="connection">
+                                               <string key="label">performFindPanelAction:</string>
+                                               <reference key="source" ref="998231172"/>
+                                               <reference key="destination" ref="10797587"/>
+                                       </object>
+                                       <int key="connectionID">199</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBActionConnection" key="connection">
+                                               <string key="label">performFindPanelAction:</string>
+                                               <reference key="source" ref="998231172"/>
+                                               <reference key="destination" ref="144442828"/>
+                                       </object>
+                                       <int key="connectionID">200</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBActionConnection" key="connection">
+                                               <string key="label">performFindPanelAction:</string>
+                                               <reference key="source" ref="998231172"/>
+                                               <reference key="destination" ref="208214618"/>
+                                       </object>
+                                       <int key="connectionID">201</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBActionConnection" key="connection">
+                                               <string key="label">performFindPanelAction:</string>
+                                               <reference key="source" ref="998231172"/>
+                                               <reference key="destination" ref="841162955"/>
+                                       </object>
+                                       <int key="connectionID">202</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBActionConnection" key="connection">
+                                               <string key="label">centerSelectionInVisibleArea:</string>
+                                               <reference key="source" ref="998231172"/>
+                                               <reference key="destination" ref="912738317"/>
+                                       </object>
+                                       <int key="connectionID">203</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBActionConnection" key="connection">
+                                               <string key="label">pasteAsPlainText:</string>
+                                               <reference key="source" ref="998231172"/>
+                                               <reference key="destination" ref="285560595"/>
+                                       </object>
+                                       <int key="connectionID">205</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBOutletConnection" key="connection">
+                                               <string key="label">delegate</string>
+                                               <reference key="source" ref="838516170"/>
+                                               <reference key="destination" ref="606990062"/>
+                                       </object>
+                                       <int key="connectionID">207</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBOutletConnection" key="connection">
+                                               <string key="label">menubar</string>
+                                               <reference key="source" ref="606990062"/>
+                                               <reference key="destination" ref="45111635"/>
+                                       </object>
+                                       <int key="connectionID">209</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBActionConnection" key="connection">
+                                               <string key="label">openPreferences:</string>
+                                               <reference key="source" ref="606990062"/>
+                                               <reference key="destination" ref="381880730"/>
+                                       </object>
+                                       <int key="connectionID">212</int>
+                               </object>
+                               <object class="IBConnectionRecord">
+                                       <object class="IBActionConnection" key="connection">
+                                               <string key="label">aboutPanel:</string>
+                                               <reference key="source" ref="606990062"/>
+                                               <reference key="destination" ref="8914611"/>
+                                       </object>
+                                       <int key="connectionID">213</int>
+                               </object>
+                       </array>
+                       <object class="IBMutableOrderedSet" key="objectRecords">
+                               <array key="orderedObjects">
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">0</int>
+                                               <array key="object" id="0"/>
+                                               <reference key="children" ref="837227664"/>
+                                               <nil key="parent"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">-2</int>
+                                               <reference key="object" ref="838516170"/>
+                                               <reference key="parent" ref="0"/>
+                                               <string key="objectName">File's Owner</string>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">-1</int>
+                                               <reference key="object" ref="998231172"/>
+                                               <reference key="parent" ref="0"/>
+                                               <string key="objectName">First Responder</string>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">-3</int>
+                                               <reference key="object" ref="996827039"/>
+                                               <reference key="parent" ref="0"/>
+                                               <string key="objectName">Application</string>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">29</int>
+                                               <reference key="object" ref="45111635"/>
+                                               <array class="NSMutableArray" key="children">
+                                                       <reference ref="224272834"/>
+                                                       <reference ref="690370694"/>
+                                                       <reference ref="799166226"/>
+                                                       <reference ref="372969117"/>
+                                                       <reference ref="455143041"/>
+                                               </array>
+                                               <reference key="parent" ref="0"/>
+                                               <string key="objectName">MainMenu</string>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">19</int>
+                                               <reference key="object" ref="224272834"/>
+                                               <array class="NSMutableArray" key="children">
+                                                       <reference ref="77346976"/>
+                                               </array>
+                                               <reference key="parent" ref="45111635"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">24</int>
+                                               <reference key="object" ref="77346976"/>
+                                               <array class="NSMutableArray" key="children">
+                                                       <reference ref="691026595"/>
+                                                       <reference ref="711269442"/>
+                                                       <reference ref="229796363"/>
+                                                       <reference ref="531690807"/>
+                                               </array>
+                                               <reference key="parent" ref="224272834"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">5</int>
+                                               <reference key="object" ref="691026595"/>
+                                               <reference key="parent" ref="77346976"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">23</int>
+                                               <reference key="object" ref="711269442"/>
+                                               <reference key="parent" ref="77346976"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">92</int>
+                                               <reference key="object" ref="229796363"/>
+                                               <reference key="parent" ref="77346976"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">197</int>
+                                               <reference key="object" ref="531690807"/>
+                                               <reference key="parent" ref="77346976"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">56</int>
+                                               <reference key="object" ref="690370694"/>
+                                               <array class="NSMutableArray" key="children">
+                                                       <reference ref="648337178"/>
+                                               </array>
+                                               <reference key="parent" ref="45111635"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">57</int>
+                                               <reference key="object" ref="648337178"/>
+                                               <array class="NSMutableArray" key="children">
+                                                       <reference ref="8914611"/>
+                                                       <reference ref="381880730"/>
+                                                       <reference ref="923603386"/>
+                                                       <reference ref="632798708"/>
+                                                       <reference ref="504373960"/>
+                                                       <reference ref="862592074"/>
+                                                       <reference ref="819131537"/>
+                                                       <reference ref="468461345"/>
+                                                       <reference ref="583949930"/>
+                                                       <reference ref="437251807"/>
+                                                       <reference ref="627255583"/>
+                                               </array>
+                                               <reference key="parent" ref="690370694"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">58</int>
+                                               <reference key="object" ref="8914611"/>
+                                               <reference key="parent" ref="648337178"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">129</int>
+                                               <reference key="object" ref="381880730"/>
+                                               <reference key="parent" ref="648337178"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">131</int>
+                                               <reference key="object" ref="923603386"/>
+                                               <array class="NSMutableArray" key="children">
+                                                       <reference ref="1035646574"/>
+                                               </array>
+                                               <reference key="parent" ref="648337178"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">130</int>
+                                               <reference key="object" ref="1035646574"/>
+                                               <reference key="parent" ref="923603386"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">134</int>
+                                               <reference key="object" ref="632798708"/>
+                                               <reference key="parent" ref="648337178"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">136</int>
+                                               <reference key="object" ref="504373960"/>
+                                               <reference key="parent" ref="648337178"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">143</int>
+                                               <reference key="object" ref="862592074"/>
+                                               <reference key="parent" ref="648337178"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">144</int>
+                                               <reference key="object" ref="819131537"/>
+                                               <reference key="parent" ref="648337178"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">145</int>
+                                               <reference key="object" ref="468461345"/>
+                                               <reference key="parent" ref="648337178"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">149</int>
+                                               <reference key="object" ref="583949930"/>
+                                               <reference key="parent" ref="648337178"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">150</int>
+                                               <reference key="object" ref="437251807"/>
+                                               <reference key="parent" ref="648337178"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">196</int>
+                                               <reference key="object" ref="627255583"/>
+                                               <reference key="parent" ref="648337178"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">83</int>
+                                               <reference key="object" ref="799166226"/>
+                                               <array class="NSMutableArray" key="children">
+                                                       <reference ref="811240304"/>
+                                               </array>
+                                               <reference key="parent" ref="45111635"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">81</int>
+                                               <reference key="object" ref="811240304"/>
+                                               <array class="NSMutableArray" key="children">
+                                                       <reference ref="222387297"/>
+                                                       <reference ref="608174085"/>
+                                                       <reference ref="876081012"/>
+                                                       <reference ref="926886853"/>
+                                               </array>
+                                               <reference key="parent" ref="799166226"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">73</int>
+                                               <reference key="object" ref="222387297"/>
+                                               <reference key="parent" ref="811240304"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">74</int>
+                                               <reference key="object" ref="608174085"/>
+                                               <reference key="parent" ref="811240304"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">77</int>
+                                               <reference key="object" ref="876081012"/>
+                                               <reference key="parent" ref="811240304"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">78</int>
+                                               <reference key="object" ref="926886853"/>
+                                               <reference key="parent" ref="811240304"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">103</int>
+                                               <reference key="object" ref="372969117"/>
+                                               <array class="NSMutableArray" key="children">
+                                                       <reference ref="839568932"/>
+                                               </array>
+                                               <reference key="parent" ref="45111635"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">106</int>
+                                               <reference key="object" ref="839568932"/>
+                                               <array class="NSMutableArray" key="children">
+                                                       <reference ref="148697282"/>
+                                               </array>
+                                               <reference key="parent" ref="372969117"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">111</int>
+                                               <reference key="object" ref="148697282"/>
+                                               <reference key="parent" ref="839568932"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">163</int>
+                                               <reference key="object" ref="455143041"/>
+                                               <array class="NSMutableArray" key="children">
+                                                       <reference ref="750267634"/>
+                                               </array>
+                                               <reference key="parent" ref="45111635"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">169</int>
+                                               <reference key="object" ref="750267634"/>
+                                               <array class="NSMutableArray" key="children">
+                                                       <reference ref="50949474"/>
+                                                       <reference ref="56237994"/>
+                                                       <reference ref="497437714"/>
+                                                       <reference ref="734088368"/>
+                                                       <reference ref="406944349"/>
+                                                       <reference ref="18140746"/>
+                                                       <reference ref="838407332"/>
+                                                       <reference ref="24225155"/>
+                                                       <reference ref="216516037"/>
+                                                       <reference ref="785449747"/>
+                                                       <reference ref="883299468"/>
+                                                       <reference ref="285560595"/>
+                                               </array>
+                                               <reference key="parent" ref="455143041"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">156</int>
+                                               <reference key="object" ref="50949474"/>
+                                               <reference key="parent" ref="750267634"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">157</int>
+                                               <reference key="object" ref="56237994"/>
+                                               <reference key="parent" ref="750267634"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">158</int>
+                                               <reference key="object" ref="497437714"/>
+                                               <reference key="parent" ref="750267634"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">160</int>
+                                               <reference key="object" ref="734088368"/>
+                                               <reference key="parent" ref="750267634"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">164</int>
+                                               <reference key="object" ref="406944349"/>
+                                               <reference key="parent" ref="750267634"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">168</int>
+                                               <reference key="object" ref="18140746"/>
+                                               <array class="NSMutableArray" key="children">
+                                                       <reference ref="830368365"/>
+                                               </array>
+                                               <reference key="parent" ref="750267634"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">159</int>
+                                               <reference key="object" ref="830368365"/>
+                                               <array class="NSMutableArray" key="children">
+                                                       <reference ref="10797587"/>
+                                                       <reference ref="912738317"/>
+                                                       <reference ref="841162955"/>
+                                                       <reference ref="208214618"/>
+                                                       <reference ref="144442828"/>
+                                               </array>
+                                               <reference key="parent" ref="18140746"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">154</int>
+                                               <reference key="object" ref="10797587"/>
+                                               <reference key="parent" ref="830368365"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">155</int>
+                                               <reference key="object" ref="912738317"/>
+                                               <reference key="parent" ref="830368365"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">161</int>
+                                               <reference key="object" ref="841162955"/>
+                                               <reference key="parent" ref="830368365"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">162</int>
+                                               <reference key="object" ref="208214618"/>
+                                               <reference key="parent" ref="830368365"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">167</int>
+                                               <reference key="object" ref="144442828"/>
+                                               <reference key="parent" ref="830368365"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">171</int>
+                                               <reference key="object" ref="838407332"/>
+                                               <reference key="parent" ref="750267634"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">172</int>
+                                               <reference key="object" ref="24225155"/>
+                                               <reference key="parent" ref="750267634"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">173</int>
+                                               <reference key="object" ref="216516037"/>
+                                               <reference key="parent" ref="750267634"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">174</int>
+                                               <reference key="object" ref="785449747"/>
+                                               <reference key="parent" ref="750267634"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">184</int>
+                                               <reference key="object" ref="883299468"/>
+                                               <array class="NSMutableArray" key="children">
+                                                       <reference ref="768298486"/>
+                                               </array>
+                                               <reference key="parent" ref="750267634"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">185</int>
+                                               <reference key="object" ref="768298486"/>
+                                               <array class="NSMutableArray" key="children">
+                                                       <reference ref="177276662"/>
+                                                       <reference ref="832350994"/>
+                                                       <reference ref="230465977"/>
+                                               </array>
+                                               <reference key="parent" ref="883299468"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">187</int>
+                                               <reference key="object" ref="177276662"/>
+                                               <reference key="parent" ref="768298486"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">189</int>
+                                               <reference key="object" ref="832350994"/>
+                                               <reference key="parent" ref="768298486"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">191</int>
+                                               <reference key="object" ref="230465977"/>
+                                               <reference key="parent" ref="768298486"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">204</int>
+                                               <reference key="object" ref="285560595"/>
+                                               <reference key="parent" ref="750267634"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">206</int>
+                                               <reference key="object" ref="606990062"/>
+                                               <reference key="parent" ref="0"/>
+                                               <string key="objectName">SaverRunner</string>
+                                       </object>
+                               </array>
+                       </object>
+                       <dictionary class="NSMutableDictionary" key="flattenedProperties">
+                               <string key="-3.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+                               <boolean value="YES" key="-3.ImportedFromIB2"/>
+                               <string key="103.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+                               <boolean value="YES" key="103.ImportedFromIB2"/>
+                               <string key="106.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+                               <boolean value="YES" key="106.ImportedFromIB2"/>
+                               <string key="111.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+                               <boolean value="YES" key="111.ImportedFromIB2"/>
+                               <string key="129.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+                               <boolean value="YES" key="129.ImportedFromIB2"/>
+                               <string key="130.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+                               <boolean value="YES" key="130.ImportedFromIB2"/>
+                               <string key="131.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+                               <boolean value="YES" key="131.ImportedFromIB2"/>
+                               <string key="134.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+                               <boolean value="YES" key="134.ImportedFromIB2"/>
+                               <string key="136.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+                               <boolean value="YES" key="136.ImportedFromIB2"/>
+                               <string key="143.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+                               <boolean value="YES" key="143.ImportedFromIB2"/>
+                               <string key="144.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+                               <boolean value="YES" key="144.ImportedFromIB2"/>
+                               <string key="145.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+                               <boolean value="YES" key="145.ImportedFromIB2"/>
+                               <string key="149.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+                               <boolean value="YES" key="149.ImportedFromIB2"/>
+                               <string key="150.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+                               <boolean value="YES" key="150.ImportedFromIB2"/>
+                               <string key="154.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+                               <boolean value="YES" key="154.ImportedFromIB2"/>
+                               <string key="155.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+                               <boolean value="YES" key="155.ImportedFromIB2"/>
+                               <string key="156.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+                               <boolean value="YES" key="156.ImportedFromIB2"/>
+                               <string key="157.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+                               <boolean value="YES" key="157.ImportedFromIB2"/>
+                               <string key="158.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+                               <boolean value="YES" key="158.ImportedFromIB2"/>
+                               <string key="159.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+                               <boolean value="YES" key="159.ImportedFromIB2"/>
+                               <string key="160.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+                               <boolean value="YES" key="160.ImportedFromIB2"/>
+                               <string key="161.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+                               <boolean value="YES" key="161.ImportedFromIB2"/>
+                               <string key="162.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+                               <boolean value="YES" key="162.ImportedFromIB2"/>
+                               <string key="163.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+                               <boolean value="YES" key="163.ImportedFromIB2"/>
+                               <string key="164.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+                               <boolean value="YES" key="164.ImportedFromIB2"/>
+                               <string key="167.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+                               <boolean value="YES" key="167.ImportedFromIB2"/>
+                               <string key="168.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+                               <boolean value="YES" key="168.ImportedFromIB2"/>
+                               <string key="169.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+                               <boolean value="YES" key="169.ImportedFromIB2"/>
+                               <string key="171.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+                               <boolean value="YES" key="171.ImportedFromIB2"/>
+                               <string key="172.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+                               <boolean value="YES" key="172.ImportedFromIB2"/>
+                               <string key="173.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+                               <boolean value="YES" key="173.ImportedFromIB2"/>
+                               <string key="174.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+                               <boolean value="YES" key="174.ImportedFromIB2"/>
+                               <string key="184.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+                               <boolean value="YES" key="184.ImportedFromIB2"/>
+                               <string key="185.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+                               <boolean value="YES" key="185.ImportedFromIB2"/>
+                               <string key="187.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+                               <boolean value="YES" key="187.ImportedFromIB2"/>
+                               <string key="189.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+                               <boolean value="YES" key="189.ImportedFromIB2"/>
+                               <string key="19.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+                               <boolean value="YES" key="19.ImportedFromIB2"/>
+                               <string key="191.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+                               <boolean value="YES" key="191.ImportedFromIB2"/>
+                               <string key="196.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+                               <boolean value="YES" key="196.ImportedFromIB2"/>
+                               <string key="197.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+                               <boolean value="YES" key="197.ImportedFromIB2"/>
+                               <string key="204.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+                               <boolean value="YES" key="204.ImportedFromIB2"/>
+                               <boolean value="YES" key="206.ImportedFromIB2"/>
+                               <string key="23.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+                               <boolean value="YES" key="23.ImportedFromIB2"/>
+                               <string key="24.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+                               <boolean value="YES" key="24.ImportedFromIB2"/>
+                               <string key="29.IBEditorWindowLastContentRect">{{72, 1365}, {344, 20}}</string>
+                               <string key="29.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+                               <boolean value="YES" key="29.ImportedFromIB2"/>
+                               <string key="5.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+                               <boolean value="YES" key="5.ImportedFromIB2"/>
+                               <string key="56.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+                               <boolean value="YES" key="56.ImportedFromIB2"/>
+                               <string key="57.IBEditorWindowLastContentRect">{{84, 1182}, {225, 183}}</string>
+                               <string key="57.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+                               <boolean value="YES" key="57.ImportedFromIB2"/>
+                               <string key="58.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+                               <boolean value="YES" key="58.ImportedFromIB2"/>
+                               <string key="73.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+                               <boolean value="YES" key="73.ImportedFromIB2"/>
+                               <string key="74.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+                               <boolean value="YES" key="74.ImportedFromIB2"/>
+                               <string key="77.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+                               <boolean value="YES" key="77.ImportedFromIB2"/>
+                               <string key="78.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+                               <boolean value="YES" key="78.ImportedFromIB2"/>
+                               <string key="81.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+                               <boolean value="YES" key="81.ImportedFromIB2"/>
+                               <string key="83.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+                               <boolean value="YES" key="83.ImportedFromIB2"/>
+                               <string key="92.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
+                               <boolean value="YES" key="92.ImportedFromIB2"/>
+                       </dictionary>
+                       <dictionary class="NSMutableDictionary" key="unlocalizedProperties"/>
+                       <nil key="activeLocalization"/>
+                       <dictionary class="NSMutableDictionary" key="localizations"/>
+                       <nil key="sourceID"/>
+                       <int key="maxID">213</int>
+               </object>
+               <object class="IBClassDescriber" key="IBDocument.Classes">
+                       <array class="NSMutableArray" key="referencedPartialClassDescriptions">
+                               <object class="IBPartialClassDescription">
+                                       <string key="className">SaverRunner</string>
+                                       <string key="superclassName">NSObject</string>
+                                       <dictionary class="NSMutableDictionary" key="actions">
+                                               <string key="aboutPanel:">id</string>
+                                               <string key="openPreferences:">id</string>
+                                       </dictionary>
+                                       <dictionary class="NSMutableDictionary" key="actionInfosByName">
+                                               <object class="IBActionInfo" key="aboutPanel:">
+                                                       <string key="name">aboutPanel:</string>
+                                                       <string key="candidateClassName">id</string>
+                                               </object>
+                                               <object class="IBActionInfo" key="openPreferences:">
+                                                       <string key="name">openPreferences:</string>
+                                                       <string key="candidateClassName">id</string>
+                                               </object>
+                                       </dictionary>
+                                       <object class="NSMutableDictionary" key="outlets">
+                                               <string key="NS.key.0">menubar</string>
+                                               <string key="NS.object.0">NSMenu</string>
+                                       </object>
+                                       <object class="NSMutableDictionary" key="toOneOutletInfosByName">
+                                               <string key="NS.key.0">menubar</string>
+                                               <object class="IBToOneOutletInfo" key="NS.object.0">
+                                                       <string key="name">menubar</string>
+                                                       <string key="candidateClassName">NSMenu</string>
+                                               </object>
+                                       </object>
+                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
+                                               <string key="majorKey">IBProjectSource</string>
+                                               <string key="minorKey">OSX/SaverRunner.h</string>
+                                       </object>
+                               </object>
+                       </array>
+                       <array class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+">
+                               <object class="IBPartialClassDescription">
+                                       <string key="className">NSApplication</string>
+                                       <string key="superclassName">NSResponder</string>
+                                       <object class="IBClassDescriptionSource" key="sourceIdentifier" id="559430808">
+                                               <string key="majorKey">IBFrameworkSource</string>
+                                               <string key="minorKey">AppKit.framework/Headers/NSApplication.h</string>
+                                       </object>
+                               </object>
+                               <object class="IBPartialClassDescription">
+                                       <string key="className">NSApplication</string>
+                                       <object class="IBClassDescriptionSource" key="sourceIdentifier" id="632847653">
+                                               <string key="majorKey">IBFrameworkSource</string>
+                                               <string key="minorKey">AppKit.framework/Headers/NSApplicationScripting.h</string>
+                                       </object>
+                               </object>
+                               <object class="IBPartialClassDescription">
+                                       <string key="className">NSApplication</string>
+                                       <object class="IBClassDescriptionSource" key="sourceIdentifier" id="391792136">
+                                               <string key="majorKey">IBFrameworkSource</string>
+                                               <string key="minorKey">AppKit.framework/Headers/NSColorPanel.h</string>
+                                       </object>
+                               </object>
+                               <object class="IBPartialClassDescription">
+                                       <string key="className">NSApplication</string>
+                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
+                                               <string key="majorKey">IBFrameworkSource</string>
+                                               <string key="minorKey">AppKit.framework/Headers/NSHelpManager.h</string>
+                                       </object>
+                               </object>
+                               <object class="IBPartialClassDescription">
+                                       <string key="className">NSApplication</string>
+                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
+                                               <string key="majorKey">IBFrameworkSource</string>
+                                               <string key="minorKey">AppKit.framework/Headers/NSPageLayout.h</string>
+                                       </object>
+                               </object>
+                               <object class="IBPartialClassDescription">
+                                       <string key="className">NSBrowser</string>
+                                       <string key="superclassName">NSControl</string>
+                                       <object class="IBClassDescriptionSource" key="sourceIdentifier" id="988770048">
+                                               <string key="majorKey">IBFrameworkSource</string>
+                                               <string key="minorKey">AppKit.framework/Headers/NSBrowser.h</string>
+                                       </object>
+                               </object>
+                               <object class="IBPartialClassDescription">
+                                       <string key="className">NSControl</string>
+                                       <string key="superclassName">NSView</string>
+                                       <object class="IBClassDescriptionSource" key="sourceIdentifier" id="339469989">
+                                               <string key="majorKey">IBFrameworkSource</string>
+                                               <string key="minorKey">AppKit.framework/Headers/NSControl.h</string>
+                                       </object>
+                               </object>
+                               <object class="IBPartialClassDescription">
+                                       <string key="className">NSDocument</string>
+                                       <string key="superclassName">NSObject</string>
+                                       <dictionary class="NSMutableDictionary" key="actions">
+                                               <string key="printDocument:">id</string>
+                                               <string key="revertDocumentToSaved:">id</string>
+                                               <string key="runPageLayout:">id</string>
+                                               <string key="saveDocument:">id</string>
+                                               <string key="saveDocumentAs:">id</string>
+                                               <string key="saveDocumentTo:">id</string>
+                                       </dictionary>
+                                       <dictionary class="NSMutableDictionary" key="actionInfosByName">
+                                               <object class="IBActionInfo" key="printDocument:">
+                                                       <string key="name">printDocument:</string>
+                                                       <string key="candidateClassName">id</string>
+                                               </object>
+                                               <object class="IBActionInfo" key="revertDocumentToSaved:">
+                                                       <string key="name">revertDocumentToSaved:</string>
+                                                       <string key="candidateClassName">id</string>
+                                               </object>
+                                               <object class="IBActionInfo" key="runPageLayout:">
+                                                       <string key="name">runPageLayout:</string>
+                                                       <string key="candidateClassName">id</string>
+                                               </object>
+                                               <object class="IBActionInfo" key="saveDocument:">
+                                                       <string key="name">saveDocument:</string>
+                                                       <string key="candidateClassName">id</string>
+                                               </object>
+                                               <object class="IBActionInfo" key="saveDocumentAs:">
+                                                       <string key="name">saveDocumentAs:</string>
+                                                       <string key="candidateClassName">id</string>
+                                               </object>
+                                               <object class="IBActionInfo" key="saveDocumentTo:">
+                                                       <string key="name">saveDocumentTo:</string>
+                                                       <string key="candidateClassName">id</string>
+                                               </object>
+                                       </dictionary>
+                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
+                                               <string key="majorKey">IBFrameworkSource</string>
+                                               <string key="minorKey">AppKit.framework/Headers/NSDocument.h</string>
+                                       </object>
+                               </object>
+                               <object class="IBPartialClassDescription">
+                                       <string key="className">NSDocument</string>
+                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
+                                               <string key="majorKey">IBFrameworkSource</string>
+                                               <string key="minorKey">AppKit.framework/Headers/NSDocumentScripting.h</string>
+                                       </object>
+                               </object>
+                               <object class="IBPartialClassDescription">
+                                       <string key="className">NSMatrix</string>
+                                       <string key="superclassName">NSControl</string>
+                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
+                                               <string key="majorKey">IBFrameworkSource</string>
+                                               <string key="minorKey">AppKit.framework/Headers/NSMatrix.h</string>
+                                       </object>
+                               </object>
+                               <object class="IBPartialClassDescription">
+                                       <string key="className">NSMenu</string>
+                                       <string key="superclassName">NSObject</string>
+                                       <object class="IBClassDescriptionSource" key="sourceIdentifier" id="1054084886">
+                                               <string key="majorKey">IBFrameworkSource</string>
+                                               <string key="minorKey">AppKit.framework/Headers/NSMenu.h</string>
+                                       </object>
+                               </object>
+                               <object class="IBPartialClassDescription">
+                                       <string key="className">NSMenuItem</string>
+                                       <string key="superclassName">NSObject</string>
+                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
+                                               <string key="majorKey">IBFrameworkSource</string>
+                                               <string key="minorKey">AppKit.framework/Headers/NSMenuItem.h</string>
+                                       </object>
+                               </object>
+                               <object class="IBPartialClassDescription">
+                                       <string key="className">NSMovieView</string>
+                                       <string key="superclassName">NSView</string>
+                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
+                                               <string key="majorKey">IBFrameworkSource</string>
+                                               <string key="minorKey">AppKit.framework/Headers/NSMovieView.h</string>
+                                       </object>
+                               </object>
+                               <object class="IBPartialClassDescription">
+                                       <string key="className">NSObject</string>
+                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
+                                               <string key="majorKey">IBFrameworkSource</string>
+                                               <string key="minorKey">AppKit.framework/Headers/NSAccessibility.h</string>
+                                       </object>
+                               </object>
+                               <object class="IBPartialClassDescription">
+                                       <string key="className">NSObject</string>
+                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
+                                               <string key="majorKey">IBFrameworkSource</string>
+                                               <string key="minorKey">AppKit.framework/Headers/NSAlert.h</string>
+                                       </object>
+                               </object>
+                               <object class="IBPartialClassDescription">
+                                       <string key="className">NSObject</string>
+                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
+                                               <string key="majorKey">IBFrameworkSource</string>
+                                               <string key="minorKey">AppKit.framework/Headers/NSAnimation.h</string>
+                                       </object>
+                               </object>
+                               <object class="IBPartialClassDescription">
+                                       <string key="className">NSObject</string>
+                                       <reference key="sourceIdentifier" ref="559430808"/>
+                               </object>
+                               <object class="IBPartialClassDescription">
+                                       <string key="className">NSObject</string>
+                                       <reference key="sourceIdentifier" ref="632847653"/>
+                               </object>
+                               <object class="IBPartialClassDescription">
+                                       <string key="className">NSObject</string>
+                                       <reference key="sourceIdentifier" ref="988770048"/>
+                               </object>
+                               <object class="IBPartialClassDescription">
+                                       <string key="className">NSObject</string>
+                                       <reference key="sourceIdentifier" ref="391792136"/>
+                               </object>
+                               <object class="IBPartialClassDescription">
+                                       <string key="className">NSObject</string>
+                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
+                                               <string key="majorKey">IBFrameworkSource</string>
+                                               <string key="minorKey">AppKit.framework/Headers/NSComboBox.h</string>
+                                       </object>
+                               </object>
+                               <object class="IBPartialClassDescription">
+                                       <string key="className">NSObject</string>
+                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
+                                               <string key="majorKey">IBFrameworkSource</string>
+                                               <string key="minorKey">AppKit.framework/Headers/NSComboBoxCell.h</string>
+                                       </object>
+                               </object>
+                               <object class="IBPartialClassDescription">
+                                       <string key="className">NSObject</string>
+                                       <reference key="sourceIdentifier" ref="339469989"/>
+                               </object>
+                               <object class="IBPartialClassDescription">
+                                       <string key="className">NSObject</string>
+                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
+                                               <string key="majorKey">IBFrameworkSource</string>
+                                               <string key="minorKey">AppKit.framework/Headers/NSDatePickerCell.h</string>
+                                       </object>
+                               </object>
+                               <object class="IBPartialClassDescription">
+                                       <string key="className">NSObject</string>
+                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
+                                               <string key="majorKey">IBFrameworkSource</string>
+                                               <string key="minorKey">AppKit.framework/Headers/NSDragging.h</string>
+                                       </object>
+                               </object>
+                               <object class="IBPartialClassDescription">
+                                       <string key="className">NSObject</string>
+                                       <object class="IBClassDescriptionSource" key="sourceIdentifier" id="813110203">
+                                               <string key="majorKey">IBFrameworkSource</string>
+                                               <string key="minorKey">AppKit.framework/Headers/NSDrawer.h</string>
+                                       </object>
+                               </object>
+                               <object class="IBPartialClassDescription">
+                                       <string key="className">NSObject</string>
+                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
+                                               <string key="majorKey">IBFrameworkSource</string>
+                                               <string key="minorKey">AppKit.framework/Headers/NSFontManager.h</string>
+                                       </object>
+                               </object>
+                               <object class="IBPartialClassDescription">
+                                       <string key="className">NSObject</string>
+                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
+                                               <string key="majorKey">IBFrameworkSource</string>
+                                               <string key="minorKey">AppKit.framework/Headers/NSFontPanel.h</string>
+                                       </object>
+                               </object>
+                               <object class="IBPartialClassDescription">
+                                       <string key="className">NSObject</string>
+                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
+                                               <string key="majorKey">IBFrameworkSource</string>
+                                               <string key="minorKey">AppKit.framework/Headers/NSImage.h</string>
+                                       </object>
+                               </object>
+                               <object class="IBPartialClassDescription">
+                                       <string key="className">NSObject</string>
+                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
+                                               <string key="majorKey">IBFrameworkSource</string>
+                                               <string key="minorKey">AppKit.framework/Headers/NSKeyValueBinding.h</string>
+                                       </object>
+                               </object>
+                               <object class="IBPartialClassDescription">
+                                       <string key="className">NSObject</string>
+                                       <reference key="sourceIdentifier" ref="1054084886"/>
+                               </object>
+                               <object class="IBPartialClassDescription">
+                                       <string key="className">NSObject</string>
+                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
+                                               <string key="majorKey">IBFrameworkSource</string>
+                                               <string key="minorKey">AppKit.framework/Headers/NSNibLoading.h</string>
+                                       </object>
+                               </object>
+                               <object class="IBPartialClassDescription">
+                                       <string key="className">NSObject</string>
+                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
+                                               <string key="majorKey">IBFrameworkSource</string>
+                                               <string key="minorKey">AppKit.framework/Headers/NSOutlineView.h</string>
+                                       </object>
+                               </object>
+                               <object class="IBPartialClassDescription">
+                                       <string key="className">NSObject</string>
+                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
+                                               <string key="majorKey">IBFrameworkSource</string>
+                                               <string key="minorKey">AppKit.framework/Headers/NSPasteboard.h</string>
+                                       </object>
+                               </object>
+                               <object class="IBPartialClassDescription">
+                                       <string key="className">NSObject</string>
+                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
+                                               <string key="majorKey">IBFrameworkSource</string>
+                                               <string key="minorKey">AppKit.framework/Headers/NSSavePanel.h</string>
+                                       </object>
+                               </object>
+                               <object class="IBPartialClassDescription">
+                                       <string key="className">NSObject</string>
+                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
+                                               <string key="majorKey">IBFrameworkSource</string>
+                                               <string key="minorKey">AppKit.framework/Headers/NSSound.h</string>
+                                       </object>
+                               </object>
+                               <object class="IBPartialClassDescription">
+                                       <string key="className">NSObject</string>
+                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
+                                               <string key="majorKey">IBFrameworkSource</string>
+                                               <string key="minorKey">AppKit.framework/Headers/NSSpeechRecognizer.h</string>
+                                       </object>
+                               </object>
+                               <object class="IBPartialClassDescription">
+                                       <string key="className">NSObject</string>
+                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
+                                               <string key="majorKey">IBFrameworkSource</string>
+                                               <string key="minorKey">AppKit.framework/Headers/NSSpeechSynthesizer.h</string>
+                                       </object>
+                               </object>
+                               <object class="IBPartialClassDescription">
+                                       <string key="className">NSObject</string>
+                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
+                                               <string key="majorKey">IBFrameworkSource</string>
+                                               <string key="minorKey">AppKit.framework/Headers/NSSplitView.h</string>
+                                       </object>
+                               </object>
+                               <object class="IBPartialClassDescription">
+                                       <string key="className">NSObject</string>
+                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
+                                               <string key="majorKey">IBFrameworkSource</string>
+                                               <string key="minorKey">AppKit.framework/Headers/NSTabView.h</string>
+                                       </object>
+                               </object>
+                               <object class="IBPartialClassDescription">
+                                       <string key="className">NSObject</string>
+                                       <object class="IBClassDescriptionSource" key="sourceIdentifier" id="618451181">
+                                               <string key="majorKey">IBFrameworkSource</string>
+                                               <string key="minorKey">AppKit.framework/Headers/NSTableView.h</string>
+                                       </object>
+                               </object>
+                               <object class="IBPartialClassDescription">
+                                       <string key="className">NSObject</string>
+                                       <object class="IBClassDescriptionSource" key="sourceIdentifier" id="639735868">
+                                               <string key="majorKey">IBFrameworkSource</string>
+                                               <string key="minorKey">AppKit.framework/Headers/NSText.h</string>
+                                       </object>
+                               </object>
+                               <object class="IBPartialClassDescription">
+                                       <string key="className">NSObject</string>
+                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
+                                               <string key="majorKey">IBFrameworkSource</string>
+                                               <string key="minorKey">AppKit.framework/Headers/NSTextStorage.h</string>
+                                       </object>
+                               </object>
+                               <object class="IBPartialClassDescription">
+                                       <string key="className">NSObject</string>
+                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
+                                               <string key="majorKey">IBFrameworkSource</string>
+                                               <string key="minorKey">AppKit.framework/Headers/NSTextView.h</string>
+                                       </object>
+                               </object>
+                               <object class="IBPartialClassDescription">
+                                       <string key="className">NSObject</string>
+                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
+                                               <string key="majorKey">IBFrameworkSource</string>
+                                               <string key="minorKey">AppKit.framework/Headers/NSTokenField.h</string>
+                                       </object>
+                               </object>
+                               <object class="IBPartialClassDescription">
+                                       <string key="className">NSObject</string>
+                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
+                                               <string key="majorKey">IBFrameworkSource</string>
+                                               <string key="minorKey">AppKit.framework/Headers/NSTokenFieldCell.h</string>
+                                       </object>
+                               </object>
+                               <object class="IBPartialClassDescription">
+                                       <string key="className">NSObject</string>
+                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
+                                               <string key="majorKey">IBFrameworkSource</string>
+                                               <string key="minorKey">AppKit.framework/Headers/NSToolbar.h</string>
+                                       </object>
+                               </object>
+                               <object class="IBPartialClassDescription">
+                                       <string key="className">NSObject</string>
+                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
+                                               <string key="majorKey">IBFrameworkSource</string>
+                                               <string key="minorKey">AppKit.framework/Headers/NSToolbarItem.h</string>
+                                       </object>
+                               </object>
+                               <object class="IBPartialClassDescription">
+                                       <string key="className">NSObject</string>
+                                       <object class="IBClassDescriptionSource" key="sourceIdentifier" id="1040394720">
+                                               <string key="majorKey">IBFrameworkSource</string>
+                                               <string key="minorKey">AppKit.framework/Headers/NSView.h</string>
+                                       </object>
+                               </object>
+                               <object class="IBPartialClassDescription">
+                                       <string key="className">NSObject</string>
+                                       <object class="IBClassDescriptionSource" key="sourceIdentifier" id="197276517">
+                                               <string key="majorKey">IBFrameworkSource</string>
+                                               <string key="minorKey">AppKit.framework/Headers/NSWindow.h</string>
+                                       </object>
+                               </object>
+                               <object class="IBPartialClassDescription">
+                                       <string key="className">NSResponder</string>
+                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
+                                               <string key="majorKey">IBFrameworkSource</string>
+                                               <string key="minorKey">AppKit.framework/Headers/NSInterfaceStyle.h</string>
+                                       </object>
+                               </object>
+                               <object class="IBPartialClassDescription">
+                                       <string key="className">NSResponder</string>
+                                       <string key="superclassName">NSObject</string>
+                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
+                                               <string key="majorKey">IBFrameworkSource</string>
+                                               <string key="minorKey">AppKit.framework/Headers/NSResponder.h</string>
+                                       </object>
+                               </object>
+                               <object class="IBPartialClassDescription">
+                                       <string key="className">NSTableView</string>
+                                       <string key="superclassName">NSControl</string>
+                                       <reference key="sourceIdentifier" ref="618451181"/>
+                               </object>
+                               <object class="IBPartialClassDescription">
+                                       <string key="className">NSText</string>
+                                       <string key="superclassName">NSView</string>
+                                       <reference key="sourceIdentifier" ref="639735868"/>
+                               </object>
+                               <object class="IBPartialClassDescription">
+                                       <string key="className">NSView</string>
+                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
+                                               <string key="majorKey">IBFrameworkSource</string>
+                                               <string key="minorKey">AppKit.framework/Headers/NSClipView.h</string>
+                                       </object>
+                               </object>
+                               <object class="IBPartialClassDescription">
+                                       <string key="className">NSView</string>
+                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
+                                               <string key="majorKey">IBFrameworkSource</string>
+                                               <string key="minorKey">AppKit.framework/Headers/NSRulerView.h</string>
+                                       </object>
+                               </object>
+                               <object class="IBPartialClassDescription">
+                                       <string key="className">NSView</string>
+                                       <string key="superclassName">NSResponder</string>
+                                       <reference key="sourceIdentifier" ref="1040394720"/>
+                               </object>
+                               <object class="IBPartialClassDescription">
+                                       <string key="className">NSWindow</string>
+                                       <reference key="sourceIdentifier" ref="813110203"/>
+                               </object>
+                               <object class="IBPartialClassDescription">
+                                       <string key="className">NSWindow</string>
+                                       <string key="superclassName">NSResponder</string>
+                                       <reference key="sourceIdentifier" ref="197276517"/>
+                               </object>
+                               <object class="IBPartialClassDescription">
+                                       <string key="className">NSWindow</string>
+                                       <object class="IBClassDescriptionSource" key="sourceIdentifier">
+                                               <string key="majorKey">IBFrameworkSource</string>
+                                               <string key="minorKey">AppKit.framework/Headers/NSWindowScripting.h</string>
+                                       </object>
+                               </object>
+                       </array>
+               </object>
+               <int key="IBDocument.localizationMode">0</int>
+               <string key="IBDocument.TargetRuntimeIdentifier">IBCocoaFramework</string>
+               <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencies">
+                       <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.macosx</string>
+                       <integer value="1050" key="NS.object.0"/>
+               </object>
+               <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
+                       <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.macosx</string>
+                       <integer value="1040" key="NS.object.0"/>
+               </object>
+               <bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
+               <string key="IBDocument.LastKnownRelativeProjectPath">../../xscreensaver.xcodeproj</string>
+               <int key="IBDocument.defaultPropertyAccessControl">3</int>
+               <dictionary class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes">
+                       <string key="NSMenuCheckmark">{9, 8}</string>
+                       <string key="NSMenuMixedState">{7, 2}</string>
+               </dictionary>
+       </data>
+</archive>
diff --git a/OSX/en.lproj/SaverRunner.nib/keyedobjects.nib b/OSX/en.lproj/SaverRunner.nib/keyedobjects.nib
new file mode 100644 (file)
index 0000000..96d6891
Binary files /dev/null and b/OSX/en.lproj/SaverRunner.nib/keyedobjects.nib differ
diff --git a/OSX/gallant12x22.ttf b/OSX/gallant12x22.ttf
new file mode 100644 (file)
index 0000000..c7ce0dc
Binary files /dev/null and b/OSX/gallant12x22.ttf differ
diff --git a/OSX/gallant19.bdf b/OSX/gallant19.bdf
new file mode 100644 (file)
index 0000000..75b4fa6
--- /dev/null
@@ -0,0 +1,13691 @@
+STARTFONT 2.1
+COMMENT Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
+COMMENT Use is subject to license terms.
+COMMENT This is a derivation of a BDF font from the X consolidation
+COMMENT Originally a BSD vfont.
+COMMENT Re-built BDF and ISO10646-1 from hex code originally in
+COMMENT illumos usr/src/uts/common/font/12x22.c
+FONT -Sun-Gallant-Demi-R-Normal--19-190-72-72-C-120-ISO10646-1
+SIZE 19 72 72
+FONTBOUNDINGBOX 12 22 0 -5
+STARTPROPERTIES 18
+FONTNAME_REGISTRY ""
+FOUNDRY "Sun"
+FAMILY_NAME "Gallant"
+WEIGHT_NAME "Demi"
+SLANT "R"
+SETWIDTH_NAME "Normal"
+ADD_STYLE_NAME ""
+PIXEL_SIZE 19
+POINT_SIZE 190
+RESOLUTION_X 72
+RESOLUTION_Y 72
+SPACING "C"
+AVERAGE_WIDTH 120
+CHARSET_REGISTRY "ISO10646"
+CHARSET_ENCODING "1"
+FONT_ASCENT 17
+FONT_DESCENT 5
+DEFAULT_CHAR 65533
+ENDPROPERTIES
+CHARS 471
+STARTCHAR char0
+ENCODING 0
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+76E0
+76E0
+6060
+6060
+0000
+0000
+6060
+6060
+6060
+0000
+0000
+6060
+6060
+76E0
+76E0
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR space
+ENCODING 32
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR exclam
+ENCODING 33
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0000
+0000
+0600
+0600
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR quotedbl
+ENCODING 34
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+1980
+1980
+1980
+1980
+1980
+1980
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR numbersign
+ENCODING 35
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0330
+0330
+0330
+0660
+1FF0
+1FF0
+0CC0
+0CC0
+1980
+1980
+7FC0
+7FC0
+3300
+6600
+6600
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR dollar
+ENCODING 36
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0600
+1F80
+3FC0
+66E0
+6660
+6600
+3E00
+1F80
+07C0
+0660
+0660
+6660
+7FC0
+3F80
+0600
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR percent
+ENCODING 37
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+38C0
+4CC0
+4580
+6580
+3B00
+0300
+0600
+0600
+0C00
+0DC0
+1A60
+1A20
+3320
+31C0
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR ampersand
+ENCODING 38
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0700
+0F80
+18C0
+18C0
+18C0
+0F80
+1E00
+3E00
+7700
+6360
+61E0
+61C0
+6180
+3FE0
+1E60
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR quotesingle
+ENCODING 39
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0C00
+1E00
+1E00
+0600
+0600
+0C00
+1800
+1000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR parenleft
+ENCODING 40
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0180
+0300
+0600
+0600
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0600
+0600
+0300
+0180
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR parenright
+ENCODING 41
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+1800
+0C00
+0600
+0600
+0300
+0300
+0300
+0300
+0300
+0300
+0300
+0600
+0600
+0C00
+1800
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR asterisk
+ENCODING 42
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0F00
+0600
+6660
+76E0
+1980
+0000
+1980
+76E0
+6660
+0600
+0F00
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR plus
+ENCODING 43
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0600
+0600
+0600
+0600
+7FE0
+7FE0
+0600
+0600
+0600
+0600
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR comma
+ENCODING 44
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0C00
+1E00
+1E00
+0600
+0600
+0C00
+1800
+1000
+ENDCHAR
+STARTCHAR hyphen
+ENCODING 45
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+7FE0
+7FE0
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR period
+ENCODING 46
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0C00
+1E00
+1E00
+0C00
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR slash
+ENCODING 47
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0060
+00C0
+00C0
+0180
+0180
+0300
+0300
+0600
+0600
+0C00
+0C00
+1800
+1800
+3000
+3000
+6000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR zero
+ENCODING 48
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0700
+0F80
+1180
+10C0
+30C0
+30C0
+30C0
+30C0
+30C0
+30C0
+30C0
+3080
+1880
+1F00
+0E00
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR one
+ENCODING 49
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0200
+0600
+0E00
+1E00
+3600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+3FC0
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR two
+ENCODING 50
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+1F00
+3F80
+61C0
+40C0
+00C0
+00C0
+00C0
+0180
+0300
+0600
+0C00
+1800
+3020
+7FE0
+7FE0
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR three
+ENCODING 51
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0F80
+1FC0
+20E0
+4060
+0060
+00E0
+07C0
+0FC0
+00E0
+0060
+0060
+4060
+6040
+3F80
+1F00
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR four
+ENCODING 52
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0180
+0380
+0380
+0580
+0580
+0980
+0980
+1180
+1180
+2180
+3FE0
+7FE0
+0180
+0180
+0180
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR five
+ENCODING 53
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0FC0
+0FC0
+1000
+1000
+2000
+3F80
+31C0
+00E0
+0060
+0060
+0060
+4060
+6060
+30C0
+1F80
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR six
+ENCODING 54
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0700
+0C00
+1800
+3000
+3000
+6000
+6780
+6FC0
+70E0
+6060
+6060
+6060
+7040
+3F80
+1F00
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR seven
+ENCODING 55
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+1FE0
+3FE0
+6040
+0040
+00C0
+0080
+0080
+0180
+0100
+0100
+0300
+0200
+0200
+0600
+0400
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR eight
+ENCODING 56
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0F00
+1180
+30C0
+30C0
+30C0
+1880
+0D00
+0600
+0B00
+1180
+30C0
+30C0
+30C0
+1880
+0F00
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR nine
+ENCODING 57
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0F80
+11C0
+20E0
+6060
+6060
+6060
+70E0
+3F60
+1E60
+0060
+00C0
+00C0
+0180
+0700
+3C00
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR colon
+ENCODING 58
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0C00
+1E00
+1E00
+0C00
+0000
+0000
+0C00
+1E00
+1E00
+0C00
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR semicolon
+ENCODING 59
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0C00
+1E00
+1E00
+0C00
+0000
+0000
+0C00
+1E00
+1E00
+0600
+0600
+0C00
+1800
+1000
+ENDCHAR
+STARTCHAR less
+ENCODING 60
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0060
+01C0
+0700
+1C00
+7000
+7000
+1C00
+0700
+01C0
+0060
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR equal
+ENCODING 61
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+7FE0
+7FE0
+0000
+0000
+7FE0
+7FE0
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR greater
+ENCODING 62
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+6000
+3800
+0E00
+0380
+00E0
+00E0
+0380
+0E00
+3800
+6000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR question
+ENCODING 63
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0F00
+1F80
+39C0
+20C0
+00C0
+00C0
+0180
+0300
+0600
+0C00
+0C00
+0000
+0000
+0C00
+0C00
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR at
+ENCODING 64
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0F80
+3FC0
+3060
+6060
+6720
+6FA0
+6CA0
+6CA0
+67E0
+6000
+3000
+3FE0
+0FE0
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR A
+ENCODING 65
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0600
+0600
+0B00
+0B00
+0900
+1180
+1180
+1080
+3FC0
+20C0
+2040
+4060
+4060
+E0F0
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR B
+ENCODING 66
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+FF00
+6080
+60C0
+60C0
+60C0
+6180
+7F80
+60C0
+6060
+6060
+6060
+6060
+60C0
+FF80
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR C
+ENCODING 67
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0FC0
+1060
+2020
+2000
+6000
+6000
+6000
+6000
+6000
+6000
+2000
+3020
+1840
+0F80
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR D
+ENCODING 68
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+FF00
+61C0
+60C0
+6060
+6060
+6060
+6060
+6060
+6060
+6060
+6060
+6040
+6180
+FE00
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR E
+ENCODING 69
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+7FC0
+3040
+3040
+3000
+3000
+3080
+3F80
+3080
+3000
+3000
+3000
+3020
+3020
+7FE0
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR F
+ENCODING 70
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+7FC0
+3040
+3040
+3000
+3000
+3080
+3F80
+3080
+3000
+3000
+3000
+3000
+3000
+7800
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR G
+ENCODING 71
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0FC0
+1060
+2020
+2000
+6000
+6000
+6000
+6000
+61F0
+6060
+2060
+3060
+1860
+0F80
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR H
+ENCODING 72
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+F0F0
+6060
+6060
+6060
+6060
+6060
+7FE0
+6060
+6060
+6060
+6060
+6060
+6060
+F0F0
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR I
+ENCODING 73
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+1F80
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+1F80
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR J
+ENCODING 74
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+1F80
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0400
+3800
+3000
+ENDCHAR
+STARTCHAR K
+ENCODING 75
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+F0E0
+6180
+6300
+6600
+6C00
+7800
+7800
+7C00
+6E00
+6700
+6380
+61C0
+60E0
+F070
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR L
+ENCODING 76
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+7800
+3000
+3000
+3000
+3000
+3000
+3000
+3000
+3000
+3000
+3000
+3020
+3020
+7FE0
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR M
+ENCODING 77
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+E070
+60E0
+70E0
+70E0
+70E0
+5960
+5960
+5960
+4D60
+4E60
+4E60
+4460
+4460
+E4F0
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR N
+ENCODING 78
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+C070
+6020
+7020
+7820
+5820
+4C20
+4620
+4720
+4320
+41A0
+40E0
+40E0
+4060
+E030
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR O
+ENCODING 79
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0F00
+11C0
+20C0
+2060
+6060
+6060
+6060
+6060
+6060
+6060
+2040
+3040
+1880
+0F00
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR P
+ENCODING 80
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+7F80
+30C0
+3060
+3060
+3060
+30C0
+3780
+3000
+3000
+3000
+3000
+3000
+3000
+7800
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR Q
+ENCODING 81
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0F00
+11C0
+20C0
+2060
+6060
+6060
+6060
+6060
+6060
+6060
+3040
+3840
+1F80
+0E00
+1F00
+2390
+01E0
+0000
+0000
+ENDCHAR
+STARTCHAR R
+ENCODING 82
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+FF00
+6180
+60C0
+60C0
+60C0
+6080
+7F00
+7C00
+6E00
+6700
+6380
+61C0
+60E0
+F070
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR S
+ENCODING 83
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+1FE0
+3060
+6020
+6020
+7000
+3C00
+1E00
+0780
+01C0
+00E0
+4060
+4060
+60C0
+7F80
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR T
+ENCODING 84
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+7FE0
+4620
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+1F80
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR U
+ENCODING 85
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+F070
+6020
+6020
+6020
+6020
+6020
+6020
+6020
+6020
+6020
+6020
+7040
+3FC0
+1F80
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR V
+ENCODING 86
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+E0E0
+6040
+3080
+3080
+3080
+1900
+1900
+1900
+0A00
+0E00
+0E00
+0400
+0400
+0400
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR W
+ENCODING 87
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+FEF0
+6620
+6620
+6620
+7620
+7740
+3340
+3740
+3BC0
+3B80
+1980
+1980
+1980
+1980
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR X
+ENCODING 88
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+F070
+6020
+3040
+3880
+1880
+0D00
+0600
+0600
+0B00
+1180
+11C0
+20C0
+4060
+E0F0
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR Y
+ENCODING 89
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+F070
+6020
+3040
+1880
+1880
+0D00
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0F00
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR Z
+ENCODING 90
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+3FE0
+20C0
+00C0
+0180
+0180
+0300
+0300
+0600
+0600
+0C00
+0C00
+1800
+1820
+3FE0
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR bracketleft
+ENCODING 91
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0F80
+0F80
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0F80
+0F80
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR backslash
+ENCODING 92
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+6000
+3000
+3000
+1800
+1800
+0C00
+0C00
+0600
+0600
+0300
+0300
+0180
+0180
+00C0
+00C0
+0060
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR bracketright
+ENCODING 93
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+1F00
+1F00
+0300
+0300
+0300
+0300
+0300
+0300
+0300
+0300
+0300
+0300
+0300
+1F00
+1F00
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR asciicircum
+ENCODING 94
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0400
+0E00
+1B00
+3180
+60C0
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR underscore
+ENCODING 95
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+FFF0
+FFF0
+0000
+0000
+ENDCHAR
+STARTCHAR grave
+ENCODING 96
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0100
+0300
+0600
+0600
+0780
+0780
+0300
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR a
+ENCODING 97
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0F80
+18C0
+10C0
+03C0
+1CC0
+30C0
+30C0
+30C0
+39C0
+1EE0
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR b
+ENCODING 98
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+2000
+6000
+E000
+6000
+6000
+6780
+6FC0
+70E0
+6060
+6060
+6060
+6060
+7060
+78C0
+4F80
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR c
+ENCODING 99
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+1F80
+31C0
+20C0
+6000
+6000
+6000
+6000
+7040
+30C0
+1F80
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR d
+ENCODING 100
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0060
+00E0
+0060
+0060
+0060
+0F60
+31E0
+20E0
+6060
+6060
+6060
+6060
+70E0
+3960
+1E70
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR e
+ENCODING 101
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0F00
+30C0
+6060
+6060
+7FE0
+6000
+6000
+3000
+1860
+0F80
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR f
+ENCODING 102
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0380
+04C0
+04C0
+0C00
+0C00
+0C00
+0C00
+3F80
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+1E00
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR g
+ENCODING 103
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+1F20
+31E0
+60C0
+60C0
+60C0
+3180
+3F00
+6000
+7FC0
+3FE0
+2060
+4020
+4020
+7FC0
+3F80
+ENDCHAR
+STARTCHAR h
+ENCODING 104
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+1000
+3000
+7000
+3000
+3000
+3780
+39C0
+30C0
+30C0
+30C0
+30C0
+30C0
+30C0
+30C0
+79E0
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR i
+ENCODING 105
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0600
+0600
+0000
+0000
+1E00
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+1F80
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR j
+ENCODING 106
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+00C0
+00C0
+0000
+0000
+03C0
+00C0
+00C0
+00C0
+00C0
+00C0
+00C0
+00C0
+00C0
+00C0
+20C0
+30C0
+3880
+1F00
+0E00
+ENDCHAR
+STARTCHAR k
+ENCODING 107
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+6000
+E000
+6000
+6000
+6000
+61C0
+6300
+6600
+7C00
+7800
+7C00
+6E00
+6700
+6380
+F1E0
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR l
+ENCODING 108
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+1E00
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+1F80
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR m
+ENCODING 109
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+DDC0
+6EE0
+6660
+6660
+6660
+6660
+6660
+6660
+6660
+EF70
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR n
+ENCODING 110
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+2780
+79C0
+30C0
+30C0
+30C0
+30C0
+30C0
+30C0
+30C0
+79E0
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR o
+ENCODING 111
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0F80
+11C0
+20E0
+6060
+6060
+6060
+6060
+7040
+3880
+1F00
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR p
+ENCODING 112
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+EF80
+71C0
+60E0
+6060
+6060
+6060
+6060
+6040
+7080
+7F00
+6000
+6000
+6000
+6000
+F000
+ENDCHAR
+STARTCHAR q
+ENCODING 113
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0F20
+11E0
+20E0
+6060
+6060
+6060
+6060
+7060
+38E0
+1FE0
+0060
+0060
+0060
+0060
+00F0
+ENDCHAR
+STARTCHAR r
+ENCODING 114
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+7380
+34C0
+38C0
+3000
+3000
+3000
+3000
+3000
+3000
+7800
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR s
+ENCODING 115
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+1FC0
+30C0
+3040
+3800
+1E00
+0780
+01C0
+20C0
+30C0
+3F80
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR t
+ENCODING 116
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0400
+0400
+0C00
+7FC0
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C20
+0E40
+0780
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR u
+ENCODING 117
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+79E0
+30C0
+30C0
+30C0
+30C0
+30C0
+30C0
+30C0
+39C0
+1E60
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR v
+ENCODING 118
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+F070
+6020
+3040
+3040
+1880
+1880
+0D00
+0D00
+0600
+0600
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR w
+ENCODING 119
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+FF70
+6620
+6620
+6620
+3740
+3B40
+3B40
+1980
+1980
+1980
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR x
+ENCODING 120
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+F8F0
+7040
+3880
+1D00
+0E00
+0700
+0B80
+11C0
+20E0
+F1F0
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR y
+ENCODING 121
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+F0F0
+6020
+3040
+3040
+1880
+1880
+0D00
+0D00
+0600
+0600
+0400
+0C00
+0800
+7800
+7000
+ENDCHAR
+STARTCHAR z
+ENCODING 122
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+7FE0
+60E0
+41C0
+0380
+0700
+0E00
+1C00
+3820
+7060
+7FE0
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR braceleft
+ENCODING 123
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0380
+0600
+0600
+0600
+0600
+0600
+0C00
+3800
+0C00
+0600
+0600
+0600
+0600
+0600
+0380
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR bar
+ENCODING 124
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+ENDCHAR
+STARTCHAR braceright
+ENCODING 125
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+1C00
+0600
+0600
+0600
+0600
+0600
+0300
+01C0
+0300
+0600
+0600
+0600
+0600
+0600
+1C00
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR asciitilde
+ENCODING 126
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+1C20
+3E60
+67C0
+4380
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR nbspace
+ENCODING 160
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR exclamdown
+ENCODING 161
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0600
+0600
+0000
+0000
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR cent
+ENCODING 162
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0600
+0600
+1F80
+36C0
+26C0
+6600
+6600
+6600
+6600
+7640
+36C0
+1F80
+0600
+0600
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR sterling
+ENCODING 163
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0F80
+1CC0
+18C0
+1800
+1800
+1800
+7E00
+7E00
+1800
+1800
+1800
+1800
+3E20
+7FE0
+61C0
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR currency
+ENCODING 164
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+6060
+2F40
+1F80
+30C0
+30C0
+30C0
+30C0
+1F80
+2F40
+6060
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR yen
+ENCODING 165
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+6060
+6060
+30C0
+1980
+1980
+0F00
+0600
+0600
+1F80
+1F80
+0600
+0600
+0600
+0600
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR brokenbar
+ENCODING 166
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0000
+0000
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+ENDCHAR
+STARTCHAR section
+ENCODING 167
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+1F00
+3180
+3180
+3000
+3000
+1F00
+3180
+3180
+1F00
+0180
+0180
+3180
+3180
+1F00
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR dieresis
+ENCODING 168
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+1980
+1980
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR copyright
+ENCODING 169
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+1F80
+2040
+4F20
+59A0
+5820
+5820
+59A0
+4F20
+2040
+1F80
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR ordfeminine
+ENCODING 170
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+1F00
+3180
+0180
+0780
+1980
+3180
+3180
+3380
+1DC0
+0000
+3FC0
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR guillemotleft
+ENCODING 171
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0660
+0CC0
+1980
+3300
+6600
+3300
+1980
+0CC0
+0660
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR logicalnot
+ENCODING 172
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+3FC0
+3FC0
+00C0
+00C0
+00C0
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR softhyphen
+ENCODING 173
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+7FE0
+7FE0
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR registered
+ENCODING 174
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+1F80
+2040
+5F20
+59A0
+59A0
+5F20
+59A0
+59A0
+2040
+1F80
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR macron
+ENCODING 175
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+1F80
+1F80
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR degree
+ENCODING 176
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0F00
+1980
+1980
+1980
+0F00
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR plusminus
+ENCODING 177
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0600
+0600
+0600
+0600
+7FE0
+7FE0
+0600
+0600
+0600
+0600
+0000
+7FE0
+7FE0
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR twosuperior
+ENCODING 178
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0F00
+1F80
+3180
+2180
+0300
+0600
+0C00
+1840
+3FC0
+3FC0
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR threesuperior
+ENCODING 179
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0F00
+1B80
+2180
+0180
+0F00
+0380
+0180
+3180
+3F80
+1F00
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR acute
+ENCODING 180
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0300
+0600
+0C00
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR mu
+ENCODING 181
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+30C0
+30C0
+30C0
+30C0
+30C0
+30C0
+30C0
+30C0
+39C0
+36E0
+3000
+3000
+6000
+0000
+0000
+ENDCHAR
+STARTCHAR paragraph
+ENCODING 182
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+1FF0
+3CC0
+7CC0
+7CC0
+7CC0
+3CC0
+1CC0
+0CC0
+0CC0
+0CC0
+0CC0
+0CC0
+0CC0
+1CE0
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR periodcentered
+ENCODING 183
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0600
+0F00
+0F00
+0600
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR cedilla
+ENCODING 184
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0600
+0300
+0180
+0F00
+0000
+ENDCHAR
+STARTCHAR onesuperior
+ENCODING 185
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0200
+0600
+0E00
+1600
+0600
+0600
+0600
+0600
+0600
+1F80
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR ordmasculine
+ENCODING 186
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0700
+1980
+10C0
+30C0
+30C0
+30C0
+3080
+1980
+0E00
+0000
+3FC0
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR guillemotright
+ENCODING 187
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+6600
+3300
+1980
+0CC0
+0660
+0CC0
+1980
+3300
+6600
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR onequarter
+ENCODING 188
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+1000
+3000
+1000
+1040
+1080
+1100
+3A40
+04C0
+0940
+1240
+2440
+47E0
+0040
+0040
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR onehalf
+ENCODING 189
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+1000
+3000
+1000
+1040
+1080
+1100
+3A00
+05C0
+0A20
+1020
+20C0
+4100
+0200
+03E0
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR threequarters
+ENCODING 190
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+3800
+4400
+0400
+1840
+0480
+4500
+3A40
+04C0
+0940
+1240
+2440
+47E0
+0040
+0040
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR questiondown
+ENCODING 191
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0300
+0300
+0000
+0000
+0300
+0300
+0600
+0C00
+1800
+3000
+3000
+3040
+39C0
+1F80
+0F00
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR Agrave
+ENCODING 192
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0C00
+0600
+0300
+0000
+0600
+0600
+0B00
+0B00
+1980
+1180
+3FC0
+20C0
+6060
+4060
+E0F0
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR Aacute
+ENCODING 193
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0300
+0600
+0C00
+0000
+0600
+0600
+0B00
+0B00
+1980
+1180
+3FC0
+20C0
+6060
+4060
+E0F0
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR Acircumflex
+ENCODING 194
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0600
+0F00
+1980
+0000
+0600
+0600
+0B00
+0B00
+1980
+1180
+3FC0
+20C0
+6060
+4060
+E0F0
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR Atilde
+ENCODING 195
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+1C40
+3FC0
+2380
+0000
+0600
+0600
+0B00
+0B00
+1980
+1180
+3FC0
+20C0
+6060
+4060
+E0F0
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR Adieresis
+ENCODING 196
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+1980
+1980
+0000
+0400
+0600
+0600
+0B00
+0B00
+1980
+1180
+3FC0
+20C0
+6060
+4060
+E0F0
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR Aring
+ENCODING 197
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0F00
+1980
+0F00
+0400
+0600
+0600
+0B00
+0B00
+1980
+1180
+3FC0
+20C0
+6060
+4060
+E0F0
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR AE
+ENCODING 198
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+03F0
+0710
+0710
+0B00
+0B00
+0B20
+13E0
+1320
+3F00
+2300
+2300
+4310
+4310
+E7F0
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR Ccedilla
+ENCODING 199
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0FC0
+1060
+2020
+2000
+6000
+6000
+6000
+6000
+6000
+6000
+2000
+3020
+1840
+0F80
+0600
+0300
+0180
+0F00
+0000
+ENDCHAR
+STARTCHAR Egrave
+ENCODING 200
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0C00
+0600
+0100
+7FE0
+3020
+3000
+3000
+3080
+3F80
+3080
+3000
+3000
+3020
+3020
+7FE0
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR Eacute
+ENCODING 201
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0300
+0600
+0800
+7FE0
+3020
+3000
+3000
+3080
+3F80
+3080
+3000
+3000
+3020
+3020
+7FE0
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR Ecircumflex
+ENCODING 202
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0700
+0D80
+0000
+7FE0
+3020
+3000
+3000
+3080
+3F80
+3080
+3000
+3000
+3020
+3020
+7FE0
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR Edieresis
+ENCODING 203
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+1980
+1980
+0000
+7FE0
+3020
+3000
+3000
+3080
+3F80
+3080
+3000
+3000
+3020
+3020
+7FE0
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR Igrave
+ENCODING 204
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+1800
+0C00
+0200
+1F80
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+1F80
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR Iacute
+ENCODING 205
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0180
+0300
+0400
+1F80
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+1F80
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR Icircumflex
+ENCODING 206
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0600
+0F00
+1980
+0000
+1F80
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+1F80
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR Idieresis
+ENCODING 207
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+1980
+1980
+0000
+1F80
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+1F80
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR Eth
+ENCODING 208
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+7F00
+31C0
+30C0
+3060
+3060
+3060
+FC60
+FC60
+3060
+3060
+3060
+3040
+3180
+7E00
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR Ntilde
+ENCODING 209
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+1C40
+3FC0
+2380
+C070
+6020
+7020
+7820
+5C20
+4E20
+4720
+43A0
+41E0
+40E0
+4060
+E030
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR Ograve
+ENCODING 210
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0C00
+0600
+0100
+0F80
+11C0
+20C0
+2060
+6060
+6060
+6060
+6060
+2040
+3040
+1880
+0F00
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR Oacute
+ENCODING 211
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0180
+0300
+0400
+0F80
+11C0
+20C0
+2060
+6060
+6060
+6060
+6060
+2040
+3040
+1880
+0F00
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR Ocircumflex
+ENCODING 212
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0600
+0900
+1080
+0F00
+11C0
+20C0
+2060
+6060
+6060
+6060
+6060
+2040
+3040
+1880
+0F00
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR Otilde
+ENCODING 213
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+1C60
+3FC0
+2280
+0F80
+11C0
+20C0
+2060
+6060
+6060
+6060
+6060
+2040
+3040
+1880
+0F00
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR Odieresis
+ENCODING 214
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+1980
+1980
+0000
+0F80
+11C0
+20C0
+2060
+6060
+6060
+6060
+6060
+2040
+3040
+1880
+0F00
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR multiply
+ENCODING 215
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+6060
+30C0
+1980
+0F00
+0600
+0F00
+1980
+30C0
+6060
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR Oslash
+ENCODING 216
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0080
+0F80
+11C0
+21C0
+2260
+6260
+6260
+6460
+6460
+6460
+2840
+3840
+1880
+1F00
+1000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR Ugrave
+ENCODING 217
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0C00
+0600
+E330
+6020
+6020
+6020
+6020
+6020
+6020
+6020
+6020
+6020
+7040
+3FC0
+1F80
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR Uacute
+ENCODING 218
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0180
+0300
+E630
+6020
+6020
+6020
+6020
+6020
+6020
+6020
+6020
+6020
+7040
+3FC0
+1F80
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR Ucircumflex
+ENCODING 219
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0700
+0D80
+E8B0
+6020
+6020
+6020
+6020
+6020
+6020
+6020
+6020
+6020
+7040
+3FC0
+1F80
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR Udieresis
+ENCODING 220
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+1980
+1980
+E030
+6020
+6020
+6020
+6020
+6020
+6020
+6020
+6020
+6020
+7040
+3FC0
+1F80
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR Yacute
+ENCODING 221
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0180
+0300
+E670
+6020
+3040
+1880
+0D00
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0F00
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR Thorn
+ENCODING 222
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+7800
+3000
+3F80
+30C0
+3060
+3060
+3060
+30C0
+3F80
+3000
+3000
+3000
+3000
+3000
+7800
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR germandbls
+ENCODING 223
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0F00
+1980
+30C0
+30C0
+30C0
+3180
+3780
+3180
+30C0
+30C0
+30C0
+30C0
+3180
+7700
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR agrave
+ENCODING 224
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0C00
+0600
+0300
+0000
+0F80
+18C0
+10C0
+03C0
+1CC0
+30C0
+30C0
+30C0
+39C0
+1EE0
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR aacute
+ENCODING 225
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0180
+0300
+0600
+0000
+0F80
+18C0
+10C0
+03C0
+1CC0
+30C0
+30C0
+30C0
+39C0
+1EE0
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR acircumflex
+ENCODING 226
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0200
+0700
+0D80
+18C0
+0000
+0F80
+18C0
+10C0
+03C0
+1CC0
+30C0
+30C0
+30C0
+39C0
+1EE0
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR atilde
+ENCODING 227
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0E40
+1FC0
+1380
+0000
+0000
+0F80
+18C0
+10C0
+03C0
+1CC0
+30C0
+30C0
+30C0
+39C0
+1EE0
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR adieresis
+ENCODING 228
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+1980
+1980
+0000
+0000
+0F80
+18C0
+10C0
+03C0
+1CC0
+30C0
+30C0
+30C0
+39C0
+1EE0
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR aring
+ENCODING 229
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0700
+0D80
+0D80
+0700
+0000
+0F80
+18C0
+10C0
+03C0
+1CC0
+30C0
+30C0
+30C0
+39C0
+1EE0
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR ae
+ENCODING 230
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+3DE0
+6630
+4630
+0630
+3FF0
+6600
+C600
+C600
+E730
+7DE0
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR ccedilla
+ENCODING 231
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+1F80
+31C0
+20C0
+6000
+6000
+6000
+6000
+7040
+30C0
+1F80
+0600
+0300
+0180
+0F00
+0000
+ENDCHAR
+STARTCHAR egrave
+ENCODING 232
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0C00
+0600
+0300
+0000
+0F00
+30C0
+6060
+6060
+7FE0
+6000
+6000
+3000
+1860
+0F80
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR eacute
+ENCODING 233
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0180
+0300
+0600
+0000
+0F00
+30C0
+6060
+6060
+7FE0
+6000
+6000
+3000
+1860
+0F80
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR ecircumflex
+ENCODING 234
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0200
+0700
+0D80
+18C0
+0000
+0F00
+30C0
+6060
+6060
+7FE0
+6000
+6000
+3000
+1860
+0F80
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR edieresis
+ENCODING 235
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+1980
+1980
+0000
+0000
+0F00
+30C0
+6060
+6060
+7FE0
+6000
+6000
+3000
+1860
+0F80
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR igrave
+ENCODING 236
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+1800
+0C00
+0600
+0000
+1E00
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+1F80
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR iacute
+ENCODING 237
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0180
+0300
+0600
+0000
+1E00
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+1F80
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR icircumflex
+ENCODING 238
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0400
+0E00
+1B00
+3180
+0000
+1E00
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+1F80
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR idieresis
+ENCODING 239
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+1980
+1980
+0000
+0000
+1E00
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+1F80
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR eth
+ENCODING 240
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+1C00
+06C0
+0300
+0D80
+00C0
+00C0
+0060
+0F60
+18E0
+3060
+3060
+3060
+3060
+18C0
+0F00
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR ntilde
+ENCODING 241
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+1C40
+3FC0
+2380
+0000
+0000
+2780
+79C0
+30C0
+30C0
+30C0
+30C0
+30C0
+30C0
+30C0
+79E0
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR ograve
+ENCODING 242
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0C00
+0600
+0300
+0000
+0F80
+11C0
+20E0
+6060
+6060
+6060
+6060
+7040
+3880
+1F00
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR oacute
+ENCODING 243
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0180
+0300
+0600
+0000
+0F80
+11C0
+20E0
+6060
+6060
+6060
+6060
+7040
+3880
+1F00
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR ocircumflex
+ENCODING 244
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0200
+0700
+0D80
+18C0
+0000
+0F80
+11C0
+20E0
+6060
+6060
+6060
+6060
+7040
+3880
+1F00
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR otilde
+ENCODING 245
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+1C40
+3FC0
+2380
+0000
+0000
+0F80
+11C0
+20E0
+6060
+6060
+6060
+6060
+7040
+3880
+1F00
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR odieresis
+ENCODING 246
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+1980
+1980
+0000
+0000
+0F80
+11C0
+20E0
+6060
+6060
+6060
+6060
+7040
+3880
+1F00
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR divide
+ENCODING 247
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0600
+0600
+0000
+0000
+7FE0
+7FE0
+0000
+0000
+0600
+0600
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR oslash
+ENCODING 248
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0010
+0FA0
+11C0
+20E0
+6160
+6260
+6460
+6860
+7040
+3880
+5F00
+8000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR ugrave
+ENCODING 249
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+1800
+0C00
+0600
+0000
+79E0
+30C0
+30C0
+30C0
+30C0
+30C0
+30C0
+30C0
+39C0
+1E60
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR uacute
+ENCODING 250
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0180
+0300
+0600
+0000
+79E0
+30C0
+30C0
+30C0
+30C0
+30C0
+30C0
+30C0
+39C0
+1E60
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR ucircumflex
+ENCODING 251
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0200
+0700
+0D80
+18C0
+0000
+79E0
+30C0
+30C0
+30C0
+30C0
+30C0
+30C0
+30C0
+39C0
+1E60
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR udieresis
+ENCODING 252
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+1980
+1980
+0000
+0000
+79E0
+30C0
+30C0
+30C0
+30C0
+30C0
+30C0
+30C0
+39C0
+1E60
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR yacute
+ENCODING 253
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0180
+0300
+0600
+0000
+F0F0
+6020
+3040
+3040
+1880
+1880
+0D00
+0D00
+0600
+0600
+0400
+0C00
+0800
+7800
+7000
+ENDCHAR
+STARTCHAR thorn
+ENCODING 254
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+7800
+3000
+3000
+3F80
+30C0
+3060
+3060
+30C0
+3F80
+3000
+3000
+3000
+3000
+3000
+7800
+ENDCHAR
+STARTCHAR ydieresis
+ENCODING 255
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+1980
+1980
+0000
+0000
+F0F0
+6020
+3040
+3040
+1880
+1880
+0D00
+0D00
+0600
+0600
+0400
+0C00
+0800
+7800
+7000
+ENDCHAR
+STARTCHAR Amacron
+ENCODING 256
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+1F80
+1F80
+0000
+0600
+0600
+0B00
+0B00
+0900
+1180
+1180
+1080
+3FC0
+20C0
+2040
+4060
+4060
+E0F0
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR amacron
+ENCODING 257
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0FC0
+0FC0
+0000
+0000
+0F80
+18C0
+10C0
+03C0
+1CC0
+30C0
+30C0
+30C0
+39C0
+1EE0
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR Abreve
+ENCODING 258
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+1B00
+1B00
+0E00
+0600
+0600
+0B00
+0B00
+0900
+1180
+1180
+1080
+3FC0
+20C0
+2040
+4060
+4060
+E0F0
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR abreve
+ENCODING 259
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0D80
+0D80
+0700
+0000
+0000
+0F80
+18C0
+10C0
+03C0
+1CC0
+30C0
+30C0
+30C0
+39C0
+1EE0
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR Aogonek
+ENCODING 260
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0600
+0600
+0B00
+0B00
+0900
+1180
+1180
+1080
+3FC0
+20C0
+2040
+4060
+4060
+E0F0
+00C0
+0180
+0300
+01E0
+0000
+ENDCHAR
+STARTCHAR aogonek
+ENCODING 261
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0F80
+18C0
+10C0
+03C0
+1CC0
+30C0
+30C0
+30C0
+39C0
+1EE0
+00C0
+0180
+0300
+01E0
+0000
+ENDCHAR
+STARTCHAR Cacute
+ENCODING 262
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0300
+0600
+0C00
+0FC0
+1060
+2020
+2000
+6000
+6000
+6000
+6000
+6000
+6000
+2000
+3020
+1840
+0F80
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR cacute
+ENCODING 263
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0300
+0600
+0C00
+0000
+1F80
+31C0
+20C0
+6000
+6000
+6000
+6000
+7040
+30C0
+1F80
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR Ccircumflex
+ENCODING 264
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0700
+0D80
+0000
+0FC0
+1060
+2020
+2000
+6000
+6000
+6000
+6000
+6000
+6000
+2000
+3020
+1840
+0F80
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR ccircumflex
+ENCODING 265
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0400
+0E00
+1B00
+3180
+0000
+1F80
+31C0
+20C0
+6000
+6000
+6000
+6000
+7040
+30C0
+1F80
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR Cdotaccent
+ENCODING 266
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0600
+0600
+0000
+0FC0
+1060
+2020
+2000
+6000
+6000
+6000
+6000
+6000
+6000
+2000
+3020
+1840
+0F80
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR cdotaccent
+ENCODING 267
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0600
+0600
+0000
+1F80
+31C0
+20C0
+6000
+6000
+6000
+6000
+7040
+30C0
+1F80
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR Ccaron
+ENCODING 268
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+18C0
+0D80
+0700
+0FC0
+1060
+2020
+2000
+6000
+6000
+6000
+6000
+6000
+6000
+2000
+3020
+1840
+0F80
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR ccaron
+ENCODING 269
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+3180
+1B00
+0E00
+0400
+0000
+1F80
+31C0
+20C0
+6000
+6000
+6000
+6000
+7040
+30C0
+1F80
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR Dcaron
+ENCODING 270
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+3180
+1B00
+0E00
+FF00
+61C0
+60C0
+6060
+6060
+6060
+6060
+6060
+6060
+6060
+6060
+6040
+6180
+FE00
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR dcaron
+ENCODING 271
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+3180
+1B00
+0E60
+04E0
+0060
+0060
+0060
+0F60
+31E0
+20E0
+6060
+6060
+6060
+6060
+70E0
+3960
+1E70
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR Dstroke
+ENCODING 272
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+FF00
+61C0
+60C0
+6060
+6060
+6060
+FC60
+6060
+6060
+6060
+6060
+6040
+6180
+FE00
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR dstroke
+ENCODING 273
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0060
+00E0
+0060
+07F0
+0060
+0F60
+31E0
+20E0
+6060
+6060
+6060
+6060
+70E0
+3960
+1E70
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR Emacron
+ENCODING 274
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+1F80
+1F80
+0000
+7FC0
+3040
+3040
+3000
+3000
+3080
+3F80
+3080
+3000
+3000
+3000
+3020
+3020
+7FE0
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR emacron
+ENCODING 275
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+1F80
+1F80
+0000
+0000
+0F00
+30C0
+6060
+6060
+7FE0
+6000
+6000
+3000
+1860
+0F80
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR Ebreve
+ENCODING 276
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0D80
+0D80
+0700
+7FC0
+3040
+3040
+3000
+3000
+3080
+3F80
+3080
+3000
+3000
+3000
+3020
+3020
+7FE0
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR ebreve
+ENCODING 277
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0D80
+0D80
+0700
+0000
+0000
+0F00
+30C0
+6060
+6060
+7FE0
+6000
+6000
+3000
+1860
+0F80
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR Edotaccent
+ENCODING 278
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0600
+0600
+0000
+7FC0
+3040
+3040
+3000
+3000
+3080
+3F80
+3080
+3000
+3000
+3000
+3020
+3020
+7FE0
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR edotaccent
+ENCODING 279
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0600
+0600
+0000
+0F00
+30C0
+6060
+6060
+7FE0
+6000
+6000
+3000
+1860
+0F80
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR Eogonek
+ENCODING 280
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+7FC0
+3040
+3040
+3000
+3000
+3080
+3F80
+3080
+3000
+3000
+3000
+3020
+3020
+7FE0
+00C0
+0180
+0300
+01E0
+0000
+ENDCHAR
+STARTCHAR eogonek
+ENCODING 281
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0F00
+30C0
+6060
+6060
+7FE0
+6000
+6000
+3000
+1860
+0F80
+0600
+0C00
+1800
+0F00
+0000
+ENDCHAR
+STARTCHAR Ecaron
+ENCODING 282
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+18C0
+0D80
+0700
+7FC0
+3040
+3040
+3000
+3000
+3080
+3F80
+3080
+3000
+3000
+3000
+3020
+3020
+7FE0
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR ecaron
+ENCODING 283
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+18C0
+0D80
+0700
+0200
+0000
+0F00
+30C0
+6060
+6060
+7FE0
+6000
+6000
+3000
+1860
+0F80
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR Gcircumflex
+ENCODING 284
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0700
+0D80
+0000
+0FC0
+1060
+2020
+2000
+6000
+6000
+6000
+6000
+61F0
+6060
+2060
+3060
+1860
+0F80
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR gcircumflex
+ENCODING 285
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0200
+0700
+0D80
+18C0
+0000
+1F20
+31E0
+60C0
+60C0
+60C0
+3180
+3F00
+6000
+7FC0
+3FE0
+2060
+4020
+4020
+7FC0
+3F80
+ENDCHAR
+STARTCHAR Gbreve
+ENCODING 286
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0D80
+0D80
+0700
+0FC0
+1060
+2020
+2000
+6000
+6000
+6000
+6000
+61F0
+6060
+2060
+3060
+1860
+0F80
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR gbreve
+ENCODING 287
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+1B00
+1B00
+0E00
+0000
+0000
+1F20
+31E0
+60C0
+60C0
+60C0
+3180
+3F00
+6000
+7FC0
+3FE0
+2060
+4020
+4020
+7FC0
+3F80
+ENDCHAR
+STARTCHAR Gdotaccent
+ENCODING 288
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0300
+0300
+0000
+0FC0
+1060
+2020
+2000
+6000
+6000
+6000
+6000
+61F0
+6060
+2060
+3060
+1860
+0F80
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR gdotaccent
+ENCODING 289
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0600
+0600
+0000
+1F20
+31E0
+60C0
+60C0
+60C0
+3180
+3F00
+6000
+7FC0
+3FE0
+2060
+4020
+4020
+7FC0
+3F80
+ENDCHAR
+STARTCHAR Gcommaaccent
+ENCODING 290
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0FC0
+1060
+2020
+2000
+6000
+6000
+6000
+6000
+61F0
+6060
+2060
+3060
+1860
+0F80
+0600
+0300
+0180
+0F00
+0000
+ENDCHAR
+STARTCHAR gcommaaccent
+ENCODING 291
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0600
+0C00
+0E00
+0E00
+0000
+1F20
+31E0
+60C0
+60C0
+60C0
+3180
+3F00
+6000
+7FC0
+3FE0
+2060
+4020
+4020
+7FC0
+3F80
+ENDCHAR
+STARTCHAR Hcircumflex
+ENCODING 292
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0700
+0D80
+0000
+F0F0
+6060
+6060
+6060
+6060
+6060
+7FE0
+6060
+6060
+6060
+6060
+6060
+6060
+F0F0
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR hcircumflex
+ENCODING 293
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0380
+16C0
+3000
+7000
+3000
+3000
+3780
+39C0
+30C0
+30C0
+30C0
+30C0
+30C0
+30C0
+30C0
+79E0
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR Hstroke
+ENCODING 294
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+F0F0
+6060
+6060
+FFF0
+6060
+6060
+7FE0
+6060
+6060
+6060
+6060
+6060
+6060
+F0F0
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR hstroke
+ENCODING 295
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+1000
+3000
+7000
+7E00
+3000
+3780
+39C0
+30C0
+30C0
+30C0
+30C0
+30C0
+30C0
+30C0
+79E0
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR Itilde
+ENCODING 296
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0E40
+1FC0
+1380
+0000
+1F80
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+1F80
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR itilde
+ENCODING 297
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+1C80
+3F80
+2700
+0000
+0000
+1E00
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+1F80
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR Imacron
+ENCODING 298
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+1F80
+1F80
+0000
+1F80
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+1F80
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR imacron
+ENCODING 299
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+1F80
+1F80
+0000
+0000
+1E00
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+1F80
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR Ibreve
+ENCODING 300
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+1980
+1980
+0F00
+1F80
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+1F80
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR ibreve
+ENCODING 301
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+1B00
+1B00
+0E00
+0000
+0000
+1E00
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+1F80
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR Iogonek
+ENCODING 302
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+1F80
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+1F80
+0600
+0C00
+1800
+0F00
+0000
+ENDCHAR
+STARTCHAR iogonek
+ENCODING 303
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0600
+0600
+0000
+0000
+1E00
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+1F80
+0600
+0C00
+1800
+0F00
+0000
+ENDCHAR
+STARTCHAR Idotaccent
+ENCODING 304
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0600
+0600
+0000
+1F80
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+1F80
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR dotlessi
+ENCODING 305
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+1E00
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+1F80
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR IJ
+ENCODING 306
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+78F0
+3060
+3060
+3060
+3060
+3060
+3060
+3060
+3060
+3060
+3060
+3060
+3360
+79C0
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR ij
+ENCODING 307
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+3060
+3060
+0000
+0000
+70E0
+3060
+3060
+3060
+3060
+3060
+3060
+3060
+3060
+7860
+0060
+0C60
+0E40
+07C0
+0380
+ENDCHAR
+STARTCHAR Jcircumflex
+ENCODING 308
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0E00
+1B00
+0000
+1F80
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0400
+3800
+3000
+ENDCHAR
+STARTCHAR jcircumflex
+ENCODING 309
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0200
+0700
+0D80
+18C0
+0000
+03C0
+00C0
+00C0
+00C0
+00C0
+00C0
+00C0
+00C0
+00C0
+00C0
+20C0
+30C0
+3880
+1F00
+0E00
+ENDCHAR
+STARTCHAR Kcommaaccent
+ENCODING 310
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+F0E0
+6180
+6300
+6600
+6C00
+7800
+7800
+7C00
+6E00
+6700
+6380
+61C0
+60E0
+F070
+0600
+0300
+0180
+0F00
+0000
+ENDCHAR
+STARTCHAR kcommaaccent
+ENCODING 311
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+6000
+E000
+6000
+6000
+6000
+61C0
+6300
+6600
+7C00
+7800
+7C00
+6E00
+6700
+6380
+F1E0
+0600
+0300
+0180
+0F00
+0000
+ENDCHAR
+STARTCHAR kra
+ENCODING 312
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+6000
+E1C0
+6300
+6600
+7C00
+7800
+7C00
+6E00
+6700
+6380
+F1E0
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR Lacute
+ENCODING 313
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0C00
+1800
+3000
+7800
+3000
+3000
+3000
+3000
+3000
+3000
+3000
+3000
+3000
+3000
+3020
+3020
+7FE0
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR lacute
+ENCODING 314
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0300
+0600
+0C00
+0000
+1E00
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+1F80
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR Lcommaaccent
+ENCODING 315
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+7800
+3000
+3000
+3000
+3000
+3000
+3000
+3000
+3000
+3000
+3000
+3020
+3020
+7FE0
+0600
+0300
+0180
+0F00
+0000
+ENDCHAR
+STARTCHAR lcommaaccent
+ENCODING 316
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+1E00
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+1F80
+0600
+0300
+0180
+0F00
+0000
+ENDCHAR
+STARTCHAR Lcaron
+ENCODING 317
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0C60
+06C0
+0380
+7900
+3000
+3000
+3000
+3000
+3000
+3000
+3000
+3000
+3000
+3000
+3020
+3020
+7FE0
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR lcaron
+ENCODING 318
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+18C0
+0D80
+0700
+0000
+1E00
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+1F80
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR Ldot
+ENCODING 319
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+7800
+3000
+3000
+3000
+3000
+3180
+3180
+3000
+3000
+3000
+3000
+3020
+3020
+7FE0
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR ldot
+ENCODING 320
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+1E00
+0600
+0600
+0600
+0600
+0600
+0660
+0660
+0600
+0600
+0600
+0600
+0600
+0600
+1F80
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR Lslash
+ENCODING 321
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+7800
+3000
+3000
+3400
+3800
+3000
+3000
+7000
+B000
+3000
+3000
+3020
+3020
+7FE0
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR lslash
+ENCODING 322
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+1E00
+0600
+0600
+0680
+0700
+0600
+0600
+0E00
+1600
+0600
+0600
+0600
+0600
+0600
+1F80
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR Nacute
+ENCODING 323
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0180
+0300
+0600
+C070
+6020
+7020
+7820
+5820
+4C20
+4620
+4720
+4320
+41A0
+40E0
+40E0
+4060
+E030
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR nacute
+ENCODING 324
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0180
+0300
+0600
+0000
+2780
+79C0
+30C0
+30C0
+30C0
+30C0
+30C0
+30C0
+30C0
+79E0
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR Ncommaaccent
+ENCODING 325
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+C070
+6020
+7020
+7820
+5820
+4C20
+4620
+4720
+4320
+41A0
+40E0
+40E0
+4060
+E030
+0600
+0300
+0180
+0F00
+0000
+ENDCHAR
+STARTCHAR ncommaaccent
+ENCODING 326
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+2780
+79C0
+30C0
+30C0
+30C0
+30C0
+30C0
+30C0
+30C0
+79E0
+0600
+0300
+0180
+0F00
+0000
+ENDCHAR
+STARTCHAR Ncaron
+ENCODING 327
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+18C0
+0D80
+0700
+C270
+6020
+7020
+7820
+5820
+4C20
+4620
+4720
+4320
+41A0
+40E0
+40E0
+4060
+E030
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR ncaron
+ENCODING 328
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+18C0
+0D80
+0700
+0200
+0000
+2780
+79C0
+30C0
+30C0
+30C0
+30C0
+30C0
+30C0
+30C0
+79E0
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR napostrophe
+ENCODING 329
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+E000
+E000
+6000
+6000
+4000
+8000
+2780
+79C0
+30C0
+30C0
+30C0
+30C0
+30C0
+30C0
+30C0
+79E0
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR Eng
+ENCODING 330
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+C070
+6020
+7020
+7820
+5820
+4C20
+4620
+4720
+4320
+41A0
+40E0
+40E0
+4060
+E060
+0060
+0060
+0040
+0380
+0300
+ENDCHAR
+STARTCHAR eng
+ENCODING 331
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+2780
+79C0
+30C0
+30C0
+30C0
+30C0
+30C0
+30C0
+30C0
+78C0
+00C0
+00C0
+0080
+0700
+0600
+ENDCHAR
+STARTCHAR Omacron
+ENCODING 332
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+1F80
+1F80
+0000
+0F00
+11C0
+20C0
+2060
+6060
+6060
+6060
+6060
+6060
+6060
+2040
+3040
+1880
+0F00
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR omacron
+ENCODING 333
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+1F80
+1F80
+0000
+0000
+0F80
+11C0
+20E0
+6060
+6060
+6060
+6060
+7040
+3880
+1F00
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR Obreve
+ENCODING 334
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0D80
+0D80
+0700
+0F00
+11C0
+20C0
+2060
+6060
+6060
+6060
+6060
+6060
+6060
+2040
+3040
+1880
+0F00
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR obreve
+ENCODING 335
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0D80
+0D80
+0700
+0000
+0F80
+11C0
+20E0
+6060
+6060
+6060
+6060
+7040
+3880
+1F00
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR Ohungarumlaut
+ENCODING 336
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0360
+06C0
+0D80
+0F00
+11C0
+20C0
+2060
+6060
+6060
+6060
+6060
+6060
+6060
+2040
+3040
+1880
+0F00
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR ohungarumlaut
+ENCODING 337
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+06C0
+0D80
+1B00
+0000
+0F80
+11C0
+20E0
+6060
+6060
+6060
+6060
+7040
+3880
+1F00
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR OE
+ENCODING 338
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+1FE0
+2620
+4620
+4600
+C600
+C610
+C7F0
+C610
+C600
+C600
+4600
+6610
+3610
+1FF0
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR oe
+ENCODING 339
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+1DE0
+2230
+4230
+C230
+C3F0
+C200
+C200
+E200
+7330
+3DE0
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR Racute
+ENCODING 340
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0180
+0300
+0600
+FF00
+6180
+60C0
+60C0
+60C0
+6080
+7F00
+7C00
+6E00
+6700
+6380
+61C0
+60E0
+F070
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR racute
+ENCODING 341
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0300
+0600
+0C00
+0000
+7380
+34C0
+38C0
+3000
+3000
+3000
+3000
+3000
+3000
+7800
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR Rcommaaccent
+ENCODING 342
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+FF00
+6180
+60C0
+60C0
+60C0
+6080
+7F00
+7C00
+6E00
+6700
+6380
+61C0
+60E0
+F070
+0600
+0300
+0180
+0F00
+0000
+ENDCHAR
+STARTCHAR rcommaaccent
+ENCODING 343
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+7380
+34C0
+38C0
+3000
+3000
+3000
+3000
+3000
+3000
+7800
+1800
+0C00
+0600
+3C00
+0000
+ENDCHAR
+STARTCHAR Rcaron
+ENCODING 344
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+3180
+1B00
+0E00
+FF00
+6180
+60C0
+60C0
+60C0
+6080
+7F00
+7C00
+6E00
+6700
+6380
+61C0
+60E0
+F070
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR rcaron
+ENCODING 345
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+3180
+1B00
+0E00
+0400
+0000
+7380
+34C0
+38C0
+3000
+3000
+3000
+3000
+3000
+3000
+7800
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR Sacute
+ENCODING 346
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0180
+0300
+0600
+1FE0
+3060
+6020
+6020
+7000
+3C00
+1E00
+0780
+01C0
+00E0
+4060
+4060
+60C0
+7F80
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR sacute
+ENCODING 347
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0180
+0300
+0600
+0000
+1FC0
+30C0
+3040
+3800
+1E00
+0780
+01C0
+20C0
+30C0
+3F80
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR Scircumflex
+ENCODING 348
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0700
+0D80
+0000
+1FE0
+3060
+6020
+6020
+7000
+3C00
+1E00
+0780
+01C0
+00E0
+4060
+4060
+60C0
+7F80
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR scircumflex
+ENCODING 349
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0200
+0700
+0D80
+18C0
+0000
+1FC0
+30C0
+3040
+3800
+1E00
+0780
+01C0
+20C0
+30C0
+3F80
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR Scedilla
+ENCODING 350
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+1FE0
+3060
+6020
+6020
+7000
+3C00
+1E00
+0780
+01C0
+00E0
+4060
+4060
+60C0
+7F80
+0600
+0300
+0180
+0F00
+0000
+ENDCHAR
+STARTCHAR scedilla
+ENCODING 351
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+1FC0
+30C0
+3040
+3800
+1E00
+0780
+01C0
+20C0
+30C0
+3F80
+0600
+0300
+0180
+0F00
+0000
+ENDCHAR
+STARTCHAR Scaron
+ENCODING 352
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+18C0
+0D80
+0700
+1FE0
+3060
+6020
+6020
+7000
+3C00
+1E00
+0780
+01C0
+00E0
+4060
+4060
+60C0
+7F80
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR scaron
+ENCODING 353
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+18C0
+0D80
+0700
+0200
+0000
+1FC0
+30C0
+3040
+3800
+1E00
+0780
+01C0
+20C0
+30C0
+3F80
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR Tcedilla
+ENCODING 354
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+7FE0
+4620
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+1F80
+0600
+0300
+0180
+0F00
+0000
+ENDCHAR
+STARTCHAR tcedilla
+ENCODING 355
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0400
+0400
+0C00
+7FC0
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C20
+0E40
+0780
+0600
+0300
+0180
+0F00
+0000
+ENDCHAR
+STARTCHAR Tcaron
+ENCODING 356
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+18C0
+0D80
+0700
+7FE0
+4620
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+1F80
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR tcaron
+ENCODING 357
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+3180
+1B00
+0E00
+0000
+0400
+0400
+0C00
+7FC0
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C20
+0E40
+0780
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR Tstroke
+ENCODING 358
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+7FE0
+4620
+0600
+0600
+0600
+0600
+3FC0
+0600
+0600
+0600
+0600
+0600
+0600
+1F80
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR tstroke
+ENCODING 359
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0400
+0400
+0C00
+7FC0
+0C00
+0C00
+3F80
+0C00
+0C00
+0C00
+0C20
+0E40
+0780
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR Utilde
+ENCODING 360
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0E40
+1FC0
+1380
+F070
+6020
+6020
+6020
+6020
+6020
+6020
+6020
+6020
+6020
+6020
+7040
+3FC0
+1F80
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR utilde
+ENCODING 361
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0E40
+1FC0
+1380
+0000
+79E0
+30C0
+30C0
+30C0
+30C0
+30C0
+30C0
+30C0
+39C0
+1E60
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR Umacron
+ENCODING 362
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+1F80
+1F80
+0000
+F070
+6020
+6020
+6020
+6020
+6020
+6020
+6020
+6020
+6020
+6020
+7040
+3FC0
+1F80
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR umacron
+ENCODING 363
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+1F80
+1F80
+0000
+0000
+79E0
+30C0
+30C0
+30C0
+30C0
+30C0
+30C0
+30C0
+39C0
+1E60
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR Ubreve
+ENCODING 364
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0D80
+0D80
+0700
+F070
+6020
+6020
+6020
+6020
+6020
+6020
+6020
+6020
+6020
+6020
+7040
+3FC0
+1F80
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR ubreve
+ENCODING 365
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0D80
+0D80
+0700
+0000
+79E0
+30C0
+30C0
+30C0
+30C0
+30C0
+30C0
+30C0
+39C0
+1E60
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR Uring
+ENCODING 366
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0700
+0D80
+0D80
+F770
+6020
+6020
+6020
+6020
+6020
+6020
+6020
+6020
+6020
+6020
+7040
+3FC0
+1F80
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR uring
+ENCODING 367
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0700
+0D80
+0D80
+0700
+0000
+79E0
+30C0
+30C0
+30C0
+30C0
+30C0
+30C0
+30C0
+39C0
+1E60
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR Uhungarumlaut
+ENCODING 368
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+06C0
+0D80
+1B00
+F070
+6020
+6020
+6020
+6020
+6020
+6020
+6020
+6020
+6020
+6020
+7040
+3FC0
+1F80
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR uhungarumlaut
+ENCODING 369
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+06C0
+0D80
+1B00
+0000
+79E0
+30C0
+30C0
+30C0
+30C0
+30C0
+30C0
+30C0
+39C0
+1E60
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR Uogonek
+ENCODING 370
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+F070
+6020
+6020
+6020
+6020
+6020
+6020
+6020
+6020
+6020
+6020
+7040
+3FC0
+1F80
+0180
+0300
+0600
+03C0
+0000
+ENDCHAR
+STARTCHAR uogonek
+ENCODING 371
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+79E0
+30C0
+30C0
+30C0
+30C0
+30C0
+30C0
+30C0
+39C0
+1E60
+00C0
+0180
+0300
+01E0
+0000
+ENDCHAR
+STARTCHAR Wcircumflex
+ENCODING 372
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0700
+0D80
+0000
+FEF0
+6620
+6620
+6620
+7620
+7740
+3340
+3740
+3BC0
+3B80
+1980
+1980
+1980
+1980
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR wcircumflex
+ENCODING 373
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0200
+0700
+0D80
+18C0
+0000
+FF70
+6620
+6620
+6620
+3740
+3B40
+3B40
+1980
+1980
+1980
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR Ycircumflex
+ENCODING 374
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0700
+0D80
+0000
+F070
+6020
+3040
+1880
+1880
+0D00
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0F00
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR ycircumflex
+ENCODING 375
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0200
+0700
+0D80
+18C0
+0000
+F0F0
+6020
+3040
+3040
+1880
+1880
+0D00
+0D00
+0600
+0600
+0400
+0C00
+0800
+7800
+7000
+ENDCHAR
+STARTCHAR Ydieresis
+ENCODING 376
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+1980
+1980
+0000
+F070
+6020
+3040
+1880
+1880
+0D00
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0F00
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR Zacute
+ENCODING 377
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0180
+0300
+0600
+3FE0
+20C0
+00C0
+0180
+0180
+0300
+0300
+0600
+0600
+0C00
+0C00
+1800
+1820
+3FE0
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR zacute
+ENCODING 378
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0300
+0600
+0C00
+0000
+7FE0
+60E0
+41C0
+0380
+0700
+0E00
+1C00
+3820
+7060
+7FE0
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR Zdotaccent
+ENCODING 379
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0300
+0300
+0000
+3FE0
+20C0
+00C0
+0180
+0180
+0300
+0300
+0600
+0600
+0C00
+0C00
+1800
+1820
+3FE0
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR zdotaccent
+ENCODING 380
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0600
+0600
+0000
+7FE0
+60E0
+41C0
+0380
+0700
+0E00
+1C00
+3820
+7060
+7FE0
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR Zcaron
+ENCODING 381
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+18C0
+0D80
+0700
+3FE0
+20C0
+00C0
+0180
+0180
+0300
+0300
+0600
+0600
+0C00
+0C00
+1800
+1820
+3FE0
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR zcaron
+ENCODING 382
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+18C0
+0D80
+0700
+0200
+0000
+7FE0
+60E0
+41C0
+0380
+0700
+0E00
+1C00
+3820
+7060
+7FE0
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR longs
+ENCODING 383
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0380
+04C0
+04C0
+0C00
+0C00
+0C00
+0C00
+3C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+1E00
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR gravecomb
+ENCODING 768
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0C00
+0600
+0300
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR acutecomb
+ENCODING 769
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0300
+0600
+0C00
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR circumflexcomb
+ENCODING 770
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0400
+0E00
+1B00
+3180
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR tildecomb
+ENCODING 771
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+1C80
+3F80
+2700
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR macroncomb
+ENCODING 772
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+1F80
+1F80
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR brevecomb
+ENCODING 774
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+1B00
+1B00
+0E00
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR diaresiscomb
+ENCODING 776
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+1980
+1980
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR ringcomb
+ENCODING 778
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0E00
+1B00
+1B00
+0E00
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR caroncomb
+ENCODING 780
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+3180
+1B00
+0E00
+0400
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR cedillacomb
+ENCODING 807
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0600
+0300
+0180
+0F00
+0000
+ENDCHAR
+STARTCHAR ogonekcomb
+ENCODING 808
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0600
+0C00
+1800
+0F00
+0000
+ENDCHAR
+STARTCHAR Combining Low Line
+ENCODING 818
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+FFF0
+FFF0
+ENDCHAR
+STARTCHAR hyphen
+ENCODING 8208
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+3FC0
+3FC0
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR char8209
+ENCODING 8209
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+3FC0
+3FC0
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR figuredash
+ENCODING 8210
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+3FC0
+3FC0
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR endash
+ENCODING 8211
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+3FC0
+3FC0
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR emdash
+ENCODING 8212
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+7FE0
+7FE0
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR afii00208
+ENCODING 8213
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+7FE0
+7FE0
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR dblverticalbar
+ENCODING 8214
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+1980
+1980
+1980
+1980
+1980
+1980
+1980
+1980
+1980
+1980
+1980
+1980
+1980
+1980
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR dbllowline
+ENCODING 8215
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+3FC0
+0000
+0000
+3FC0
+ENDCHAR
+STARTCHAR quoteleft
+ENCODING 8216
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0100
+0300
+0600
+0C00
+0C00
+0F00
+0F00
+0600
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR quoteright
+ENCODING 8217
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0600
+0F00
+0F00
+0300
+0300
+0600
+0C00
+0800
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR quotesinglebase
+ENCODING 8218
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0600
+0F00
+0F00
+0300
+0300
+0600
+0C00
+0800
+0000
+0000
+ENDCHAR
+STARTCHAR quotereversed
+ENCODING 8219
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0600
+0F00
+0F00
+0C00
+0C00
+0600
+0300
+0100
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR quotedblleft
+ENCODING 8220
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0CC0
+1980
+1980
+1980
+1980
+1980
+1980
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR quotedblright
+ENCODING 8221
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+1980
+1980
+1980
+1980
+1980
+1980
+3300
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR quotedblbase
+ENCODING 8222
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+1980
+1980
+1980
+1980
+1980
+3300
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR char8223
+ENCODING 8223
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+1980
+1980
+1980
+1980
+1980
+1980
+0CC0
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR dagger
+ENCODING 8224
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0600
+0600
+0600
+3FC0
+3FC0
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR daggerdbl
+ENCODING 8225
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0600
+0600
+0600
+3FC0
+3FC0
+0600
+0600
+0600
+0600
+3FC0
+3FC0
+0600
+0600
+0600
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR bullet
+ENCODING 8226
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0700
+0F80
+0F80
+0F80
+0700
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR ellipsis
+ENCODING 8230
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+2220
+7770
+7770
+2220
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR perthousand
+ENCODING 8240
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+3180
+4980
+4B00
+3300
+0600
+0600
+0C00
+0C00
+1800
+1800
+36C0
+3920
+6920
+66C0
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR minute
+ENCODING 8242
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0600
+0600
+0600
+0600
+0600
+0600
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR second
+ENCODING 8243
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+1980
+1980
+1980
+1980
+1980
+1980
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR guilsinglleft
+ENCODING 8249
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0180
+0300
+0600
+0C00
+1800
+0C00
+0600
+0300
+0180
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR guilsinglright
+ENCODING 8250
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+1800
+0C00
+0600
+0300
+0180
+0300
+0600
+0C00
+1800
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR exclamdbl
+ENCODING 8252
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+1980
+1980
+1980
+1980
+1980
+1980
+1980
+1980
+1980
+1980
+1980
+0000
+0000
+1980
+1980
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR overline
+ENCODING 8254
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+3FC0
+3FC0
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR Euro
+ENCODING 8364
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0F80
+1040
+2020
+2000
+6000
+FF80
+6000
+6000
+FF00
+6000
+2000
+3000
+1840
+0F80
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR minus
+ENCODING 8722
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+3FC0
+3FC0
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR char9146
+ENCODING 9146
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+FFF0
+FFF0
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR char9147
+ENCODING 9147
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+FFF0
+FFF0
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR char9148
+ENCODING 9148
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+FFF0
+FFF0
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR char9149
+ENCODING 9149
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+FFF0
+FFF0
+ENDCHAR
+STARTCHAR char18
+ENCODING 9472
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+FFF0
+FFF0
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR char18
+ENCODING 9473
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+FFF0
+FFF0
+FFF0
+FFF0
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR char9474
+ENCODING 9474
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+ENDCHAR
+STARTCHAR char9474
+ENCODING 9475
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+ENDCHAR
+STARTCHAR char13
+ENCODING 9484
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+07F0
+07F0
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+ENDCHAR
+STARTCHAR char13
+ENCODING 9485
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+07F0
+07F0
+07F0
+07F0
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+ENDCHAR
+STARTCHAR char13
+ENCODING 9486
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0FF0
+0FF0
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+ENDCHAR
+STARTCHAR char13
+ENCODING 9487
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0FF0
+0FF0
+0FF0
+0FF0
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+ENDCHAR
+STARTCHAR char12
+ENCODING 9488
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+FE00
+FE00
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+ENDCHAR
+STARTCHAR char12
+ENCODING 9489
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+FE00
+FE00
+FE00
+FE00
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+ENDCHAR
+STARTCHAR char12
+ENCODING 9490
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+FF00
+FF00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+ENDCHAR
+STARTCHAR char12
+ENCODING 9491
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+FF00
+FF00
+FF00
+FF00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+ENDCHAR
+STARTCHAR char14
+ENCODING 9492
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+07F0
+07F0
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR char14
+ENCODING 9493
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+07F0
+07F0
+07F0
+07F0
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR char14
+ENCODING 9494
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0FF0
+0FF0
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR char14
+ENCODING 9495
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0FF0
+0FF0
+0FF0
+0FF0
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR char11
+ENCODING 9496
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+FE00
+FE00
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR char11
+ENCODING 9497
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+FE00
+FE00
+FE00
+FE00
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR char11
+ENCODING 9498
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+FF00
+FF00
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR char11
+ENCODING 9499
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+FF00
+FF00
+FF00
+FF00
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR char21
+ENCODING 9500
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+07F0
+07F0
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+ENDCHAR
+STARTCHAR char21
+ENCODING 9501
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+07F0
+07F0
+07F0
+07F0
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+ENDCHAR
+STARTCHAR char21
+ENCODING 9502
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0FF0
+0FF0
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+ENDCHAR
+STARTCHAR char21
+ENCODING 9503
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0FF0
+0FF0
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+ENDCHAR
+STARTCHAR char21
+ENCODING 9504
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0FF0
+0FF0
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+ENDCHAR
+STARTCHAR char21
+ENCODING 9505
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0FF0
+0FF0
+0FF0
+0FF0
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+ENDCHAR
+STARTCHAR char21
+ENCODING 9506
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0FF0
+0FF0
+0FF0
+0FF0
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+ENDCHAR
+STARTCHAR char21
+ENCODING 9507
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0FF0
+0FF0
+0FF0
+0FF0
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+ENDCHAR
+STARTCHAR char22
+ENCODING 9508
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+FE00
+FE00
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+ENDCHAR
+STARTCHAR char22
+ENCODING 9509
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+FE00
+FE00
+FE00
+FE00
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+ENDCHAR
+STARTCHAR char22
+ENCODING 9510
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+FF00
+FF00
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+ENDCHAR
+STARTCHAR char22
+ENCODING 9511
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+FF00
+FF00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+ENDCHAR
+STARTCHAR char22
+ENCODING 9512
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+FF00
+FF00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+ENDCHAR
+STARTCHAR char22
+ENCODING 9513
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+FF00
+FF00
+FF00
+FF00
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+ENDCHAR
+STARTCHAR char22
+ENCODING 9514
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+FF00
+FF00
+FF00
+FF00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+ENDCHAR
+STARTCHAR char22
+ENCODING 9515
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+FF00
+FF00
+FF00
+FF00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+ENDCHAR
+STARTCHAR char24
+ENCODING 9516
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+FFF0
+FFF0
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+ENDCHAR
+STARTCHAR char24
+ENCODING 9517
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+FE00
+FFF0
+FFF0
+FE00
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+ENDCHAR
+STARTCHAR char24
+ENCODING 9518
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+07F0
+FFF0
+FFF0
+07F0
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+ENDCHAR
+STARTCHAR char24
+ENCODING 9519
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+FFF0
+FFF0
+FFF0
+FFF0
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+ENDCHAR
+STARTCHAR char24
+ENCODING 9520
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+FFF0
+FFF0
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+ENDCHAR
+STARTCHAR char24
+ENCODING 9521
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+FF00
+FFF0
+FFF0
+FF00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+ENDCHAR
+STARTCHAR char24
+ENCODING 9522
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0FF0
+FFF0
+FFF0
+0FF0
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+ENDCHAR
+STARTCHAR char24
+ENCODING 9523
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+FFF0
+FFF0
+FFF0
+FFF0
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+ENDCHAR
+STARTCHAR char23
+ENCODING 9524
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+FFF0
+FFF0
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR char23
+ENCODING 9525
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+FE00
+FFF0
+FFF0
+FE00
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR char23
+ENCODING 9526
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+07F0
+FFF0
+FFF0
+07F0
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR char23
+ENCODING 9527
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+FFF0
+FFF0
+FFF0
+FFF0
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR char23
+ENCODING 9528
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+FFF0
+FFF0
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR char23
+ENCODING 9529
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+FF00
+FFF0
+FFF0
+FF00
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR char23
+ENCODING 9530
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0FF0
+FFF0
+FFF0
+0FF0
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR char23
+ENCODING 9531
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+FFF0
+FFF0
+FFF0
+FFF0
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR char9532
+ENCODING 9532
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+FFF0
+FFF0
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+ENDCHAR
+STARTCHAR char9532
+ENCODING 9533
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+FE00
+FFF0
+FFF0
+FE00
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+ENDCHAR
+STARTCHAR char9532
+ENCODING 9534
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+07F0
+FFF0
+FFF0
+07F0
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+ENDCHAR
+STARTCHAR char9532
+ENCODING 9535
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+FFF0
+FFF0
+FFF0
+FFF0
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+ENDCHAR
+STARTCHAR char9532
+ENCODING 9536
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+FFF0
+FFF0
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+ENDCHAR
+STARTCHAR char9532
+ENCODING 9537
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+FFF0
+FFF0
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+ENDCHAR
+STARTCHAR char9532
+ENCODING 9538
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+FFF0
+FFF0
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+ENDCHAR
+STARTCHAR char9532
+ENCODING 9539
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+FF00
+FFF0
+FFF0
+FE00
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+ENDCHAR
+STARTCHAR char9532
+ENCODING 9540
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0FF0
+FFF0
+FFF0
+07F0
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+ENDCHAR
+STARTCHAR char9532
+ENCODING 9541
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+FE00
+FFF0
+FFF0
+FF00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+ENDCHAR
+STARTCHAR char9532
+ENCODING 9542
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+07F0
+FFF0
+FFF0
+0FF0
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+ENDCHAR
+STARTCHAR char9532
+ENCODING 9543
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+FFF0
+FFF0
+FFF0
+FFF0
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+ENDCHAR
+STARTCHAR char9532
+ENCODING 9544
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+FFF0
+FFF0
+FFF0
+FFF0
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+ENDCHAR
+STARTCHAR char9532
+ENCODING 9545
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+FF00
+FFF0
+FFF0
+FF00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+ENDCHAR
+STARTCHAR char9532
+ENCODING 9546
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0FF0
+FFF0
+FFF0
+0FF0
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+ENDCHAR
+STARTCHAR char9532
+ENCODING 9547
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+FFF0
+FFF0
+FFF0
+FFF0
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+ENDCHAR
+STARTCHAR char9552
+ENCODING 9552
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+FFF0
+0000
+0000
+FFF0
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR char9552
+ENCODING 9553
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0900
+0900
+0900
+0900
+0900
+0900
+0900
+0900
+0900
+0900
+0900
+0900
+0900
+0900
+0900
+0900
+0900
+0900
+0900
+0900
+0900
+0900
+ENDCHAR
+STARTCHAR char9552
+ENCODING 9554
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+07F0
+0600
+0600
+07F0
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+ENDCHAR
+STARTCHAR char9552
+ENCODING 9555
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0FF0
+0FF0
+0900
+0900
+0900
+0900
+0900
+0900
+0900
+0900
+0900
+0900
+ENDCHAR
+STARTCHAR char9552
+ENCODING 9556
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0FF0
+0800
+0800
+09F0
+0900
+0900
+0900
+0900
+0900
+0900
+0900
+0900
+0900
+ENDCHAR
+STARTCHAR char9552
+ENCODING 9557
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+FE00
+0600
+0600
+FE00
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+ENDCHAR
+STARTCHAR char9552
+ENCODING 9558
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+FF00
+FF00
+0900
+0900
+0900
+0900
+0900
+0900
+0900
+0900
+0900
+0900
+ENDCHAR
+STARTCHAR char9552
+ENCODING 9559
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+FF00
+0100
+0100
+F900
+0900
+0900
+0900
+0900
+0900
+0900
+0900
+0900
+0900
+ENDCHAR
+STARTCHAR char9552
+ENCODING 9560
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+07F0
+0600
+0600
+07F0
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR char9552
+ENCODING 9561
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0900
+0900
+0900
+0900
+0900
+0900
+0900
+0900
+0900
+0900
+0FF0
+0FF0
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR char9552
+ENCODING 9562
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0900
+0900
+0900
+0900
+0900
+0900
+0900
+0900
+0900
+09F0
+0800
+0800
+0FF0
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR char9552
+ENCODING 9563
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+FE00
+0600
+0600
+FE00
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR char9552
+ENCODING 9564
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0900
+0900
+0900
+0900
+0900
+0900
+0900
+0900
+0900
+0900
+FF00
+FF00
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR char9552
+ENCODING 9565
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0900
+0900
+0900
+0900
+0900
+0900
+0900
+0900
+0900
+F900
+0100
+0100
+FF00
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR char9552
+ENCODING 9566
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+07F0
+0600
+0600
+07F0
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+ENDCHAR
+STARTCHAR char9552
+ENCODING 9567
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0900
+0900
+0900
+0900
+0900
+0900
+0900
+0900
+0900
+0900
+0FF0
+0FF0
+0900
+0900
+0900
+0900
+0900
+0900
+0900
+0900
+0900
+0900
+ENDCHAR
+STARTCHAR char9552
+ENCODING 9568
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0900
+0900
+0900
+0900
+0900
+0900
+0900
+0900
+0900
+09F0
+0800
+0800
+09F0
+0900
+0900
+0900
+0900
+0900
+0900
+0900
+0900
+0900
+ENDCHAR
+STARTCHAR char9552
+ENCODING 9569
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+FE00
+0600
+0600
+FE00
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+ENDCHAR
+STARTCHAR char9552
+ENCODING 9570
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0900
+0900
+0900
+0900
+0900
+0900
+0900
+0900
+0900
+0900
+FF00
+FF00
+0900
+0900
+0900
+0900
+0900
+0900
+0900
+0900
+0900
+0900
+ENDCHAR
+STARTCHAR char9552
+ENCODING 9571
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0900
+0900
+0900
+0900
+0900
+0900
+0900
+0900
+0900
+F900
+0100
+0100
+F900
+0900
+0900
+0900
+0900
+0900
+0900
+0900
+0900
+0900
+ENDCHAR
+STARTCHAR char9552
+ENCODING 9572
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+FFF0
+0000
+0000
+FFF0
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+ENDCHAR
+STARTCHAR char9552
+ENCODING 9573
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+FFF0
+FFF0
+0900
+0900
+0900
+0900
+0900
+0900
+0900
+0900
+0900
+0900
+ENDCHAR
+STARTCHAR char9552
+ENCODING 9574
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+FFF0
+0000
+0000
+F9F0
+0900
+0900
+0900
+0900
+0900
+0900
+0900
+0900
+0900
+ENDCHAR
+STARTCHAR char9552
+ENCODING 9575
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+FFF0
+0000
+0000
+FFF0
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR char9552
+ENCODING 9576
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0900
+0900
+0900
+0900
+0900
+0900
+0900
+0900
+0900
+0900
+FFF0
+FFF0
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR char9552
+ENCODING 9577
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0900
+0900
+0900
+0900
+0900
+0900
+0900
+0900
+0900
+F9F0
+0000
+0000
+FFF0
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR char9552
+ENCODING 9578
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+FFF0
+0600
+0600
+FFF0
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+ENDCHAR
+STARTCHAR char9552
+ENCODING 9579
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0900
+0900
+0900
+0900
+0900
+0900
+0900
+0900
+0900
+0900
+FFF0
+FFF0
+0900
+0900
+0900
+0900
+0900
+0900
+0900
+0900
+0900
+0900
+ENDCHAR
+STARTCHAR char9552
+ENCODING 9580
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0900
+0900
+0900
+0900
+0900
+0900
+0900
+0900
+0900
+F9F0
+0000
+0000
+F9F0
+0900
+0900
+0900
+0900
+0900
+0900
+0900
+0900
+0900
+ENDCHAR
+STARTCHAR char13
+ENCODING 9581
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0070
+01F0
+0380
+0300
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+ENDCHAR
+STARTCHAR char13
+ENCODING 9582
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+E000
+F800
+1C00
+0C00
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+ENDCHAR
+STARTCHAR char13
+ENCODING 9583
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0C00
+1C00
+F800
+E000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR char13
+ENCODING 9584
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0600
+0300
+0380
+01F0
+0070
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR ltshade
+ENCODING 9617
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+AAA0
+0000
+AAA0
+0000
+AAA0
+0000
+AAA0
+0000
+AAA0
+0000
+AAA0
+0000
+AAA0
+0000
+AAA0
+0000
+AAA0
+0000
+AAA0
+0000
+AAA0
+0000
+ENDCHAR
+STARTCHAR shade
+ENCODING 9618
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+3330
+CCC0
+3330
+CCC0
+3330
+CCC0
+3330
+CCC0
+3330
+CCC0
+3330
+CCC0
+3330
+CCC0
+3330
+CCC0
+3330
+CCC0
+3330
+CCC0
+3330
+CCC0
+ENDCHAR
+STARTCHAR dkshade
+ENCODING 9619
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+FFF0
+AAA0
+FFF0
+AAA0
+FFF0
+AAA0
+FFF0
+AAA0
+FFF0
+AAA0
+FFF0
+AAA0
+FFF0
+AAA0
+FFF0
+AAA0
+FFF0
+AAA0
+FFF0
+AAA0
+FFF0
+AAA0
+ENDCHAR
+STARTCHAR blackdiamond
+ENCODING 9670
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+0000
+0000
+0000
+0600
+0F00
+1F80
+3FC0
+7FE0
+FFF0
+FFF0
+7FE0
+3FC0
+1F80
+0F00
+0600
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+STARTCHAR char65534
+ENCODING 65533
+SWIDTH 631 0
+DWIDTH 12 0
+BBX 12 22 0 -5
+BITMAP
+0000
+0000
+7FE0
+7FE0
+6060
+6060
+6060
+6060
+6060
+6060
+6060
+6060
+6060
+6060
+6060
+7FE0
+7FE0
+0000
+0000
+0000
+0000
+0000
+ENDCHAR
+ENDFONT
index b016eb1b29dd92e873a80f57a3ef696b84267139..7b873acc7bba79bda19ad5ea6717be3bfe7998fd 100644 (file)
@@ -1,4 +1,4 @@
-/* xscreensaver, Copyright (c) 1992-2017 Jamie Zawinski <jwz@jwz.org>
+/* xscreensaver, Copyright (c) 1992-2019 Jamie Zawinski <jwz@jwz.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -41,7 +41,7 @@ ios_load_random_image (void (*callback) (void *uiimage, const char *fn,
 
   // The rest of this is synchronous.
 
-  PHFetchOptions *opt = [PHFetchOptions new];
+  PHFetchOptions *opt = [[PHFetchOptions new] autorelease];
   opt.includeAssetSourceTypes = (PHAssetSourceTypeUserLibrary |
                                  PHAssetSourceTypeCloudShared |
                                  PHAssetSourceTypeiTunesSynced);
index 92ca6f081f3d0786f728e8ed1868e48999b59bd4..cfede1e77860f31839ee2acf5200ca53358d912f 100644 (file)
@@ -9,7 +9,7 @@
        <key>CFBundleExecutable</key>
        <string>${EXECUTABLE_NAME}</string>
        <key>CFBundleGetInfoString</key>
-       <string>5.42</string>
+       <string>5.43</string>
        <key>CFBundleIcons</key>
        <dict/>
        <key>CFBundleIcons~ipad</key>
        <key>CFBundleInfoDictionaryVersion</key>
        <string>6.0</string>
        <key>CFBundleLongVersionString</key>
-       <string>5.42</string>
+       <string>5.43</string>
        <key>CFBundleName</key>
        <string>${PRODUCT_NAME}</string>
        <key>CFBundlePackageType</key>
        <string>APPL</string>
        <key>CFBundleShortVersionString</key>
-       <string>5.42</string>
+       <string>5.43</string>
        <key>CFBundleSignature</key>
        <string>????</string>
        <key>CFBundleVersion</key>
-       <string>5.42</string>
+       <string>5.43</string>
        <key>LSRequiresIPhoneOS</key>
        <true/>
        <key>NSHumanReadableCopyright</key>
-       <string>5.42</string>
+       <string>5.43</string>
        <key>NSMainNibFile</key>
        <string>iSaverRunner</string>
        <key>UIAppFonts</key>
@@ -42,6 +42,7 @@
                <string>YearlReg.ttf</string>
                <string>PxPlus_IBM_VGA8.ttf</string>
                <string>luximr.ttf</string>
+               <string>gallant12x22.ttf</string>
        </array>
        <key>UILaunchStoryboardName</key>
        <string>LaunchScreen</string>
index fa92beb3a962e2ef84cb36da926d478e163aef3e..baa38ea59e2b5337ce3ee194159a5dfa29c24ad6 100755 (executable)
@@ -1,5 +1,5 @@
 #!/bin/sh
-# XScreenSaver, Copyright © 2013-2016 Jamie Zawinski <jwz@jwz.org>
+# XScreenSaver, Copyright © 2013-2018 Jamie Zawinski <jwz@jwz.org>
 #
 # Permission to use, copy, modify, distribute, and sell this software and its
 # documentation for any purpose is hereby granted without fee, provided that
@@ -118,11 +118,16 @@ for f in *.{saver,app} "$UPDATER_SRC" ; do
     cp -pR "$f" "$DD" || error "Unable to install $f in $DST/"
   fi
 
+  # The files in the DMG might be owned by "jwz:staff" (503:20)
+  chown root:wheel "$DD"
+
   # Eliminate the "this was downloaded from the interweb" warning.
+  # (This trick probably doesn't work.)
   xattr -r -d com.apple.quarantine "$DD"
 
   if [ "$EXT" = "app" ]; then
     # Eliminate the "this is from an unknown developer" warning.
+    # (This trick probably doesn't work.)
     spctl --add "$DD"
   fi
 
index c2e5b88be556d7dbf6707dd8f4373a9b492f2241..6cb8b7f66b6a3f6061ab1903666cb86cfcf10a1a 100644 (file)
@@ -1,5 +1,5 @@
 /* Generated file, do not edit.
-   Created: Tue Oct 23 19:02:07 2018 by build-fntable.pl 1.6.
+   Created: Sat Apr 27 19:53:47 2019 by build-fntable.pl 1.7.
  */
 
 #import <Foundation/Foundation.h>
@@ -58,6 +58,7 @@ extern struct xscreensaver_function_table
  dangerball_xscreensaver_function_table,
  decayscreen_xscreensaver_function_table,
  deco_xscreensaver_function_table,
+ deepstars_xscreensaver_function_table,
  deluxe_xscreensaver_function_table,
  demon_xscreensaver_function_table,
  discoball_xscreensaver_function_table,
@@ -104,6 +105,7 @@ extern struct xscreensaver_function_table
  gltext_xscreensaver_function_table,
  goop_xscreensaver_function_table,
  grav_xscreensaver_function_table,
+ gravitywell_xscreensaver_function_table,
  greynetic_xscreensaver_function_table,
  halftone_xscreensaver_function_table,
  halo_xscreensaver_function_table,
@@ -298,6 +300,7 @@ NSDictionary *make_function_table_dict(void)
        [NSValue valueWithPointer:&dangerball_xscreensaver_function_table], @"dangerball",
        [NSValue valueWithPointer:&decayscreen_xscreensaver_function_table], @"decayscreen",
        [NSValue valueWithPointer:&deco_xscreensaver_function_table], @"deco",
+       [NSValue valueWithPointer:&deepstars_xscreensaver_function_table], @"deepstars",
        [NSValue valueWithPointer:&deluxe_xscreensaver_function_table], @"deluxe",
        [NSValue valueWithPointer:&demon_xscreensaver_function_table], @"demon",
        [NSValue valueWithPointer:&discoball_xscreensaver_function_table], @"discoball",
@@ -344,6 +347,7 @@ NSDictionary *make_function_table_dict(void)
        [NSValue valueWithPointer:&gltext_xscreensaver_function_table], @"gltext",
        [NSValue valueWithPointer:&goop_xscreensaver_function_table], @"goop",
        [NSValue valueWithPointer:&grav_xscreensaver_function_table], @"grav",
+       [NSValue valueWithPointer:&gravitywell_xscreensaver_function_table], @"gravitywell",
        [NSValue valueWithPointer:&greynetic_xscreensaver_function_table], @"greynetic",
        [NSValue valueWithPointer:&halftone_xscreensaver_function_table], @"halftone",
        [NSValue valueWithPointer:&halo_xscreensaver_function_table], @"halo",
index 5db53114d594cf77d90b56e01c5b57a8a2a5e240..4759b05bdb6c9b27d37e1fee3300182f7d44b415 100644 (file)
@@ -1,4 +1,4 @@
-/* xscreensaver, Copyright (c) 2012-2016 Jamie Zawinski <jwz@jwz.org>
+/* xscreensaver, Copyright (c) 2012-2019 Jamie Zawinski <jwz@jwz.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -62,6 +62,13 @@ textclient_mobile_date_string (void)
   NSString *_result;
 }
 
+- (void)dealloc
+{
+  [_url release];
+  [_result release];
+  [super dealloc];
+}
+
 + (TextLoader *) sharedLoader
 {
   static TextLoader *singleton = nil;
index adb9fd1d4baac638074b494739d573173bf13139..8179ca2c0fbcb23ec578cae7153914b50fc2a243 100644 (file)
                                AFEE106B1D13424C00AAC8F7 /* PBXTargetDependency */,
                                AF4FF4D70D52CD0D00666F98 /* PBXTargetDependency */,
                                AF777A4109B660B500EA3033 /* PBXTargetDependency */,
+                               AFF449FE22754B5600DB8EDB /* PBXTargetDependency */,
                                AF3938381D0FBF5300205406 /* PBXTargetDependency */,
                                AF777A3F09B660B500EA3033 /* PBXTargetDependency */,
                                AFEC23EB1CB6ED0800DE138F /* PBXTargetDependency */,
                                AF777A1D09B660B300EA3033 /* PBXTargetDependency */,
                                AF777A1B09B660B300EA3033 /* PBXTargetDependency */,
                                AF777A1909B660B300EA3033 /* PBXTargetDependency */,
+                               AF6C6D91226AE6780065A748 /* PBXTargetDependency */,
                                AF62D6392180087500C57C42 /* PBXTargetDependency */,
                                AF1B0FC51D7AB5740011DBE4 /* PBXTargetDependency */,
                                AF4F10F0143450C300E34F3F /* PBXTargetDependency */,
                AF21078D1FD23D5000B61EA9 /* esper.c in Sources */ = {isa = PBXBuildFile; fileRef = AF21078B1FD23D5000B61EA9 /* esper.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; };
                AF2107901FD23FEC00B61EA9 /* OCRAStd.otf in Resources */ = {isa = PBXBuildFile; fileRef = AFEC68361BD6CA85004C1B64 /* OCRAStd.otf */; };
                AF241F83107C38DF00046A84 /* dropshadow.c in Sources */ = {isa = PBXBuildFile; fileRef = AF241F81107C38DF00046A84 /* dropshadow.c */; };
+               AF2C2A8A22754C31002112B9 /* deepstars.c in Sources */ = {isa = PBXBuildFile; fileRef = AFF449F722754B2300DB8EDB /* deepstars.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; };
                AF2C31E615C0F7FE007A6896 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF2C31E515C0F7FE007A6896 /* QuartzCore.framework */; };
                AF2C31EA15C0FC9C007A6896 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF2C31E515C0F7FE007A6896 /* QuartzCore.framework */; };
                AF2C31EB15C0FC9C007A6896 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF2C31E515C0F7FE007A6896 /* QuartzCore.framework */; };
                AF68A49C19196E3E00D41CD1 /* delaunay.c in Sources */ = {isa = PBXBuildFile; fileRef = AF68A49619196E3E00D41CD1 /* delaunay.c */; };
                AF69640B0E4FE3470085DBCE /* teapot.c in Sources */ = {isa = PBXBuildFile; fileRef = AFC211930E4E30C800D87B6E /* teapot.c */; };
                AF6C07C121D6ECCE00083862 /* Sparkle.framework in Resources */ = {isa = PBXBuildFile; fileRef = AF1ADA171850180E00932759 /* Sparkle.framework */; };
+               AF6C6D7B226AE4FC0065A748 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; };
+               AF6C6D7D226AE4FC0065A748 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; };
+               AF6C6D7E226AE4FC0065A748 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; };
+               AF6C6D7F226AE4FC0065A748 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF2C31E515C0F7FE007A6896 /* QuartzCore.framework */; };
+               AF6C6D80226AE4FC0065A748 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; };
+               AF6C6D81226AE4FC0065A748 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; };
+               AF6C6D82226AE4FC0065A748 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CEE0BC611A6B0D6200C098BF /* OpenGL.framework */; };
+               AF6C6D83226AE4FC0065A748 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = AF78369617DB9F25003B9FC0 /* libz.dylib */; };
+               AF6C6D8C226AE6130065A748 /* gravitywell.c in Sources */ = {isa = PBXBuildFile; fileRef = AF6C6D8B226AE6120065A748 /* gravitywell.c */; };
+               AF6C6D8E226AE6370065A748 /* gravitywell.xml in Resources */ = {isa = PBXBuildFile; fileRef = AF6C6D8D226AE6370065A748 /* gravitywell.xml */; };
+               AF6C6D8F226AE6370065A748 /* gravitywell.xml in Resources */ = {isa = PBXBuildFile; fileRef = AF6C6D8D226AE6370065A748 /* gravitywell.xml */; };
+               AF6C6D92226AE6CE0065A748 /* gravitywell.c in Sources */ = {isa = PBXBuildFile; fileRef = AF6C6D8B226AE6120065A748 /* gravitywell.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; };
+               AF70D21522A59A080004BAAD /* gallant12x22.ttf in Resources */ = {isa = PBXBuildFile; fileRef = AF70D21422A59A080004BAAD /* gallant12x22.ttf */; };
+               AF70D21622A5A0840004BAAD /* gallant12x22.ttf in Resources */ = {isa = PBXBuildFile; fileRef = AF70D21422A59A080004BAAD /* gallant12x22.ttf */; };
                AF73FF211A08AB9400E485E9 /* iSaverRunner57t.png in Resources */ = {isa = PBXBuildFile; fileRef = AF73FF201A08AB9400E485E9 /* iSaverRunner57t.png */; };
                AF73FF291A09877F00E485E9 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; };
                AF73FF2B1A09877F00E485E9 /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; };
                AFF3C9FF17CCAD9A0028F240 /* geodesic.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFF3C9FD17CCAD9A0028F240 /* geodesic.xml */; };
                AFF3CA0317CCAEB70028F240 /* geodesic.c in Sources */ = {isa = PBXBuildFile; fileRef = AFF3CA0217CCAEB70028F240 /* geodesic.c */; };
                AFF3CA0417CCAEB70028F240 /* geodesic.c in Sources */ = {isa = PBXBuildFile; fileRef = AFF3CA0217CCAEB70028F240 /* geodesic.c */; settings = {COMPILER_FLAGS = "-DUSE_GL"; }; };
+               AFF449E72275494400DB8EDB /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; };
+               AFF449E92275494400DB8EDB /* libjwxyz.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AF4808C1098C3B6C00FB32B8 /* libjwxyz.a */; };
+               AFF449EA2275494400DB8EDB /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF976ED30989BF59001F8B92 /* ScreenSaver.framework */; };
+               AFF449EB2275494400DB8EDB /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF2C31E515C0F7FE007A6896 /* QuartzCore.framework */; };
+               AFF449EC2275494400DB8EDB /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; };
+               AFF449ED2275494400DB8EDB /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF48112B0990A2C700FB32B8 /* Carbon.framework */; };
+               AFF449EE2275494400DB8EDB /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CEE0BC611A6B0D6200C098BF /* OpenGL.framework */; };
+               AFF449EF2275494400DB8EDB /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = AF78369617DB9F25003B9FC0 /* libz.dylib */; };
+               AFF449F822754B2300DB8EDB /* deepstars.c in Sources */ = {isa = PBXBuildFile; fileRef = AFF449F722754B2300DB8EDB /* deepstars.c */; };
+               AFF44A0022754BB600DB8EDB /* deepstars.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFF449FF22754BB500DB8EDB /* deepstars.xml */; };
+               AFF44A0122754BB600DB8EDB /* deepstars.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFF449FF22754BB500DB8EDB /* deepstars.xml */; };
                AFF4633C0C4403E400EE6509 /* XScreenSaverSubclass.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9CC7A0099580E70075E99B /* XScreenSaverSubclass.m */; };
                AFF4634A0C44044F00EE6509 /* cwaves.c in Sources */ = {isa = PBXBuildFile; fileRef = AFF463490C44044E00EE6509 /* cwaves.c */; };
                AFF4634C0C44046500EE6509 /* cwaves.xml in Resources */ = {isa = PBXBuildFile; fileRef = AFF4634B0C44046500EE6509 /* cwaves.xml */; };
                        remoteGlobalIDString = AF68A47E19196CF800D41CD1;
                        remoteInfo = Tessellimage;
                };
+               AF6C6D76226AE4FC0065A748 /* PBXContainerItemProxy */ = {
+                       isa = PBXContainerItemProxy;
+                       containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */;
+                       proxyType = 1;
+                       remoteGlobalIDString = AF4808C0098C3B6C00FB32B8;
+                       remoteInfo = jwxyz;
+               };
+               AF6C6D90226AE6780065A748 /* PBXContainerItemProxy */ = {
+                       isa = PBXContainerItemProxy;
+                       containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */;
+                       proxyType = 1;
+                       remoteGlobalIDString = AF6C6D74226AE4FC0065A748;
+                       remoteInfo = GravityWell;
+               };
                AF714E4E105613410046AB1D /* PBXContainerItemProxy */ = {
                        isa = PBXContainerItemProxy;
                        containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */;
                        remoteGlobalIDString = AFF3C9E817CCAC440028F240;
                        remoteInfo = Geodesic;
                };
+               AFF449E22275494400DB8EDB /* PBXContainerItemProxy */ = {
+                       isa = PBXContainerItemProxy;
+                       containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */;
+                       proxyType = 1;
+                       remoteGlobalIDString = AF4808C0098C3B6C00FB32B8;
+                       remoteInfo = jwxyz;
+               };
+               AFF449FD22754B5600DB8EDB /* PBXContainerItemProxy */ = {
+                       isa = PBXContainerItemProxy;
+                       containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */;
+                       proxyType = 1;
+                       remoteGlobalIDString = AFF449E02275494400DB8EDB;
+                       remoteInfo = DeepStars;
+               };
                AFF463380C4403E400EE6509 /* PBXContainerItemProxy */ = {
                        isa = PBXContainerItemProxy;
                        containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */;
 /* End PBXCopyFilesBuildPhase section */
 
 /* Begin PBXFileReference section */
-               089C165DFE840E0CC02AAC07 /* InfoPlist.strings */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = InfoPlist.strings; path = English.lproj/InfoPlist.strings; sourceTree = "<group>"; };
                1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = "<absolute>"; };
                29B97316FDCFA39411CA2CEA /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
                32CA4F630368D1EE00C91783 /* xscreensaver_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = xscreensaver_Prefix.pch; sourceTree = "<group>"; };
                AF68A49419196E3E00D41CD1 /* tessellimage.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = tessellimage.xml; sourceTree = "<group>"; };
                AF68A49519196E3E00D41CD1 /* tessellimage.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = tessellimage.c; path = hacks/tessellimage.c; sourceTree = "<group>"; };
                AF68A49619196E3E00D41CD1 /* delaunay.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = delaunay.c; path = hacks/delaunay.c; sourceTree = "<group>"; };
+               AF6C6D89226AE4FC0065A748 /* GravityWell.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = GravityWell.saver; sourceTree = BUILT_PRODUCTS_DIR; };
+               AF6C6D8B226AE6120065A748 /* gravitywell.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = gravitywell.c; path = hacks/glx/gravitywell.c; sourceTree = "<group>"; };
+               AF6C6D8D226AE6370065A748 /* gravitywell.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = gravitywell.xml; sourceTree = "<group>"; };
+               AF70D21422A59A080004BAAD /* gallant12x22.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = gallant12x22.ttf; sourceTree = "<group>"; };
                AF73FF201A08AB9400E485E9 /* iSaverRunner57t.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = iSaverRunner57t.png; sourceTree = "<group>"; };
                AF73FF361A09877F00E485E9 /* BinaryRing.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = BinaryRing.saver; sourceTree = BUILT_PRODUCTS_DIR; };
                AF73FF381A09889700E485E9 /* binaryring.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = binaryring.c; path = hacks/binaryring.c; sourceTree = "<group>"; };
                AF97707D0989D2F6001F8B92 /* Attraction.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Attraction.saver; sourceTree = BUILT_PRODUCTS_DIR; };
                AF9771D70989DC4A001F8B92 /* SaverTester.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = SaverTester.app; sourceTree = BUILT_PRODUCTS_DIR; };
                AF9771D90989DC4A001F8B92 /* SaverRunner.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = SaverRunner.plist; sourceTree = "<group>"; };
-               AF9772E20989DFC6001F8B92 /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = English.lproj/SaverRunner.nib; sourceTree = "<group>"; };
                AF998EEE0A083DB30051049D /* TopBlock.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = TopBlock.saver; sourceTree = BUILT_PRODUCTS_DIR; };
                AF998EF80A083E750051049D /* topblock.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = topblock.c; path = hacks/glx/topblock.c; sourceTree = "<group>"; };
                AF998EFA0A083E8C0051049D /* topblock.xml */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = text.xml; path = topblock.xml; sourceTree = "<group>"; };
                AFF3C9FB17CCAC440028F240 /* Geodesic.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Geodesic.saver; sourceTree = BUILT_PRODUCTS_DIR; };
                AFF3C9FD17CCAD9A0028F240 /* geodesic.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = geodesic.xml; sourceTree = "<group>"; };
                AFF3CA0217CCAEB70028F240 /* geodesic.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = geodesic.c; path = hacks/glx/geodesic.c; sourceTree = "<group>"; };
+               AFF449F52275494400DB8EDB /* DeepStars.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = DeepStars.saver; sourceTree = BUILT_PRODUCTS_DIR; };
+               AFF449F722754B2300DB8EDB /* deepstars.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = deepstars.c; path = hacks/glx/deepstars.c; sourceTree = "<group>"; };
+               AFF449FF22754BB500DB8EDB /* deepstars.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = deepstars.xml; sourceTree = "<group>"; };
                AFF463470C4403E400EE6509 /* CWaves.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = CWaves.saver; sourceTree = BUILT_PRODUCTS_DIR; };
                AFF463490C44044E00EE6509 /* cwaves.c */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.c; name = cwaves.c; path = hacks/cwaves.c; sourceTree = "<group>"; };
                AFF4634B0C44046500EE6509 /* cwaves.xml */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = text.xml; path = cwaves.xml; sourceTree = "<group>"; };
                AFFAB32919158CE40020F021 /* ProjectivePlane.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ProjectivePlane.saver; sourceTree = BUILT_PRODUCTS_DIR; };
                AFFAB32C19158E2A0020F021 /* projectiveplane.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = projectiveplane.xml; sourceTree = "<group>"; };
                AFFAB33119158EA80020F021 /* projectiveplane.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = projectiveplane.c; path = hacks/glx/projectiveplane.c; sourceTree = "<group>"; };
+               AFFAE611226CF93F00EA842B /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
+               AFFAE612226CF93F00EA842B /* en */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = en; path = en.lproj/SaverRunner.nib; sourceTree = "<group>"; };
                CE3D01661B76F4C100993C75 /* TestX11.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = TestX11.saver; sourceTree = BUILT_PRODUCTS_DIR; };
                CE3D01681B76F83E00993C75 /* testx11.xml */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = testx11.xml; sourceTree = "<group>"; };
                CE3D016A1B76F8E200993C75 /* testx11.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = testx11.c; path = hacks/testx11.c; sourceTree = "<group>"; };
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                };
+               AF6C6D7C226AE4FC0065A748 /* Frameworks */ = {
+                       isa = PBXFrameworksBuildPhase;
+                       buildActionMask = 2147483647;
+                       files = (
+                               AF6C6D7D226AE4FC0065A748 /* libjwxyz.a in Frameworks */,
+                               AF6C6D7E226AE4FC0065A748 /* ScreenSaver.framework in Frameworks */,
+                               AF6C6D7F226AE4FC0065A748 /* QuartzCore.framework in Frameworks */,
+                               AF6C6D80226AE4FC0065A748 /* Cocoa.framework in Frameworks */,
+                               AF6C6D81226AE4FC0065A748 /* Carbon.framework in Frameworks */,
+                               AF6C6D82226AE4FC0065A748 /* OpenGL.framework in Frameworks */,
+                               AF6C6D83226AE4FC0065A748 /* libz.dylib in Frameworks */,
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+               };
                AF73FF2A1A09877F00E485E9 /* Frameworks */ = {
                        isa = PBXFrameworksBuildPhase;
                        buildActionMask = 2147483647;
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                };
+               AFF449E82275494400DB8EDB /* Frameworks */ = {
+                       isa = PBXFrameworksBuildPhase;
+                       buildActionMask = 2147483647;
+                       files = (
+                               AFF449E92275494400DB8EDB /* libjwxyz.a in Frameworks */,
+                               AFF449EA2275494400DB8EDB /* ScreenSaver.framework in Frameworks */,
+                               AFF449EB2275494400DB8EDB /* QuartzCore.framework in Frameworks */,
+                               AFF449EC2275494400DB8EDB /* Cocoa.framework in Frameworks */,
+                               AFF449ED2275494400DB8EDB /* Carbon.framework in Frameworks */,
+                               AFF449EE2275494400DB8EDB /* OpenGL.framework in Frameworks */,
+                               AFF449EF2275494400DB8EDB /* libz.dylib in Frameworks */,
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+               };
                AFF4633E0C4403E400EE6509 /* Frameworks */ = {
                        isa = PBXFrameworksBuildPhase;
                        buildActionMask = 2147483647;
                                AFD77E7020C23F8600A3638D /* FilmLeader.saver */,
                                AF5ECEC02116B1A400069433 /* VFeedback.saver */,
                                AF62D62D2180070600C57C42 /* Handsy.saver */,
+                               AF6C6D89226AE4FC0065A748 /* GravityWell.saver */,
+                               AFF449F52275494400DB8EDB /* DeepStars.saver */,
                        );
                        name = Products;
                        path = ..;
                                AFEC68381BD6CDF9004C1B64 /* YearlReg.ttf */,
                                AFC43E731C68364B00C89999 /* PxPlus_IBM_VGA8.ttf */,
                                AF939AD42038C0040032DD23 /* luximr.ttf */,
+                               AF70D21422A59A080004BAAD /* gallant12x22.ttf */,
                                AF142BAC1EE75DBF0005C0A8 /* settings.png */,
                                557BF07A1EE90C8B00846DCE /* settings@2x.png */,
                                557BF07B1EE90C8B00846DCE /* settings@3x.png */,
                                AFEE10641D1341E300AAC8F7 /* cubetwist.c */,
                                AF4FF4D00D52CC8400666F98 /* cubicgrid.c */,
                                AF480DD1098F4F6200FB32B8 /* dangerball.c */,
+                               AFF449F722754B2300DB8EDB /* deepstars.c */,
                                AF3938311D0FBEC800205406 /* discoball.c */,
                                AF77787609B653DC00EA3033 /* dnalogo.c */,
                                AF0839AA09930C4900277BE9 /* dolphin.c */,
                                AF7777E709B64CF700EA3033 /* glslideshow.c */,
                                AFA55C8C099349EE00F3E977 /* glsnake.c */,
                                AFD56E080996A07A00BA26F7 /* gltext.c */,
+                               AF6C6D8B226AE6120065A748 /* gravitywell.c */,
                                AF62D62F2180082100C57C42 /* handsy_model.c */,
                                AF62D6302180082100C57C42 /* handsy.c */,
                                AF1B0FBE1D7AB5210011DBE4 /* hexstrut.c */,
                                AFC258920988A468000655EE /* dangerball.xml */,
                                AFC258930988A468000655EE /* decayscreen.xml */,
                                AFC258940988A468000655EE /* deco.xml */,
+                               AFF449FF22754BB500DB8EDB /* deepstars.xml */,
                                AFC258950988A468000655EE /* deluxe.xml */,
                                AFC258960988A468000655EE /* demon.xml */,
                                AF3938321D0FBEC800205406 /* discoball.xml */,
                                AFC258BD0988A468000655EE /* gltext.xml */,
                                AFC258BF0988A468000655EE /* goop.xml */,
                                AFC258C00988A468000655EE /* grav.xml */,
+                               AF6C6D8D226AE6370065A748 /* gravitywell.xml */,
                                AFC258C10988A468000655EE /* greynetic.xml */,
                                AFC258C20988A468000655EE /* halftone.xml */,
                                AFC258C30988A468000655EE /* halo.xml */,
                        productReference = AF68A49219196CF800D41CD1 /* Tessellimage.saver */;
                        productType = "com.apple.product-type.bundle";
                };
+               AF6C6D74226AE4FC0065A748 /* GravityWell */ = {
+                       isa = PBXNativeTarget;
+                       buildConfigurationList = AF6C6D86226AE4FC0065A748 /* Build configuration list for PBXNativeTarget "GravityWell" */;
+                       buildPhases = (
+                               AF6C6D77226AE4FC0065A748 /* Resources */,
+                               AF6C6D79226AE4FC0065A748 /* Sources */,
+                               AF6C6D7C226AE4FC0065A748 /* Frameworks */,
+                               AF6C6D84226AE4FC0065A748 /* Rez */,
+                               AF6C6D85226AE4FC0065A748 /* Run Update Info Plist */,
+                       );
+                       buildRules = (
+                       );
+                       dependencies = (
+                               AF6C6D75226AE4FC0065A748 /* PBXTargetDependency */,
+                       );
+                       name = GravityWell;
+                       productName = DangerBall;
+                       productReference = AF6C6D89226AE4FC0065A748 /* GravityWell.saver */;
+                       productType = "com.apple.product-type.bundle";
+               };
                AF73FF221A09877F00E485E9 /* BinaryRing */ = {
                        isa = PBXNativeTarget;
                        buildConfigurationList = AF73FF331A09877F00E485E9 /* Build configuration list for PBXNativeTarget "BinaryRing" */;
                        productReference = AFF3C9FB17CCAC440028F240 /* Geodesic.saver */;
                        productType = "com.apple.product-type.bundle";
                };
+               AFF449E02275494400DB8EDB /* DeepStars */ = {
+                       isa = PBXNativeTarget;
+                       buildConfigurationList = AFF449F22275494400DB8EDB /* Build configuration list for PBXNativeTarget "DeepStars" */;
+                       buildPhases = (
+                               AFF449E32275494400DB8EDB /* Resources */,
+                               AFF449E52275494400DB8EDB /* Sources */,
+                               AFF449E82275494400DB8EDB /* Frameworks */,
+                               AFF449F02275494400DB8EDB /* Rez */,
+                               AFF449F12275494400DB8EDB /* Run Update Info Plist */,
+                       );
+                       buildRules = (
+                       );
+                       dependencies = (
+                               AFF449E12275494400DB8EDB /* PBXTargetDependency */,
+                       );
+                       name = DeepStars;
+                       productName = DangerBall;
+                       productReference = AFF449F52275494400DB8EDB /* DeepStars.saver */;
+                       productType = "com.apple.product-type.bundle";
+               };
                AFF463360C4403E400EE6509 /* CWaves */ = {
                        isa = PBXNativeTarget;
                        buildConfigurationList = AFF463440C4403E400EE6509 /* Build configuration list for PBXNativeTarget "CWaves" */;
                29B97313FDCFA39411CA2CEA /* Project object */ = {
                        isa = PBXProject;
                        attributes = {
-                               LastUpgradeCheck = 1010;
+                               LastUpgradeCheck = 1020;
                                TargetAttributes = {
                                        AF08398F09930B6B00277BE9 = {
                                                DevelopmentTeam = 4627ATJELP;
                                        AF68A47E19196CF800D41CD1 = {
                                                DevelopmentTeam = 4627ATJELP;
                                        };
+                                       AF6C6D74226AE4FC0065A748 = {
+                                               DevelopmentTeam = 4627ATJELP;
+                                       };
                                        AF73FF221A09877F00E485E9 = {
                                                DevelopmentTeam = 4627ATJELP;
                                        };
                                        AFF3C9E817CCAC440028F240 = {
                                                DevelopmentTeam = 4627ATJELP;
                                        };
+                                       AFF449E02275494400DB8EDB = {
+                                               DevelopmentTeam = 4627ATJELP;
+                                       };
                                        AFF463360C4403E400EE6509 = {
                                                DevelopmentTeam = 4627ATJELP;
                                        };
                        };
                        buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "xscreensaver" */;
                        compatibilityVersion = "Xcode 3.2";
-                       developmentRegion = English;
+                       developmentRegion = en;
                        hasScannedForEncodings = 1;
                        knownRegions = (
-                               English,
-                               Japanese,
-                               French,
-                               German,
                                en,
                                Base,
+                               ja,
+                               fr,
+                               de,
                        );
                        mainGroup = 29B97314FDCFA39411CA2CEA /* xscreensaver */;
                        projectDirPath = "";
                                AFEE104D1D13406000AAC8F7 /* CubeTwist */,
                                AF4FF4BA0D52CBDE00666F98 /* CubicGrid */,
                                AF4810EB09909FBA00FB32B8 /* DangerBall */,
+                               AFF449E02275494400DB8EDB /* DeepStars */,
                                AF39381A1D0FBD6A00205406 /* Discoball */,
                                AF77786109B6536000EA3033 /* DNAlogo */,
                                AFEC23CD1CB6EAE100DE138F /* DymaxionMap */,
                                AF7777D009B64C6B00EA3033 /* GLSlideshow */,
                                AFA55C77099349A600F3E977 /* GLSnake */,
                                AFD56DF10996A03800BA26F7 /* GLText */,
+                               AF6C6D74226AE4FC0065A748 /* GravityWell */,
                                AF62D6182180070600C57C42 /* Handsy */,
                                AF1B0FA71D7AB4740011DBE4 /* Hexstrut */,
                                AF78D175142DD8F3002AAF77 /* Hilbert */,
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                };
+               AF6C6D77226AE4FC0065A748 /* Resources */ = {
+                       isa = PBXResourcesBuildPhase;
+                       buildActionMask = 2147483647;
+                       files = (
+                               AF6C6D8E226AE6370065A748 /* gravitywell.xml in Resources */,
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+               };
                AF73FF251A09877F00E485E9 /* Resources */ = {
                        isa = PBXResourcesBuildPhase;
                        buildActionMask = 2147483647;
                                AFC43E741C68364B00C89999 /* PxPlus_IBM_VGA8.ttf in Resources */,
                                AFEC68391BD6CDF9004C1B64 /* YearlReg.ttf in Resources */,
                                AF939AD72038C5F00032DD23 /* luximr.ttf in Resources */,
+                               AF70D21522A59A080004BAAD /* gallant12x22.ttf in Resources */,
                                AF142BAE1EE75DBF0005C0A8 /* settings.png in Resources */,
                                557BF07E1EE90D3B00846DCE /* settings@2x.png in Resources */,
                                557BF07F1EE90D3B00846DCE /* settings@3x.png in Resources */,
                                AF918AE1158FC53D002B5D1E /* dangerball.xml in Resources */,
                                AF918AE2158FC53D002B5D1E /* decayscreen.xml in Resources */,
                                AF918AE3158FC53D002B5D1E /* deco.xml in Resources */,
+                               AFF44A0122754BB600DB8EDB /* deepstars.xml in Resources */,
                                AF918AE4158FC53D002B5D1E /* deluxe.xml in Resources */,
                                AF918AE5158FC53D002B5D1E /* demon.xml in Resources */,
                                AF918AE6158FC53D002B5D1E /* discrete.xml in Resources */,
                                AF918B0D158FC53D002B5D1E /* gltext.xml in Resources */,
                                AF918B0E158FC53D002B5D1E /* goop.xml in Resources */,
                                AF918B0F158FC53D002B5D1E /* grav.xml in Resources */,
+                               AF6C6D8F226AE6370065A748 /* gravitywell.xml in Resources */,
                                AF918B11158FC53D002B5D1E /* halftone.xml in Resources */,
                                AF918B12158FC53D002B5D1E /* halo.xml in Resources */,
                                AF62D6372180083E00C57C42 /* handsy.xml in Resources */,
                                AF0FAF1709CA712600EE1051 /* xscreensaver-getimage-file in Resources */,
                                AFC43E771C684BE400C89999 /* PxPlus_IBM_VGA8.ttf in Resources */,
                                AF939AD52038C0050032DD23 /* luximr.ttf in Resources */,
+                               AF70D21622A5A0840004BAAD /* gallant12x22.ttf in Resources */,
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                };
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                };
+               AFF449E32275494400DB8EDB /* Resources */ = {
+                       isa = PBXResourcesBuildPhase;
+                       buildActionMask = 2147483647;
+                       files = (
+                               AFF44A0022754BB600DB8EDB /* deepstars.xml in Resources */,
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+               };
                AFF463390C4403E400EE6509 /* Resources */ = {
                        isa = PBXResourcesBuildPhase;
                        buildActionMask = 2147483647;
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                };
+               AF6C6D84226AE4FC0065A748 /* Rez */ = {
+                       isa = PBXRezBuildPhase;
+                       buildActionMask = 2147483647;
+                       files = (
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+               };
                AF73FF311A09877F00E485E9 /* Rez */ = {
                        isa = PBXRezBuildPhase;
                        buildActionMask = 2147483647;
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                };
+               AFF449F02275494400DB8EDB /* Rez */ = {
+                       isa = PBXRezBuildPhase;
+                       buildActionMask = 2147483647;
+                       files = (
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+               };
                AFF463420C4403E400EE6509 /* Rez */ = {
                        isa = PBXRezBuildPhase;
                        buildActionMask = 2147483647;
                        shellScript = "$SOURCE_ROOT/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX";
                        showEnvVarsInLog = 0;
                };
+               AF6C6D85226AE4FC0065A748 /* Run Update Info Plist */ = {
+                       isa = PBXShellScriptBuildPhase;
+                       buildActionMask = 2147483647;
+                       files = (
+                       );
+                       inputPaths = (
+                       );
+                       name = "Run Update Info Plist";
+                       outputPaths = (
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+                       shellPath = /bin/sh;
+                       shellScript = "$SOURCE_ROOT/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX";
+                       showEnvVarsInLog = 0;
+               };
                AF73FF321A09877F00E485E9 /* Run Update Info Plist */ = {
                        isa = PBXShellScriptBuildPhase;
                        buildActionMask = 2147483647;
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                        shellPath = /bin/sh;
-                       shellScript = "$SOURCE_ROOT/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX";
+                       shellScript = "$SOURCE_ROOT/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX\n";
                        showEnvVarsInLog = 0;
                };
                AF94E7421A16F66900289B93 /* Update Function Table */ = {
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                        shellPath = /bin/sh;
-                       shellScript = "$SOURCE_ROOT/build-fntable.pl $SOURCE_ROOT/ios-function-table.m";
+                       shellScript = "$SOURCE_ROOT/build-fntable.pl $SOURCE_ROOT/ios-function-table.m\n";
                };
                AF998EEA0A083DB30051049D /* Run Update Info Plist */ = {
                        isa = PBXShellScriptBuildPhase;
                        shellScript = "$SOURCE_ROOT/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX";
                        showEnvVarsInLog = 0;
                };
+               AFF449F12275494400DB8EDB /* Run Update Info Plist */ = {
+                       isa = PBXShellScriptBuildPhase;
+                       buildActionMask = 2147483647;
+                       files = (
+                       );
+                       inputPaths = (
+                       );
+                       name = "Run Update Info Plist";
+                       outputPaths = (
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+                       shellPath = /bin/sh;
+                       shellScript = "$SOURCE_ROOT/update-info-plist.pl -q $BUILT_PRODUCTS_DIR/$PRODUCT_NAME$WRAPPER_SUFFIX";
+                       showEnvVarsInLog = 0;
+               };
                AFF463430C4403E400EE6509 /* Run Update Info Plist */ = {
                        isa = PBXShellScriptBuildPhase;
                        buildActionMask = 2147483647;
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                };
+               AF6C6D79226AE4FC0065A748 /* Sources */ = {
+                       isa = PBXSourcesBuildPhase;
+                       buildActionMask = 2147483647;
+                       files = (
+                               AF6C6D8C226AE6130065A748 /* gravitywell.c in Sources */,
+                               AF6C6D7B226AE4FC0065A748 /* XScreenSaverSubclass.m in Sources */,
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+               };
                AF73FF271A09877F00E485E9 /* Sources */ = {
                        isa = PBXSourcesBuildPhase;
                        buildActionMask = 2147483647;
                                AFEE10671D1341FA00AAC8F7 /* cubetwist.c in Sources */,
                                AF918A45158FC3BB002B5D1E /* cubicgrid.c in Sources */,
                                AF918A46158FC3BB002B5D1E /* dangerball.c in Sources */,
+                               AF2C2A8A22754C31002112B9 /* deepstars.c in Sources */,
                                AFCF453715986A2100E6E8CC /* dnalogo.c in Sources */,
                                AF918A48158FC3BB002B5D1E /* dolphin.c in Sources */,
                                AFEC23E91CB6EC7F00DE138F /* dymaxionmap.c in Sources */,
                                AF918A67158FC3E5002B5D1E /* glslideshow.c in Sources */,
                                AF918A68158FC3E5002B5D1E /* glsnake.c in Sources */,
                                AF918A69158FC3E5002B5D1E /* gltext.c in Sources */,
+                               AF6C6D92226AE6CE0065A748 /* gravitywell.c in Sources */,
                                AF62D6322180082100C57C42 /* handsy_model.c in Sources */,
                                AF62D6342180082100C57C42 /* handsy.c in Sources */,
                                AF1B0FC31D7AB5500011DBE4 /* hexstrut.c in Sources */,
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                };
+               AFF449E52275494400DB8EDB /* Sources */ = {
+                       isa = PBXSourcesBuildPhase;
+                       buildActionMask = 2147483647;
+                       files = (
+                               AFF449E72275494400DB8EDB /* XScreenSaverSubclass.m in Sources */,
+                               AFF449F822754B2300DB8EDB /* deepstars.c in Sources */,
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+               };
                AFF4633B0C4403E400EE6509 /* Sources */ = {
                        isa = PBXSourcesBuildPhase;
                        buildActionMask = 2147483647;
                        target = AF68A47E19196CF800D41CD1 /* Tessellimage */;
                        targetProxy = AF68A49D19196EA000D41CD1 /* PBXContainerItemProxy */;
                };
+               AF6C6D75226AE4FC0065A748 /* PBXTargetDependency */ = {
+                       isa = PBXTargetDependency;
+                       target = AF4808C0098C3B6C00FB32B8 /* jwxyz */;
+                       targetProxy = AF6C6D76226AE4FC0065A748 /* PBXContainerItemProxy */;
+               };
+               AF6C6D91226AE6780065A748 /* PBXTargetDependency */ = {
+                       isa = PBXTargetDependency;
+                       target = AF6C6D74226AE4FC0065A748 /* GravityWell */;
+                       targetProxy = AF6C6D90226AE6780065A748 /* PBXContainerItemProxy */;
+               };
                AF714E4F105613410046AB1D /* PBXTargetDependency */ = {
                        isa = PBXTargetDependency;
                        target = AF4774B4099D8B5F001F091E /* LMorph */;
                        target = AFF3C9E817CCAC440028F240 /* Geodesic */;
                        targetProxy = AFF3CA0017CCAE210028F240 /* PBXContainerItemProxy */;
                };
+               AFF449E12275494400DB8EDB /* PBXTargetDependency */ = {
+                       isa = PBXTargetDependency;
+                       target = AF4808C0098C3B6C00FB32B8 /* jwxyz */;
+                       targetProxy = AFF449E22275494400DB8EDB /* PBXContainerItemProxy */;
+               };
+               AFF449FE22754B5600DB8EDB /* PBXTargetDependency */ = {
+                       isa = PBXTargetDependency;
+                       target = AFF449E02275494400DB8EDB /* DeepStars */;
+                       targetProxy = AFF449FD22754B5600DB8EDB /* PBXContainerItemProxy */;
+               };
                AFF463370C4403E400EE6509 /* PBXTargetDependency */ = {
                        isa = PBXTargetDependency;
                        target = AF4808C0098C3B6C00FB32B8 /* jwxyz */;
                089C165CFE840E0CC02AAC07 /* InfoPlist.strings */ = {
                        isa = PBXVariantGroup;
                        children = (
-                               089C165DFE840E0CC02AAC07 /* InfoPlist.strings */,
+                               AFFAE611226CF93F00EA842B /* en */,
                        );
                        name = InfoPlist.strings;
                        sourceTree = "<group>";
                AF9772E10989DFC6001F8B92 /* SaverRunner.nib */ = {
                        isa = PBXVariantGroup;
                        children = (
-                               AF9772E20989DFC6001F8B92 /* English */,
+                               AFFAE612226CF93F00EA842B /* en */,
                        );
                        name = SaverRunner.nib;
                        sourceTree = "<group>";
                                PRODUCT_BUNDLE_IDENTIFIER = "${BUNDLE_IDENTIFIER}";
                                SKIP_INSTALL = YES;
                                SUPPORTED_PLATFORMS = "macosx iphonesimulator iphoneos";
-                               VALID_ARCHS = "i386 x86_64 armv6 armv7 armv7s arm64";
                        };
                        name = Debug;
                };
                                PRODUCT_BUNDLE_IDENTIFIER = "${BUNDLE_IDENTIFIER}";
                                SKIP_INSTALL = YES;
                                SUPPORTED_PLATFORMS = "macosx iphonesimulator iphoneos";
-                               VALID_ARCHS = "i386 x86_64 armv6 armv7 armv7s arm64";
                        };
                        name = Release;
                };
                        };
                        name = Release;
                };
+               AF6C6D87226AE4FC0065A748 /* Debug */ = {
+                       isa = XCBuildConfiguration;
+                       buildSettings = {
+                               GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS = (
+                                       "USE_GL=1",
+                                       "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)",
+                               );
+                               PRODUCT_NAME = "$(TARGET_NAME)";
+                       };
+                       name = Debug;
+               };
+               AF6C6D88226AE4FC0065A748 /* Release */ = {
+                       isa = XCBuildConfiguration;
+                       buildSettings = {
+                               GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS = (
+                                       "USE_GL=1",
+                                       "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)",
+                               );
+                               PRODUCT_NAME = "$(TARGET_NAME)";
+                       };
+                       name = Release;
+               };
                AF73FF341A09877F00E485E9 /* Debug */ = {
                        isa = XCBuildConfiguration;
                        buildSettings = {
                                CODE_SIGN_IDENTITY = "iPhone Developer";
                                "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
                                COMBINE_HIDPI_IMAGES = NO;
+                               ENABLE_HARDENED_RUNTIME = NO;
                                GCC_PREPROCESSOR_DEFINITIONS = (
                                        "USE_IPHONE=1",
                                        "$(inherited)",
                        };
                        name = Release;
                };
+               AFF449F32275494400DB8EDB /* Debug */ = {
+                       isa = XCBuildConfiguration;
+                       buildSettings = {
+                               GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS = (
+                                       "USE_GL=1",
+                                       "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)",
+                               );
+                               PRODUCT_NAME = "$(TARGET_NAME)";
+                       };
+                       name = Debug;
+               };
+               AFF449F42275494400DB8EDB /* Release */ = {
+                       isa = XCBuildConfiguration;
+                       buildSettings = {
+                               GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS = (
+                                       "USE_GL=1",
+                                       "$(GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS)",
+                               );
+                               PRODUCT_NAME = "$(TARGET_NAME)";
+                       };
+                       name = Release;
+               };
                AFF463450C4403E400EE6509 /* Debug */ = {
                        isa = XCBuildConfiguration;
                        buildSettings = {
                                ARCHS = "$(ARCHS_STANDARD)";
                                BUNDLE_IDENTIFIER = "org.jwz.${PROJECT_NAME:rfc1034identifier}.${PRODUCT_NAME:rfc1034identifier}";
                                CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
+                               CLANG_ENABLE_OBJC_WEAK = YES;
                                CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
                                CLANG_WARN_BOOL_CONVERSION = YES;
                                CLANG_WARN_COMMA = NO;
                                CLANG_WARN_CONSTANT_CONVERSION = YES;
+                               CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
                                CLANG_WARN_EMPTY_BODY = YES;
                                CLANG_WARN_ENUM_CONVERSION = YES;
                                CLANG_WARN_INFINITE_RECURSION = YES;
                                ARCHS = "$(ARCHS_STANDARD)";
                                BUNDLE_IDENTIFIER = "org.jwz.${PROJECT_NAME:rfc1034identifier}.${PRODUCT_NAME:rfc1034identifier}";
                                CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
+                               CLANG_ENABLE_OBJC_WEAK = YES;
                                CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
                                CLANG_WARN_BOOL_CONVERSION = YES;
                                CLANG_WARN_COMMA = NO;
                                CLANG_WARN_CONSTANT_CONVERSION = YES;
+                               CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
                                CLANG_WARN_EMPTY_BODY = YES;
                                CLANG_WARN_ENUM_CONVERSION = YES;
                                CLANG_WARN_INFINITE_RECURSION = YES;
                        defaultConfigurationIsVisible = 0;
                        defaultConfigurationName = Release;
                };
+               AF6C6D86226AE4FC0065A748 /* Build configuration list for PBXNativeTarget "GravityWell" */ = {
+                       isa = XCConfigurationList;
+                       buildConfigurations = (
+                               AF6C6D87226AE4FC0065A748 /* Debug */,
+                               AF6C6D88226AE4FC0065A748 /* Release */,
+                       );
+                       defaultConfigurationIsVisible = 0;
+                       defaultConfigurationName = Release;
+               };
                AF73FF331A09877F00E485E9 /* Build configuration list for PBXNativeTarget "BinaryRing" */ = {
                        isa = XCConfigurationList;
                        buildConfigurations = (
                        defaultConfigurationIsVisible = 0;
                        defaultConfigurationName = Release;
                };
+               AFF449F22275494400DB8EDB /* Build configuration list for PBXNativeTarget "DeepStars" */ = {
+                       isa = XCConfigurationList;
+                       buildConfigurations = (
+                               AFF449F32275494400DB8EDB /* Debug */,
+                               AFF449F42275494400DB8EDB /* Release */,
+                       );
+                       defaultConfigurationIsVisible = 0;
+                       defaultConfigurationName = Release;
+               };
                AFF463440C4403E400EE6509 /* Build configuration list for PBXNativeTarget "CWaves" */ = {
                        isa = XCConfigurationList;
                        buildConfigurations = (
diff --git a/README b/README
index 9a2a384876bc2a4313b4377b8561b88bb2998555..118a0615c31d4e2d6ead0ebb127df40db5dcfd68 100644 (file)
--- a/README
+++ b/README
@@ -46,6 +46,18 @@ XScreenSaver has an extensive manual -- please read it!
 
 ===============================================================================
 
+5.43   * New hacks, `GravityWell', `DeepStars'.
+       * GLPlanet now supports the Mercator projection.
+       * Bouncing Cow has mathematically ideal cows (spherical, frictionless).
+       * Foggy toasters.
+       * Unknown Pleasures can now use an image file as a clip mask.
+       * Updated `webcollage' for recent changes.
+       * macOS: Fixed BSOD fonts on UWQHD+ displays.
+       * X11: Added some sample unlock dialog color schemes to the .ad file.
+       * X11: On systemd systems, closing your laptop lid might actually lock
+          your screen now, maybe.
+       * X11: 'sonar' can ping without being setuid by using setcap.
+
 5.42   * macOS: Fixed Sparkle auto-updater.
 
 5.41   * X11: Those new font-loading fallback heuristics work again. Oops.
index ed65edf6c5c17a9baccae5ff1ec855fd1dc60926..868d7f12baa0157b67adc558296f725e805d6363 100644 (file)
@@ -82,6 +82,7 @@ export ANDROID_HACKS=         \
        dangerball              \
        decayscreen             \
        deco                    \
+       deepstars               \
        deluxe                  \
        demon                   \
        discoball               \
@@ -126,6 +127,7 @@ export ANDROID_HACKS=               \
        gltext                  \
        goop                    \
        grav                    \
+       gravitywell             \
        greynetic               \
        halo                    \
        handsy                  \
diff --git a/android/xscreensaver/assets/fonts/gallant12x22.ttf b/android/xscreensaver/assets/fonts/gallant12x22.ttf
new file mode 120000 (symlink)
index 0000000..55e9e77
--- /dev/null
@@ -0,0 +1 @@
+../../../../OSX/gallant12x22.ttf
\ No newline at end of file
diff --git a/android/xscreensaver/assets/fonts/luximr.ttf b/android/xscreensaver/assets/fonts/luximr.ttf
new file mode 120000 (symlink)
index 0000000..41f9ebe
--- /dev/null
@@ -0,0 +1 @@
+../../../../OSX/luximr.ttf
\ No newline at end of file
index a22a26d40c9ed708f604c4a333a05405f1c39d79..d70dfc3328ffb1dcb05a3b01fef15f9f98516718 100644 (file)
@@ -1,5 +1,5 @@
 /* -*- Mode: java; indent-tabs-mode: nil; c-basic-offset: 2 -*-
- * xscreensaver, Copyright (c) 2016-2018 Jamie Zawinski <jwz@jwz.org>
+ * xscreensaver, Copyright (c) 2016-2019 Jamie Zawinski <jwz@jwz.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -260,9 +260,9 @@ public class jwxyz
           // LOG ("unparsable system font: %s", file);
         } else {
           name = mungeFontName (name);
-          if (! all_fonts.contains (name)) {
+          if (! all_fonts.contains (name.toLowerCase())) {
             // LOG ("system font \"%s\" %s", name, file);
-            all_fonts.put (name, name);
+            all_fonts.put (name.toLowerCase(), name);
           }
         }
       }
@@ -301,7 +301,7 @@ public class jwxyz
         tmpfile.delete();
 
         name = mungeFontName (name);
-        all_fonts.put (name, t);
+        all_fonts.put (name.toLowerCase(), t);
         // LOG ("asset font \"%s\" %s", name, fn);
       } catch (Exception e) {
         if (tmpfile != null) tmpfile.delete();
@@ -360,7 +360,7 @@ public class jwxyz
   // Parses "Native Font Name One 12, Native Font Name Two 14".
   // Returns [ String name, Typeface ]
   private Object[] parseNativeFont (String name) {
-    Object font2 = all_fonts.get (name);
+    Object font2 = all_fonts.get (name.toLowerCase());
     if (font2 instanceof String)
       font2 = Typeface.create (name, Typeface.NORMAL);
     return new Object[] { name, (Typeface)font2 };
@@ -383,6 +383,8 @@ public class jwxyz
     String name2  = (String)   pair[0];
     Typeface font = (Typeface) pair[1];
 
+    if (font == null) return null;
+
     size *= 2;
 
     String suffix = (font.isBold() && font.isItalic() ? " bold italic" :
index 8c031ecf658ddd9acafac61bd8734b638bdd9879..9f66b484bf93c943c70d897adec31fb5bd1a42e4 100644 (file)
 /* Define if your <locale.h> file defines LC_MESSAGES. */
 #undef HAVE_LC_MESSAGES
 
+/* Define this if your system has libcap. */
+#undef HAVE_LIBCAP
+
 /* Define this if the Portable Network Graphics library is installed. It is
    basically required, but many things will more-or-less limp along without
    it. */
 #undef HAVE_LIBPNG
 
+/* Define this if you have libsystemd. */
+#undef HAVE_LIBSYSTEMD
+
 /* Define to 1 if you have the <locale.h> header file. */
 #undef HAVE_LOCALE_H
 
index f61dfbebcc6c1294a8385c6a3ae6c74aad21cc62..e5667963406d8bf2ff3eca3c44d0a4321fad8b86 100755 (executable)
--- a/configure
+++ b/configure
@@ -661,6 +661,7 @@ PASSWD_OBJS
 PASSWD_SRCS
 MEN_OSX
 SCRIPTS_OSX
+EXES_SYSTEMD
 EXES_OSX
 OBJCC
 COMMENT_DEMO_GLADE2_GTK_2_22_TAIL
@@ -676,8 +677,12 @@ HAVE_PAM_FAIL_DELAY
 INSTALL_PAM
 NEED_SETUID
 INSTALL_DIRS
+SETCAP_HACKS
 SETUID_HACKS
 INSTALL_SETUID
+PROG_SETCAP
+LIBCAP_LIBS
+LIBCAP_CFLAGS
 PASSWD_LIBS
 XINERAMA_LIBS
 XDPMS_LIBS
@@ -694,6 +699,7 @@ SAVER_LIBS
 ALL_DEMO_PROGRAMS
 PREFERRED_DEMO_PROGRAM
 INCLUDES
+setcap_program
 gnome_url_show_program
 gnome_open_program
 pkg_config
@@ -854,6 +860,7 @@ with_png
 with_pixbuf
 with_jpeg
 with_xft
+with_systemd
 with_xshm_ext
 with_xdbe_ext
 with_readdisplay
@@ -861,6 +868,7 @@ with_image_directory
 with_text_file
 with_browser
 with_setuid_hacks
+with_setcap_hacks
 with_record_animation
 '
       ac_precious_vars='build_alias
@@ -1552,6 +1560,7 @@ Graphics options:
                           GIF, JPEG, and PNG files as well.
   --with-jpeg             Include support for the JPEG library.
   --with-xft              Include support for the X Freetype library.
+  --with-systemd          Build xscreensaver-systemd to lock on suspend.
   --with-xshm-ext         Include support for the Shared Memory extension.
   --with-xdbe-ext         Include support for the DOUBLE-BUFFER extension.
   --with-readdisplay      Include support for the XReadDisplay extension.
@@ -1561,10 +1570,10 @@ Graphics options:
   --with-browser=BROWSER  Specify the web browser used to show the help URL.
   --with-setuid-hacks     Allow some demos to be installed `setuid root'
                           (which is needed in order to ping other hosts.)
-
+  --with-setcap-hacks     Allow some demos to be installed with setcap
+                          (which is needed in order to ping other hosts.)
   --with-record-animation Include code for generating MP4 videos.
 
-
 Some influential environment variables:
   CC          C compiler command
   CFLAGS      C compiler flags
@@ -1740,6 +1749,43 @@ fi
 
 } # ac_fn_c_try_link
 
+# ac_fn_c_try_cpp LINENO
+# ----------------------
+# Try to preprocess conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_cpp ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  if { { ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
+  ac_status=$?
+  if test -s conftest.err; then
+    grep -v '^ *+' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+    mv -f conftest.er1 conftest.err
+  fi
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } > conftest.i && {
+        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       }; then :
+  ac_retval=0
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+    ac_retval=1
+fi
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+  as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_cpp
+
 # ac_fn_c_try_run LINENO
 # ----------------------
 # Try to link conftest.$ac_ext, and return whether this succeeded. Assumes
@@ -1782,43 +1828,6 @@ fi
 
 } # ac_fn_c_try_run
 
-# ac_fn_c_try_cpp LINENO
-# ----------------------
-# Try to preprocess conftest.$ac_ext, and return whether this succeeded.
-ac_fn_c_try_cpp ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  if { { ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
-  ac_status=$?
-  if test -s conftest.err; then
-    grep -v '^ *+' conftest.err >conftest.er1
-    cat conftest.er1 >&5
-    mv -f conftest.er1 conftest.err
-  fi
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } > conftest.i && {
-        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       }; then :
-  ac_retval=0
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-    ac_retval=1
-fi
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-  as_fn_set_status $ac_retval
-
-} # ac_fn_c_try_cpp
-
 # ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES
 # -------------------------------------------------------
 # Tests whether HEADER exists, giving a warning if it cannot be compiled using
@@ -2625,6 +2634,10 @@ echo "command line was: $0 $@"
 
 
 
+
+
+
+
 
 
 
@@ -4376,27 +4389,15 @@ $as_echo "Solaris: adding -D__EXTENSIONS__" >&6; }
 
   OBJCC="$CC"
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler works on ANSI C" >&5
-$as_echo_n "checking whether the compiler works on ANSI C... " >&6; }
-  if test "$cross_compiling" = yes; then :
-  as_fn_error $? "Couldn't build even a trivial ANSI C program: check CC." "$LINENO" 5
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
- main(int ac, char **av) { return 0; }
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-     as_fn_error $? "Couldn't build even a trivial ANSI C program: check CC." "$LINENO" 5
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
+  # This test makes cross-compiling fail, so let's just assume that nobody
+  # is using a K&R compiler any more...
+  #
+#  AC_MSG_CHECKING([whether the compiler works on ANSI C])
+#  AC_TRY_RUN([ main(int ac, char **av) { return 0; } ],
+#     AC_MSG_RESULT(yes),
+#     AC_MSG_RESULT(no)
+#     AC_MSG_ERROR(Couldn't build even a trivial ANSI C program: check CC.),
+#     AC_MSG_ERROR(Couldn't build even a trivial ANSI C program: check CC.))
 
   if test -n "$GCC"; then
     { $as_echo "$as_me:${as_lineno-$LINENO}: result: Turning on gcc compiler warnings." >&5
@@ -13410,7 +13411,7 @@ if ${ac_cv_mesagl_version_string+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 13417 "configure"
+#line 13418 "configure"
 #include "confdefs.h"
 #include <GL/gl.h>
 #ifndef MESA_MAJOR_VERSION
@@ -15017,6 +15018,219 @@ else
 fi
 
 
+###############################################################################
+#
+#       Check for -lsystemd
+#
+###############################################################################
+
+have_systemd=no
+with_systemd_req=unspecified
+systemd_halfassed=no
+
+# Check whether --with-systemd was given.
+if test "${with_systemd+set}" = set; then :
+  withval=$with_systemd; with_systemd="$withval"; with_systemd_req="$withval"
+else
+  with_systemd=yes
+fi
+
+
+
+   case "$with_systemd" in
+    yes) ;;
+    no)  ;;
+
+    /*)
+     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for systemd headers" >&5
+$as_echo_n "checking for systemd headers... " >&6; }
+     d=$with_systemd/include
+     if test -d $d; then
+       X_CFLAGS="-I$d $X_CFLAGS"
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $d" >&5
+$as_echo "$d" >&6; }
+     else
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found ($d: no such directory)" >&5
+$as_echo "not found ($d: no such directory)" >&6; }
+     fi
+
+     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for systemd libs" >&5
+$as_echo_n "checking for systemd libs... " >&6; }
+     d=$with_systemd/lib
+     if test -d $d; then
+       X_LIBS="-L$d $X_LIBS"
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $d" >&5
+$as_echo "$d" >&6; }
+     else
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found ($d: no such directory)" >&5
+$as_echo "not found ($d: no such directory)" >&6; }
+     fi
+
+     # replace the directory string with "yes".
+     with_systemd_req="yes"
+     with_systemd=$with_systemd_req
+     ;;
+
+    *)
+     echo ""
+     echo "error: argument to --with-systemd must be \"yes\", \"no\", or a directory."
+     echo "       If it is a directory, then \`DIR/include' will be added to"
+     echo "       the -I list, and \`DIR/lib' will be added to the -L list."
+     exit 1
+     ;;
+   esac
+
+
+if test "$with_systemd" != yes -a "$with_systemd" != no ; then
+  echo "error: must be yes or no: --with-systemd=$with_systemd"
+  exit 1
+fi
+
+if test "$with_systemd" = yes; then
+
+  pkgs=''
+  ok="yes"
+  pkg_check_version libsystemd 221
+  have_systemd="$ok"
+
+  if test "$have_systemd" = yes; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libsystemd includes" >&5
+$as_echo_n "checking for libsystemd includes... " >&6; }
+if ${ac_cv_systemd_config_cflags+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_cv_systemd_config_cflags=`$pkg_config --cflags $pkgs`
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_systemd_config_cflags" >&5
+$as_echo "$ac_cv_systemd_config_cflags" >&6; }
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libsystemd libs" >&5
+$as_echo_n "checking for libsystemd libs... " >&6; }
+if ${ac_cv_systemd_config_libs+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_cv_systemd_config_libs=`$pkg_config --libs $pkgs`
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_systemd_config_libs" >&5
+$as_echo "$ac_cv_systemd_config_libs" >&6; }
+  fi
+
+  ac_systemd_config_cflags=$ac_cv_systemd_config_cflags
+  ac_systemd_config_libs=$ac_cv_systemd_config_libs
+
+  if test "$have_systemd" = yes; then
+    #
+    # we appear to have libsystemd; check for headers/libs to be sure.
+    #
+    ac_save_systemd_CPPFLAGS="$CPPFLAGS"
+    CPPFLAGS="$CPPFLAGS $ac_systemd_config_cflags"
+
+    have_systemd=no
+
+  ac_save_CPPFLAGS="$CPPFLAGS"
+  if test \! -z "$includedir" ; then
+    CPPFLAGS="$CPPFLAGS -I$includedir"
+  fi
+  CPPFLAGS="$CPPFLAGS $X_CFLAGS"
+  CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS`
+  ac_fn_c_check_header_mongrel "$LINENO" "systemd/sd-bus.h" "ac_cv_header_systemd_sd_bus_h" "$ac_includes_default"
+if test "x$ac_cv_header_systemd_sd_bus_h" = xyes; then :
+  have_systemd=yes
+fi
+
+
+  CPPFLAGS="$ac_save_CPPFLAGS"
+
+    CPPFLAGS="$ac_save_systemd_CPPFLAGS"
+  fi
+
+  if test "$have_systemd" = yes; then
+    # we have the headers, now check for the libraries
+    have_systemd=no
+    systemd_halfassed=yes
+
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: checking for libsystemd usability..." >&5
+$as_echo "checking for libsystemd usability..." >&6; }
+
+  ac_save_CPPFLAGS="$CPPFLAGS"
+  ac_save_LDFLAGS="$LDFLAGS"
+#  ac_save_LIBS="$LIBS"
+
+  if test \! -z "$includedir" ; then
+    CPPFLAGS="$CPPFLAGS -I$includedir"
+  fi
+  # note: $X_CFLAGS includes $x_includes
+  CPPFLAGS="$CPPFLAGS $X_CFLAGS"
+
+  if test \! -z "$libdir" ; then
+    LDFLAGS="$LDFLAGS -L$libdir"
+  fi
+  # note: $X_LIBS includes $x_libraries
+  LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS"
+
+  CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS`
+  LDFLAGS=`eval eval eval eval eval eval eval eval eval echo $LDFLAGS`
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sd_bus_open_system in -lc" >&5
+$as_echo_n "checking for sd_bus_open_system in -lc... " >&6; }
+if ${ac_cv_lib_c_sd_bus_open_system+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lc $ac_systemd_config_libs -lX11 -lXext -lm $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char sd_bus_open_system ();
+int
+main ()
+{
+return sd_bus_open_system ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_lib_c_sd_bus_open_system=yes
+else
+  ac_cv_lib_c_sd_bus_open_system=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_c_sd_bus_open_system" >&5
+$as_echo "$ac_cv_lib_c_sd_bus_open_system" >&6; }
+if test "x$ac_cv_lib_c_sd_bus_open_system" = xyes; then :
+  have_systemd=yes
+fi
+
+  CPPFLAGS="$ac_save_CPPFLAGS"
+  LDFLAGS="$ac_save_LDFLAGS"
+#  LIBS="$ac_save_LIBS"
+
+  fi
+
+  if test "$have_systemd" = no; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: checking for libsystemd usability... no" >&5
+$as_echo "checking for libsystemd usability... no" >&6; }
+  fi
+fi
+
+if test "$have_systemd" = yes; then
+  INCLUDES="$INCLUDES $ac_systemd_config_cflags"
+  EXES_SYSTEMD='$(EXES_SYSTEMD)'
+  $as_echo "#define HAVE_LIBSYSTEMD 1" >>confdefs.h
+
+else
+  EXES_SYSTEMD=''
+fi
+
+
 ###############################################################################
 #
 #       Check for pty support: this allows 'phosphor' and 'apple2'
@@ -15835,6 +16049,207 @@ elif test "$setuid_hacks" != no; then
 fi
 
 
+###############################################################################
+#
+#       Check for setcap, which is less worrying than setuid.
+#
+###############################################################################
+
+have_libcap=no
+setcap_hacks_default=yes
+setcap_hacks="$setcap_hacks_default"
+setcap_hacks_req=unspecified
+
+# Check whether --with-setcap-hacks was given.
+if test "${with_setcap_hacks+set}" = set; then :
+  withval=$with_setcap_hacks; setcap_hacks="$withval"; setcap_hacks_req="$withval"
+else
+  setcap_hacks=yes
+fi
+
+
+
+   case "$setcap_hacks" in
+    yes) ;;
+    no)  ;;
+
+    /*)
+     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for setcap hacks headers" >&5
+$as_echo_n "checking for setcap hacks headers... " >&6; }
+     d=$setcap_hacks/include
+     if test -d $d; then
+       X_CFLAGS="-I$d $X_CFLAGS"
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $d" >&5
+$as_echo "$d" >&6; }
+     else
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found ($d: no such directory)" >&5
+$as_echo "not found ($d: no such directory)" >&6; }
+     fi
+
+     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for setcap hacks libs" >&5
+$as_echo_n "checking for setcap hacks libs... " >&6; }
+     d=$setcap_hacks/lib
+     if test -d $d; then
+       X_LIBS="-L$d $X_LIBS"
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $d" >&5
+$as_echo "$d" >&6; }
+     else
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found ($d: no such directory)" >&5
+$as_echo "not found ($d: no such directory)" >&6; }
+     fi
+
+     # replace the directory string with "yes".
+     setcap_hacks_req="yes"
+     setcap_hacks=$setcap_hacks_req
+     ;;
+
+    *)
+     echo ""
+     echo "error: argument to --with-setcap-hacks must be \"yes\", \"no\", or a directory."
+     echo "       If it is a directory, then \`DIR/include' will be added to"
+     echo "       the -I list, and \`DIR/lib' will be added to the -L list."
+     exit 1
+     ;;
+   esac
+
+
+if test "$setcap_hacks" != yes -a "$setcap_hacks" != no ; then
+  echo "error: must be yes or no: --with-setcap-hacks=$setcap_hacks"
+  exit 1
+fi
+
+if test "$setcap_hacks" = yes; then
+
+  for ac_prog in setcap
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_setcap_program+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$setcap_program"; then
+  ac_cv_prog_setcap_program="$setcap_program" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_setcap_program="$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+setcap_program=$ac_cv_prog_setcap_program
+if test -n "$setcap_program"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $setcap_program" >&5
+$as_echo "$setcap_program" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+  test -n "$setcap_program" && break
+done
+
+  if test "$setcap_program" != ''; then
+
+  ac_save_CPPFLAGS="$CPPFLAGS"
+  if test \! -z "$includedir" ; then
+    CPPFLAGS="$CPPFLAGS -I$includedir"
+  fi
+  CPPFLAGS="$CPPFLAGS $X_CFLAGS"
+  CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS`
+  ac_fn_c_check_header_mongrel "$LINENO" "sys/capability.h" "ac_cv_header_sys_capability_h" "$ac_includes_default"
+if test "x$ac_cv_header_sys_capability_h" = xyes; then :
+  have_setcap=yes
+fi
+
+
+  CPPFLAGS="$ac_save_CPPFLAGS"
+  fi
+  if test "$have_setcap" = yes; then
+
+  ac_save_CPPFLAGS="$CPPFLAGS"
+  ac_save_LDFLAGS="$LDFLAGS"
+#  ac_save_LIBS="$LIBS"
+
+  if test \! -z "$includedir" ; then
+    CPPFLAGS="$CPPFLAGS -I$includedir"
+  fi
+  # note: $X_CFLAGS includes $x_includes
+  CPPFLAGS="$CPPFLAGS $X_CFLAGS"
+
+  if test \! -z "$libdir" ; then
+    LDFLAGS="$LDFLAGS -L$libdir"
+  fi
+  # note: $X_LIBS includes $x_libraries
+  LDFLAGS="$LDFLAGS $X_LIBS $X_EXTRA_LIBS"
+
+  CPPFLAGS=`eval eval eval eval eval eval eval eval eval echo $CPPFLAGS`
+  LDFLAGS=`eval eval eval eval eval eval eval eval eval echo $LDFLAGS`
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cap_set_flag in -lcap" >&5
+$as_echo_n "checking for cap_set_flag in -lcap... " >&6; }
+if ${ac_cv_lib_cap_cap_set_flag+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lcap  $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char cap_set_flag ();
+int
+main ()
+{
+return cap_set_flag ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_lib_cap_cap_set_flag=yes
+else
+  ac_cv_lib_cap_cap_set_flag=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_cap_cap_set_flag" >&5
+$as_echo "$ac_cv_lib_cap_cap_set_flag" >&6; }
+if test "x$ac_cv_lib_cap_cap_set_flag" = xyes; then :
+  have_libcap=yes
+                    PROG_SETCAP="$setcap_program"
+                    LIBCAP_LIBS="-lcap"
+                    $as_echo "#define HAVE_LIBCAP 1" >>confdefs.h
+
+fi
+
+  CPPFLAGS="$ac_save_CPPFLAGS"
+  LDFLAGS="$ac_save_LDFLAGS"
+#  LIBS="$ac_save_LIBS"
+
+  fi
+fi
+
+
 ###############################################################################
 #
 #       Check for --with-record-animation
@@ -16005,6 +16420,12 @@ else
   SETUID_HACKS=no
 fi
 
+if test "$have_libcap" = yes; then
+  SETCAP_HACKS=yes
+else
+  SETCAP_HACKS=no
+fi
+
 tab='  '
 if test "$have_gl" = yes; then
   GL_EXES='$(GL_EXES)'
@@ -16159,6 +16580,11 @@ INCLUDES=`echo "$INCLUDES" | sed 's@ -I${prefix}/include@@g;'`
 
 
 
+
+
+
+
+
 
 
 
@@ -17831,6 +18257,37 @@ if test "$have_xft" = no ; then
 fi
 
 
+if test "$have_systemd" = no ; then
+  systemd_warned=no
+  if test "$with_systemd_req" = yes ; then
+    warnL "Use of systemd was requested, but it was not found."
+    systemd_warned=yes
+  elif test "$with_systemd_req" = no ; then
+    true
+    # noteL 'The systemd library is not being used.'
+    # systemd_warned=yes
+  else
+    true
+    # noteL "The systemd library was not found."
+    # systemd_warned=yes
+  fi
+
+  if test "$systemd_halfassed" = yes ; then
+    echo ''
+    warn2 'More specifically, we found the headers, but not the'
+    warn2 'libraries; so either systemd is half-installed on this'
+    warn2 "system, or something else went wrong.  The \`config.log'"
+    warn2 'file might contain some clues.'
+    echo ''
+    systemd_warned=yes
+  fi
+
+  if test "$systemd_warned" = yes; then
+    warn2 "This means that xscreensaver-systemd won't be built."
+  fi
+fi
+
+
 if test "$have_gl" = yes -a "$ac_have_mesa_gl" = yes ; then
   preferred_mesagl=3.4
   mgv="$ac_mesagl_version_string"
@@ -17930,6 +18387,10 @@ if test "$with_shadow_req" = yes -a "$have_shadow" = no ; then
   warn 'Use of shadow passwords was requested, but they were not found.'
 fi
 
+if test "$setcap_hacks_req" = yes -a "$have_libcap" = no ; then
+  warn 'Use of libcap was requested, but it was not found.'
+fi
+
 if test "$ac_macosx" = yes ; then
   if test "$enable_locking" = yes ; then
     warn  "You have specified --enable-locking on MacOS X."
index f8ed25ea14fe61cd947890ae1571625dd7c44427..20fb0f7ae03c26eae174021baa229047ba5b8e2e 100644 (file)
@@ -181,6 +181,9 @@ AH_TEMPLATE([HAVE_XUTF8DRAWSTRING],
 AH_TEMPLATE([HAVE_XFT],
            [Define this if you have libXft2.])
 
+AH_TEMPLATE([HAVE_LIBSYSTEMD],
+           [Define this if you have libsystemd.])
+
 AH_TEMPLATE([HAVE_GL],
            [Define this if you have OpenGL.  Some of the demos require it,
            so if you don't have it, then those particular demos won't be
@@ -329,6 +332,9 @@ AH_TEMPLATE([XPointer],
 AH_TEMPLATE([HAVE_PTHREAD],
            [Define this if your system supports POSIX threads.])
 
+AH_TEMPLATE([HAVE_LIBCAP],
+           [Define this if your system has libcap.])
+
 AH_TEMPLATE([HAVE_RECORD_ANIM],
            [Define this to enable recording of videos.])
 
@@ -427,12 +433,15 @@ AC_DEFUN([AC_PROG_CC_ANSI],
 
   OBJCC="$CC"
 
-  AC_MSG_CHECKING([whether the compiler works on ANSI C])
-  AC_TRY_RUN([ main(int ac, char **av) { return 0; } ],
-     AC_MSG_RESULT(yes),
-     AC_MSG_RESULT(no)
-     AC_MSG_ERROR(Couldn't build even a trivial ANSI C program: check CC.),
-     AC_MSG_ERROR(Couldn't build even a trivial ANSI C program: check CC.))
+  # This test makes cross-compiling fail, so let's just assume that nobody
+  # is using a K&R compiler any more...
+  #
+#  AC_MSG_CHECKING([whether the compiler works on ANSI C])
+#  AC_TRY_RUN([ main(int ac, char **av) { return 0; } ],
+#     AC_MSG_RESULT(yes),
+#     AC_MSG_RESULT(no)
+#     AC_MSG_ERROR(Couldn't build even a trivial ANSI C program: check CC.),
+#     AC_MSG_ERROR(Couldn't build even a trivial ANSI C program: check CC.))
 
   if test -n "$GCC"; then
     AC_MSG_RESULT(Turning on gcc compiler warnings.)
@@ -3561,6 +3570,81 @@ else
 fi
 
 
+###############################################################################
+#
+#       Check for -lsystemd
+#
+###############################################################################
+
+have_systemd=no
+with_systemd_req=unspecified
+systemd_halfassed=no
+AC_ARG_WITH(systemd,
+[  --with-systemd          Build xscreensaver-systemd to lock on suspend.],
+  [with_systemd="$withval"; with_systemd_req="$withval"],
+  [with_systemd=yes])
+
+HANDLE_X_PATH_ARG(with_systemd, --with-systemd, systemd)
+
+if test "$with_systemd" != yes -a "$with_systemd" != no ; then
+  echo "error: must be yes or no: --with-systemd=$with_systemd"
+  exit 1
+fi
+
+if test "$with_systemd" = yes; then
+
+  pkgs=''
+  ok="yes"
+  pkg_check_version libsystemd 221
+  have_systemd="$ok"
+
+  if test "$have_systemd" = yes; then
+    AC_CACHE_CHECK([for libsystemd includes], ac_cv_systemd_config_cflags,
+               [ac_cv_systemd_config_cflags=`$pkg_config --cflags $pkgs`])
+    AC_CACHE_CHECK([for libsystemd libs], ac_cv_systemd_config_libs,
+               [ac_cv_systemd_config_libs=`$pkg_config --libs $pkgs`])
+  fi
+
+  ac_systemd_config_cflags=$ac_cv_systemd_config_cflags
+  ac_systemd_config_libs=$ac_cv_systemd_config_libs
+
+  if test "$have_systemd" = yes; then
+    #
+    # we appear to have libsystemd; check for headers/libs to be sure.
+    #
+    ac_save_systemd_CPPFLAGS="$CPPFLAGS"
+    CPPFLAGS="$CPPFLAGS $ac_systemd_config_cflags"
+
+    have_systemd=no
+    AC_CHECK_X_HEADER(systemd/sd-bus.h, [have_systemd=yes])
+
+    CPPFLAGS="$ac_save_systemd_CPPFLAGS"
+  fi
+
+  if test "$have_systemd" = yes; then
+    # we have the headers, now check for the libraries
+    have_systemd=no
+    systemd_halfassed=yes
+
+    AC_MSG_RESULT(checking for libsystemd usability...)
+    AC_CHECK_X_LIB(c, sd_bus_open_system, [have_systemd=yes],,
+                   $ac_systemd_config_libs -lX11 -lXext -lm)
+  fi
+
+  if test "$have_systemd" = no; then
+    AC_MSG_RESULT(checking for libsystemd usability... no)
+  fi
+fi
+
+if test "$have_systemd" = yes; then
+  INCLUDES="$INCLUDES $ac_systemd_config_cflags"
+  EXES_SYSTEMD='$(EXES_SYSTEMD)'
+  AC_DEFINE(HAVE_LIBSYSTEMD)
+else
+  EXES_SYSTEMD=''
+fi
+
+
 ###############################################################################
 #
 #       Check for pty support: this allows 'phosphor' and 'apple2'
@@ -3885,8 +3969,7 @@ setuid_hacks_default=no
 setuid_hacks="$setuid_hacks_default"
 AC_ARG_WITH(setuid-hacks,
 [  --with-setuid-hacks     Allow some demos to be installed `setuid root'
-                          (which is needed in order to ping other hosts.)
-],
+                          (which is needed in order to ping other hosts.)],
   [setuid_hacks="$withval"], [setuid_hacks="$setuid_hacks_default"])
 
 HANDLE_X_PATH_ARG(setuid_hacks, --with-setuid-hacks, setuid hacks)
@@ -3899,6 +3982,45 @@ elif test "$setuid_hacks" != no; then
 fi
 
 
+###############################################################################
+#
+#       Check for setcap, which is less worrying than setuid.
+#
+###############################################################################
+
+have_libcap=no
+setcap_hacks_default=yes
+setcap_hacks="$setcap_hacks_default"
+setcap_hacks_req=unspecified
+AC_ARG_WITH(setcap-hacks,
+[  --with-setcap-hacks     Allow some demos to be installed with setcap
+                          (which is needed in order to ping other hosts.)],
+  [setcap_hacks="$withval"; setcap_hacks_req="$withval"],
+  [setcap_hacks=yes])
+
+HANDLE_X_PATH_ARG(setcap_hacks, --with-setcap-hacks, setcap hacks)
+
+if test "$setcap_hacks" != yes -a "$setcap_hacks" != no ; then
+  echo "error: must be yes or no: --with-setcap-hacks=$setcap_hacks"
+  exit 1
+fi
+
+if test "$setcap_hacks" = yes; then
+
+  AC_CHECK_PROGS(setcap_program, setcap)
+  if test "$setcap_program" != ''; then
+    AC_CHECK_X_HEADER(sys/capability.h, [have_setcap=yes])
+  fi
+  if test "$have_setcap" = yes; then
+    AC_CHECK_X_LIB(cap, cap_set_flag,
+                   [have_libcap=yes
+                    PROG_SETCAP="$setcap_program"
+                    LIBCAP_LIBS="-lcap"
+                    AC_DEFINE(HAVE_LIBCAP)])
+  fi
+fi
+
+
 ###############################################################################
 #
 #       Check for --with-record-animation
@@ -3908,8 +4030,7 @@ fi
 record_anim_default=no
 record_anim="$record_anim_default"
 AC_ARG_WITH(record-animation,
-[  --with-record-animation Include code for generating MP4 videos.
-],
+[  --with-record-animation Include code for generating MP4 videos.],
   [record_anim="$withval"], [record_anim="$record_anim_default"])
 
 HANDLE_X_PATH_ARG(record_anim, --with-record-animation, record animation)
@@ -4020,6 +4141,12 @@ else
   SETUID_HACKS=no
 fi
 
+if test "$have_libcap" = yes; then
+  SETCAP_HACKS=yes
+else
+  SETCAP_HACKS=no
+fi
+
 tab='  '
 if test "$have_gl" = yes; then
   GL_EXES='$(GL_EXES)'
@@ -4121,8 +4248,12 @@ AC_SUBST(GLE_LIBS)
 AC_SUBST(XDPMS_LIBS)
 AC_SUBST(XINERAMA_LIBS)
 AC_SUBST(PASSWD_LIBS)
+AC_SUBST(LIBCAP_CFLAGS)
+AC_SUBST(LIBCAP_LIBS)
+AC_SUBST(PROG_SETCAP)
 AC_SUBST(INSTALL_SETUID)
 AC_SUBST(SETUID_HACKS)
+AC_SUBST(SETCAP_HACKS)
 AC_SUBST(INSTALL_DIRS)
 AC_SUBST(NEED_SETUID)
 AC_SUBST(INSTALL_PAM)
@@ -4140,6 +4271,7 @@ AC_SUBST(COMMENT_DEMO_GLADE2_GTK_2_22_TAIL)
 
 AC_SUBST(OBJCC)
 AC_SUBST(EXES_OSX)
+AC_SUBST(EXES_SYSTEMD)
 AC_SUBST(SCRIPTS_OSX)
 AC_SUBST(MEN_OSX)
 
@@ -4520,6 +4652,37 @@ if test "$have_xft" = no ; then
 fi
 
 
+if test "$have_systemd" = no ; then
+  systemd_warned=no
+  if test "$with_systemd_req" = yes ; then
+    warnL "Use of systemd was requested, but it was not found."
+    systemd_warned=yes
+  elif test "$with_systemd_req" = no ; then
+    true
+    # noteL 'The systemd library is not being used.'
+    # systemd_warned=yes
+  else
+    true
+    # noteL "The systemd library was not found."
+    # systemd_warned=yes
+  fi
+
+  if test "$systemd_halfassed" = yes ; then
+    echo ''
+    warn2 'More specifically, we found the headers, but not the'
+    warn2 'libraries; so either systemd is half-installed on this'
+    warn2 "system, or something else went wrong.  The \`config.log'"
+    warn2 'file might contain some clues.'
+    echo ''
+    systemd_warned=yes
+  fi
+
+  if test "$systemd_warned" = yes; then
+    warn2 "This means that xscreensaver-systemd won't be built."
+  fi
+fi
+
+
 if test "$have_gl" = yes -a "$ac_have_mesa_gl" = yes ; then
   preferred_mesagl=3.4
   mgv="$ac_mesagl_version_string"
@@ -4619,6 +4782,10 @@ if test "$with_shadow_req" = yes -a "$have_shadow" = no ; then
   warn 'Use of shadow passwords was requested, but they were not found.'
 fi
 
+if test "$setcap_hacks_req" = yes -a "$have_libcap" = no ; then
+  warn 'Use of libcap was requested, but it was not found.'
+fi
+
 if test "$ac_macosx" = yes ; then
   if test "$enable_locking" = yes ; then
     warn  "You have specified --enable-locking on MacOS X."
index b13853e0ecc5141a79fa0bc0458cd768da790753..4ca00b68ede57430bbcb554306a026bd9e08f19c 100644 (file)
@@ -113,6 +113,10 @@ LOCK_OBJS_1        = lock.o passwd.o
 NOLOCK_SRCS_1  = lock.c
 NOLOCK_OBJS_1  = lock.o
 
+SYSTEMD_SRCS   = xscreensaver-systemd.c
+SYSTEMD_OBJS   = xscreensaver-systemd.o
+SYSTEMD_LIBS   = -lsystemd
+
 TEST_SRCS      = test-passwd.c test-uid.c  test-xdpms.c    test-grab.c \
                  test-apm.c    test-fade.c test-xinerama.c test-vp.c   \
                  test-randr.c  xdpyinfo.c  test-mlstring.c test-screens.c \
@@ -216,9 +220,10 @@ GETIMG_LIBS        = $(LIBS) $(X_LIBS) $(PNG_LIBS) $(JPEG_LIBS) \
                  $(X_PRE_LIBS) -lXt -lX11 $(XMU_LIBS) -lXext $(X_EXTRA_LIBS)
 
 EXES           = xscreensaver xscreensaver-command xscreensaver-demo \
-                 xscreensaver-getimage @EXES_OSX@
+                 xscreensaver-getimage @EXES_OSX@ @EXES_SYSTEMD@
 EXES2          = @ALL_DEMO_PROGRAMS@
 EXES_OSX       = pdf2jpeg
+EXES_SYSTEMD   = xscreensaver-systemd
 
 SCRIPTS_1      = xscreensaver-getimage-file xscreensaver-getimage-video \
                  xscreensaver-text
@@ -233,7 +238,8 @@ MEN_1               = xscreensaver.man xscreensaver-demo.man \
                  xscreensaver-text.man \
                  xscreensaver-getimage.man \
                  xscreensaver-getimage-file.man \
-                 xscreensaver-getimage-video.man
+                 xscreensaver-getimage-video.man \
+                 xscreensaver-systemd.man
 MEN_OSX                = xscreensaver-getimage-desktop.man pdf2jpeg.man
 MEN            = $(MEN_1) @MEN_OSX@
 
@@ -246,7 +252,7 @@ VMSFILES    = compile_axp.com compile_decc.com link_axp.com link_decc.com \
                  vms-getpwnam.c vms-pwd.h vms-hpwd.c vms-validate.c \
                  vms_axp.opt vms_axp_12.opt vms_decc.opt vms_decc_12.opt
 
-TARFILES       = $(EXTRAS) $(VMSFILES) $(SAVER_SRCS_1) \
+TARFILES       = $(EXTRAS) $(VMSFILES) $(SAVER_SRCS_1) $(SYSTEMD_SRCS) \
                  $(MOTIF_SRCS) $(GTK_SRCS) $(PWENT_SRCS) $(PWHELPER_SRCS) \
                  $(KERBEROS_SRCS) $(PAM_SRCS) $(LOCK_SRCS_1) $(DEMO_SRCS_1) \
                  $(CMD_SRCS) $(GETIMG_SRCS_1) $(PDF2JPEG_SRCS) $(HDRS) \
@@ -647,7 +653,7 @@ distdepend: check_men update_ad_version XScreenSaver_ad.h XScreenSaver_Xm_ad.h
        $(INCLUDES_1) $(DEFS) $(DEPEND_DEFINES) $(CFLAGS) $(X_CFLAGS) --    \
        $(SAVER_SRCS_1) $(MOTIF_SRCS) $(GTK_SRCS) $(GETIMG_SRCS_1)          \
        $(PWENT_SRCS) $(LOCK_SRCS_1) $(DEMO_SRCS_1) $(CMD_SRCS)             \
-       $(TEST_SRCS) 2>/dev/null |                                          \
+       $(SYSTEMD_SRCS) $(TEST_SRCS) 2>/dev/null |                          \
        sort -d |                                                           \
        (                                                                   \
          awk '/^# .*Makefile.in ---/,/^# DO .*distdepend/' < Makefile.in ; \
@@ -820,6 +826,8 @@ xscreensaver-getimage: $(GETIMG_OBJS)
 pdf2jpeg: $(PDF2JPEG_OBJS)
        $(OBJCC) $(LDFLAGS) -o $@ $(PDF2JPEG_OBJS) $(PDF2JPEG_LIBS) -lm
 
+xscreensaver-systemd: $(SYSTEMD_OBJS)
+       $(CC) $(LDFLAGS) -o $@ $(SYSTEMD_OBJS) $(SYSTEMD_LIBS) -lm
 
 TEST_PASSWD_OBJS = test-passwd.o $(LOCK_OBJS_1) $(PASSWD_OBJS) \
         subprocs.o setuid.o splash.o prefs.o mlstring.o exec.o \
index eec998f186cc681761178ec704ca60481d4399be..14f3e96f5cbd5ae40db1008a54cf2d611ef0e36b 100644 (file)
@@ -4,8 +4,8 @@
 !            a screen saver and locker for the X window system
 !                            by Jamie Zawinski
 !
-!                              version 5.42
-!                              28-Dec-2018
+!                              version 5.43
+!                              01-Jul-2019
 !
 ! See "man xscreensaver" for more info.  The latest version is always
 ! available at https://www.jwz.org/xscreensaver/
@@ -55,7 +55,7 @@
 *splash:               True
 *splashDuration:       0:00:05
 *visualID:             default
-*captureStderr:        True
+*installColormap:      True
 *ignoreUninstalledPrograms: False
 *authWarningSlack:     20
 
 *textProgram:          fortune
 *textURL:              https://en.wikipedia.org/w/index.php?title=Special:NewPages&feed=rss
 
+! When a saver writes an error message to stdout/stderr, it can be printed
+! on the screen.
+!
+*captureStderr:        True
+*overlayStderr:                True
 *overlayTextForeground:        #FFFF00
 *overlayTextBackground:        #000000
-*overlayStderr:                True
 *font:                 *-medium-r-*-140-*-m-*
 
-! The default is to use these extensions if available (as noted.)
+! The default is to use these server extensions if available (as noted.)
 *sgiSaverExtension:    True
 *xidleExtension:       True
 *procInterrupts:       True
 
 ! Set this to True if you are experiencing longstanding XFree86 bug #421
 ! (xscreensaver not covering the whole screen)
-GetViewPortIsFullOfLies: False
+*GetViewPortIsFullOfLies: False
 
-! This is what the "Demo" button on the splash screen runs (/bin/sh syntax.)
+! This is what the "Settings" button on the splash screen runs.
 *demoCommand: xscreensaver-demo
 
-! This is what the "Prefs" button on the splash screen runs (/bin/sh syntax.)
-*prefsCommand: xscreensaver-demo -prefs
-
 ! This is the URL loaded by the "Help" button on the splash screen,
 ! and by the "Documentation" menu item in xscreensaver-demo.
 *helpURL: https://www.jwz.org/xscreensaver/man.html
@@ -124,6 +125,8 @@ GetViewPortIsFullOfLies: False
 ! The format used for printing the date and time in the password dialog box
 ! (see the strftime(3) manual page for details.)
 *dateFormat:           %d-%b-%y (%a); %I:%M %p
+! For day month date:
+! *dateFormat:         %a %b %d, %I:%M %p
 ! To show the time only:
 ! *dateFormat:         %I:%M %p
 ! For 24 hour time:
@@ -139,15 +142,195 @@ GetViewPortIsFullOfLies: False
 @NEW_LOGIN_COMMAND_P@*newLoginCommand: @NEW_LOGIN_COMMAND@
 
 
-! Turning on "installColormap" on 8-bit systems interacts erratically with
-! certain jurassic window managers.  If your screen turns some color other
-! than black, the window manager is buggy, and you need to set this resource
-! to false.  Or switch WMs.  Or join the 21st century and get a 24-bit
-! graphics card.
+! Change these at your peril:
 !
-*installColormap:      True
+XScreenSaver.pointerPollTime:          0:00:05
+XScreenSaver.pointerHysteresis:                10
+XScreenSaver.initialDelay:             0:00:00
+XScreenSaver.windowCreationTimeout:    0:00:30
+XScreenSaver.bourneShell:              /bin/sh
+
 
+!=============================================================================
+!
+!      Colors and fonts for the unlock dialog and splash screen.
+!
+!=============================================================================
 
+! Note, the daemon uses Xlib XLoadFont, not Xft.  If these fonts don't
+! exist, arcane heuristics are applied until we find something similar.
+!
+*Dialog.headingFont:   -*-helvetica-bold-r-*-*-*-180-*-*-*-*-iso8859-1
+*Dialog.bodyFont:      -*-helvetica-bold-r-*-*-*-140-*-*-*-*-iso8859-1
+*Dialog.labelFont:     -*-helvetica-bold-r-*-*-*-140-*-*-*-*-iso8859-1
+*Dialog.unameFont:     -*-helvetica-bold-r-*-*-*-120-*-*-*-*-iso8859-1
+*Dialog.buttonFont:    -*-helvetica-bold-r-*-*-*-140-*-*-*-*-iso8859-1
+*Dialog.dateFont:      -*-helvetica-medium-r-*-*-*-80-*-*-*-*-iso8859-1
+
+! Helvetica asterisks look terrible.
+*passwd.passwdFont:    -*-courier-bold-r-*-*-*-140-*-*-*-iso8859-1
+
+! Whether to display the local host name in the unlock dialog.
+*passwd.uname:                  True
+
+! Whether typed passwords should echo as asterisks (true) or nothing (false)
+*passwd.asterisks:              True
+
+
+! The default color scheme for the unlock and splash dialogs.
+! This looks pretty close to the default Gtk theme.
+!
+*Dialog.foreground:            #000000
+*Dialog.background:            #E6E6E6
+*Dialog.Button.foreground:     #000000
+*Dialog.Button.background:     #F5F5F5
+*Dialog.text.foreground:       #000000
+*Dialog.text.background:       #FFFFFF
+*Dialog.topShadowColor:                #FFFFFF
+*Dialog.bottomShadowColor:     #CECECE
+*Dialog.logo.width:            210
+*Dialog.logo.height:           210
+*Dialog.internalBorderWidth:   24
+*Dialog.borderWidth:           1
+*Dialog.shadowThickness:       2
+*passwd.thermometer.foreground:        #4464AC
+*passwd.thermometer.background:        #FFFFFF
+*passwd.thermometer.width:     8
+
+
+! A few other example color schemes.
+!
+! A convenient way to debug these is to build and run "driver/test-passwd".
+! Remember that configure overwrites XScreenSaver.ad from XScreenSaver.ad.in.
+
+
+! Borderless theme:
+!
+! *Dialog.topShadowColor:         #E6E6E6
+! *Dialog.bottomShadowColor:      #E6E6E6
+! *passwd.thermometer.width:      6
+
+
+! Dark gray theme:
+!
+! *Dialog.foreground:             #CCCCCC
+! *Dialog.background:             #333333
+! *Dialog.topShadowColor:         #444444
+! *Dialog.bottomShadowColor:      #111111
+! *Dialog.text.foreground:        #DDDDDD
+! *Dialog.text.background:        #666666
+! *Dialog.Button.foreground:      #CCCCCC
+! *Dialog.Button.background:      #666666
+! *passwd.thermometer.foreground: #4464AC
+! *passwd.thermometer.background: #666666
+
+
+! Black borderless theme:
+!
+! *Dialog.foreground:             #CCCCCC
+! *Dialog.background:             #000000
+! *Dialog.topShadowColor:         #000000
+! *Dialog.bottomShadowColor:      #000000
+! *Dialog.text.foreground:        #CCCCCC
+! *Dialog.text.background:        #000000
+! *Dialog.Button.foreground:      #CCCCCC
+! *Dialog.Button.background:      #333333
+! *passwd.thermometer.foreground: #CCCCCC
+! *passwd.thermometer.background: #333333
+! *passwd.thermometer.width:      3
+
+
+! Green on black theme:
+!
+! *Dialog.foreground:             #00FF00
+! *Dialog.background:             #000000
+! *Dialog.topShadowColor:         #000000
+! *Dialog.bottomShadowColor:      #000000
+! *Dialog.shadowThickness:        1
+! *Dialog.text.foreground:        #00FF00
+! *Dialog.text.background:        #006600
+! *Dialog.Button.foreground:      #00FF00
+! *Dialog.Button.background:      #006600
+! *passwd.thermometer.foreground: #00CC00
+! *passwd.thermometer.background: #006600
+
+
+! White theme:
+!
+! *Dialog.foreground:             #000000
+! *Dialog.background:             #FFFFFF
+! *Dialog.topShadowColor:         #CCCCCC
+! *Dialog.bottomShadowColor:      #CCCCCC
+! *Dialog.shadowThickness:        1
+! *Dialog.text.foreground:        #000000
+! *Dialog.text.background:        #FFFFFF
+! *Dialog.Button.foreground:      #000000
+! *Dialog.Button.background:      #FFFFFF
+
+
+! Blue theme:
+!
+! *Dialog.foreground:             #000000
+! *Dialog.background:             #BBCCDD
+! *Dialog.topShadowColor:         #CCDDEE
+! *Dialog.bottomShadowColor:      #AABBCC
+! *Dialog.text.foreground:        #000000
+! *Dialog.text.background:        #DDEEFF
+! *Dialog.Button.foreground:      #000000
+! *Dialog.Button.background:      #DDEEFF
+! *passwd.thermometer.foreground: #5566AA
+! *passwd.thermometer.background: #BBCCDD
+
+
+! Aqua on black borderless theme:
+!
+! *Dialog.foreground:             #00EFEF
+! *Dialog.background:             #000000
+! *Dialog.topShadowColor:         #000000
+! *Dialog.bottomShadowColor:      #000000
+! *Dialog.Button.foreground:      #000000
+! *Dialog.Button.background:      #2244EE
+! *Dialog.text.foreground:        #2244EE
+! *Dialog.text.background:        #EEEEEE
+! *Dialog.internalBorderWidth:    36
+! *Dialog.borderWidth:            4
+! *Dialog.shadowThickness:        2
+! *passwd.thermometer.foreground: #2244EE
+! *passwd.thermometer.background: #000088
+
+
+! Wine theme, similar to the login screen of "Ubuntu 18.04 Community".
+!
+! *Dialog.foreground:             #AD8FA6
+! *Dialog.background:             #2C041E
+! *Dialog.topShadowColor:         #2C041E
+! *Dialog.bottomShadowColor:      #2C041E
+! *Dialog.text.foreground:        #706B70
+! *Dialog.text.background:        #F9F9F8
+! *Dialog.Button.foreground:      #CFC8CB
+! *Dialog.Button.background:      #4D2946
+! *passwd.thermometer.foreground: #AD8FA6
+! *passwd.thermometer.background: #4D2946
+! *passwd.thermometer.width:      6
+
+
+! Static text in the dialog boxes:
+!
+*passwd.heading.label:         XScreenSaver %s
+*passwd.body.label:            This screen is locked.
+*passwd.unlock.label:          OK
+*passwd.login.label:           New Login
+*passwd.user.label:            Username:
+
+*splash.heading.label:         XScreenSaver %s
+*splash.body.label:            Copyright \251 1991-2019 by
+*splash.body2.label:           Jamie Zawinski <jwz@jwz.org>
+*splash.demo.label:            Settings
+*splash.help.label:            Help
+
+
+!=============================================================================
+!
 ! This is the list of installed screen saver modes.  See "man xscreensaver"
 ! for the syntax used here.
 !
@@ -157,6 +340,8 @@ GetViewPortIsFullOfLies: False
 ! You can use the `xscreensaver-demo' program to edit the current list of
 ! screen savers interactively.
 !
+!=============================================================================
+
 *programs:                                                                   \
                                maze -root                                  \n\
 @GL_KLUDGE@ GL:                                superquadrics -root                         \n\
@@ -390,75 +575,16 @@ GetViewPortIsFullOfLies: False
 @GL_KLUDGE@ GL:                                maze3d -root                                \n\
 @GL_KLUDGE@ GL:                                peepers -root                               \n\
 @GL_KLUDGE@ GL:                                razzledazzle -root                          \n\
-                               vfeedback -root                             \n
-
-
-
-!=============================================================================
-!
-!      You probably don't want to change anything after this point.
-!
-!=============================================================================
-
-
-XScreenSaver.pointerPollTime:          0:00:05
-XScreenSaver.pointerHysteresis:                10
-XScreenSaver.initialDelay:             0:00:00
-XScreenSaver.windowCreationTimeout:    0:00:30
-XScreenSaver.bourneShell:              /bin/sh
-
-
-! Resources for the password and splash-screen dialog boxes of
-! the "xscreensaver" daemon.
-!
-*Dialog.headingFont:   -*-helvetica-bold-r-*-*-*-180-*-*-*-*-iso8859-1
-*Dialog.bodyFont:      -*-helvetica-bold-r-*-*-*-140-*-*-*-*-iso8859-1
-*Dialog.labelFont:     -*-helvetica-bold-r-*-*-*-140-*-*-*-*-iso8859-1
-*Dialog.unameFont:     -*-helvetica-bold-r-*-*-*-120-*-*-*-*-iso8859-1
-*Dialog.buttonFont:    -*-helvetica-bold-r-*-*-*-140-*-*-*-*-iso8859-1
-*Dialog.dateFont:      -*-helvetica-medium-r-*-*-*-80-*-*-*-*-iso8859-1
-
-! Helvetica asterisks look terrible.
-*passwd.passwdFont:    -*-courier-medium-r-*-*-*-140-*-*-*-iso8859-1
-
-
-*Dialog.foreground:            #000000
-*Dialog.background:            #E6E6E6
-*Dialog.Button.foreground:     #000000
-*Dialog.Button.background:     #F5F5F5
-!*Dialog.Button.pointBackground: #EAEAEA
-!*Dialog.Button.clickBackground: #C3C3C3
-*Dialog.text.foreground:       #000000
-*Dialog.text.background:       #FFFFFF
-*passwd.thermometer.foreground:        #4464AC
-*passwd.thermometer.background:        #FFFFFF
-*Dialog.topShadowColor:                #FFFFFF
-*Dialog.bottomShadowColor:     #CECECE
-*Dialog.logo.width:            210
-*Dialog.logo.height:           210
-*Dialog.internalBorderWidth:   24
-*Dialog.borderWidth:           1
-*Dialog.shadowThickness:       2
+                               vfeedback -root                             \n\
+@GL_KLUDGE@ GL:                                deepstars -root                             \n\
+@GL_KLUDGE@ GL:                                gravitywell -root                           \n
 
-*passwd.heading.label:         XScreenSaver %s
-*passwd.body.label:            This screen is locked.
-*passwd.unlock.label:          OK
-*passwd.login.label:           New Login
-*passwd.user.label:            Username:
-*passwd.thermometer.width:     8
-*passwd.asterisks:              True
-*passwd.uname:                  True
-
-*splash.heading.label:         XScreenSaver %s
-*splash.body.label:            Copyright \251 1991-2018 by
-*splash.body2.label:           Jamie Zawinski <jwz@jwz.org>
-*splash.demo.label:            Settings
-*splash.help.label:            Help
 
 
 !=============================================================================
 !
 ! Pretty names for the hacks that have unusual capitalization.
+! Used by xscreensaver-demo.
 !
 !=============================================================================
 
@@ -483,6 +609,7 @@ XScreenSaver.bourneShell:           /bin/sh
 *hacks.cwaves.name:         CWaves
 *hacks.dangerball.name:     DangerBall
 *hacks.decayscreen.name:    DecayScreen
+*hacks.deepstars.name:      DeepStars
 *hacks.dnalogo.name:        DNA Logo
 *hacks.dymaxionmap.name:    DymaxionMap
 *hacks.energystream.name:   EnergyStream
@@ -501,6 +628,7 @@ XScreenSaver.bourneShell:           /bin/sh
 *hacks.gleidescope.name:    Gleidescope
 *hacks.glforestfire.name:   GLForestFire
 *hacks.glitchpeg.name:      GlitchPEG
+*hacks.gravitywell.name:    GravityWell
 *hacks.hyperball.name:      HyperBall
 *hacks.hypercube.name:      HyperCube
 *hacks.ifs.name:            IFS
index 2d7b1681993958d3d11fe6f3475822f8c2373f27..2b2dab8589fe6e11e7bb75eb1fa0e15e62d36d0f 100644 (file)
@@ -27,7 +27,7 @@
 "*splash:              True",
 "*splashDuration:      0:00:05",
 "*visualID:            default",
-"*captureStderr:       True",
+"*installColormap:     True",
 "*ignoreUninstalledPrograms: False",
 "*authWarningSlack:    20",
 "*textMode:            file",
 "*textFile:            ",
 "*textProgram:         fortune",
 "*textURL:             https://en.wikipedia.org/w/index.php?title=Special:NewPages&feed=rss",
+"*captureStderr:       True",
+"*overlayStderr:               True",
 "*overlayTextForeground:       #FFFF00",
 "*overlayTextBackground:       #000000",
-"*overlayStderr:               True",
 "*font:                        *-medium-r-*-140-*-m-*",
 "*sgiSaverExtension:   True",
 "*xidleExtension:      True",
 "*procInterrupts:      True",
 "*xinputExtensionDev:  False",
-"GetViewPortIsFullOfLies: False",
+"*GetViewPortIsFullOfLies: False",
 "*demoCommand: xscreensaver-demo",
-"*prefsCommand: xscreensaver-demo -prefs",
 "*helpURL: https://www.jwz.org/xscreensaver/man.html",
 "*loadURL: firefox '%s' || mozilla '%s' || netscape '%s'",
 "*manualCommand: xterm -sb -fg black -bg gray75 -T '%s manual' \
                    -e /bin/sh -c 'man \"%s\" ; read foo'",
 "*dateFormat:          %d-%b-%y (%a); %I:%M %p",
-"*installColormap:     True",
+"XScreenSaver.pointerPollTime:         0:00:05",
+"XScreenSaver.pointerHysteresis:               10",
+"XScreenSaver.initialDelay:            0:00:00",
+"XScreenSaver.windowCreationTimeout:   0:00:30",
+"XScreenSaver.bourneShell:             /bin/sh",
+"*Dialog.headingFont:  -*-helvetica-bold-r-*-*-*-180-*-*-*-*-iso8859-1",
+"*Dialog.bodyFont:     -*-helvetica-bold-r-*-*-*-140-*-*-*-*-iso8859-1",
+"*Dialog.labelFont:    -*-helvetica-bold-r-*-*-*-140-*-*-*-*-iso8859-1",
+"*Dialog.unameFont:    -*-helvetica-bold-r-*-*-*-120-*-*-*-*-iso8859-1",
+"*Dialog.buttonFont:   -*-helvetica-bold-r-*-*-*-140-*-*-*-*-iso8859-1",
+"*Dialog.dateFont:     -*-helvetica-medium-r-*-*-*-80-*-*-*-*-iso8859-1",
+"*passwd.passwdFont:   -*-courier-bold-r-*-*-*-140-*-*-*-iso8859-1",
+"*passwd.uname:                  True",
+"*passwd.asterisks:              True",
+"*Dialog.foreground:           #000000",
+"*Dialog.background:           #E6E6E6",
+"*Dialog.Button.foreground:    #000000",
+"*Dialog.Button.background:    #F5F5F5",
+"*Dialog.text.foreground:      #000000",
+"*Dialog.text.background:      #FFFFFF",
+"*Dialog.topShadowColor:               #FFFFFF",
+"*Dialog.bottomShadowColor:    #CECECE",
+"*Dialog.logo.width:           210",
+"*Dialog.logo.height:          210",
+"*Dialog.internalBorderWidth:  24",
+"*Dialog.borderWidth:          1",
+"*Dialog.shadowThickness:      2",
+"*passwd.thermometer.foreground:       #4464AC",
+"*passwd.thermometer.background:       #FFFFFF",
+"*passwd.thermometer.width:    8",
+"*passwd.heading.label:                XScreenSaver %s",
+"*passwd.body.label:           This screen is locked.",
+"*passwd.unlock.label:         OK",
+"*passwd.login.label:          New Login",
+"*passwd.user.label:           Username:",
+"*splash.heading.label:                XScreenSaver %s",
+"*splash.body.label:           Copyright \\251 1991-2019 by",
+"*splash.body2.label:          Jamie Zawinski <jwz@jwz.org>",
+"*splash.demo.label:           Settings",
+"*splash.help.label:           Help",
 "*programs:                                                                  \
                                maze -root                                  \\n\
   GL:                          superquadrics -root                         \\n\
   GL:                          maze3d -root                                \\n\
   GL:                          peepers -root                               \\n\
   GL:                          razzledazzle -root                          \\n\
-                               vfeedback -root                             \\n",
-"XScreenSaver.pointerPollTime:         0:00:05",
-"XScreenSaver.pointerHysteresis:               10",
-"XScreenSaver.initialDelay:            0:00:00",
-"XScreenSaver.windowCreationTimeout:   0:00:30",
-"XScreenSaver.bourneShell:             /bin/sh",
-"*Dialog.headingFont:  -*-helvetica-bold-r-*-*-*-180-*-*-*-*-iso8859-1",
-"*Dialog.bodyFont:     -*-helvetica-bold-r-*-*-*-140-*-*-*-*-iso8859-1",
-"*Dialog.labelFont:    -*-helvetica-bold-r-*-*-*-140-*-*-*-*-iso8859-1",
-"*Dialog.unameFont:    -*-helvetica-bold-r-*-*-*-120-*-*-*-*-iso8859-1",
-"*Dialog.buttonFont:   -*-helvetica-bold-r-*-*-*-140-*-*-*-*-iso8859-1",
-"*Dialog.dateFont:     -*-helvetica-medium-r-*-*-*-80-*-*-*-*-iso8859-1",
-"*passwd.passwdFont:   -*-courier-medium-r-*-*-*-140-*-*-*-iso8859-1",
-"*Dialog.foreground:           #000000",
-"*Dialog.background:           #E6E6E6",
-"*Dialog.Button.foreground:    #000000",
-"*Dialog.Button.background:    #F5F5F5",
-"*Dialog.text.foreground:      #000000",
-"*Dialog.text.background:      #FFFFFF",
-"*passwd.thermometer.foreground:       #4464AC",
-"*passwd.thermometer.background:       #FFFFFF",
-"*Dialog.topShadowColor:               #FFFFFF",
-"*Dialog.bottomShadowColor:    #CECECE",
-"*Dialog.logo.width:           210",
-"*Dialog.logo.height:          210",
-"*Dialog.internalBorderWidth:  24",
-"*Dialog.borderWidth:          1",
-"*Dialog.shadowThickness:      2",
-"*passwd.heading.label:                XScreenSaver %s",
-"*passwd.body.label:           This screen is locked.",
-"*passwd.unlock.label:         OK",
-"*passwd.login.label:          New Login",
-"*passwd.user.label:           Username:",
-"*passwd.thermometer.width:    8",
-"*passwd.asterisks:              True",
-"*passwd.uname:                  True",
-"*splash.heading.label:                XScreenSaver %s",
-"*splash.body.label:           Copyright \\251 1991-2018 by",
-"*splash.body2.label:          Jamie Zawinski <jwz@jwz.org>",
-"*splash.demo.label:           Settings",
-"*splash.help.label:           Help",
+                               vfeedback -root                             \\n\
+  GL:                          deepstars -root                             \\n\
+  GL:                          gravitywell -root                           \\n",
 "*hacks.antinspect.name:     AntInspect",
 "*hacks.antmaze.name:        AntMaze",
 "*hacks.antspotlight.name:   AntSpotlight",
 "*hacks.cwaves.name:         CWaves",
 "*hacks.dangerball.name:     DangerBall",
 "*hacks.decayscreen.name:    DecayScreen",
+"*hacks.deepstars.name:      DeepStars",
 "*hacks.dnalogo.name:        DNA Logo",
 "*hacks.dymaxionmap.name:    DymaxionMap",
 "*hacks.energystream.name:   EnergyStream",
 "*hacks.gleidescope.name:    Gleidescope",
 "*hacks.glforestfire.name:   GLForestFire",
 "*hacks.glitchpeg.name:      GlitchPEG",
+"*hacks.gravitywell.name:    GravityWell",
 "*hacks.hyperball.name:      HyperBall",
 "*hacks.hypercube.name:      HyperCube",
 "*hacks.ifs.name:            IFS",
index ef00d822e506b0e7939218cc593358b68843ec9d..be4a2387ef4b5208e5a54c9a53b74f124c08a74b 100644 (file)
@@ -1,5 +1,5 @@
 /* demo-Gtk.c --- implements the interactive demo-mode and options dialogs.
- * xscreensaver, Copyright (c) 1993-2018 Jamie Zawinski <jwz@jwz.org>
+ * xscreensaver, Copyright (c) 1993-2019 Jamie Zawinski <jwz@jwz.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -250,7 +250,8 @@ static state *global_state_kludge;
 Atom XA_VROOT;
 Atom XA_SCREENSAVER, XA_SCREENSAVER_RESPONSE, XA_SCREENSAVER_VERSION;
 Atom XA_SCREENSAVER_ID, XA_SCREENSAVER_STATUS, XA_SELECT, XA_DEMO;
-Atom XA_ACTIVATE, XA_BLANK, XA_LOCK, XA_RESTART, XA_EXIT;
+Atom XA_ACTIVATE, XA_SUSPEND, XA_BLANK, XA_LOCK, XA_RESTART, XA_EXIT;
+Atom XA_NEXT, XA_PREV;
 
 
 static void populate_demo_window (state *, int list_elt);
@@ -5069,8 +5070,11 @@ main (int argc, char **argv)
   XA_SELECT = XInternAtom (dpy, "SELECT", False);
   XA_DEMO = XInternAtom (dpy, "DEMO", False);
   XA_ACTIVATE = XInternAtom (dpy, "ACTIVATE", False);
+  XA_SUSPEND = XInternAtom (dpy, "SUSPEND", False);
   XA_BLANK = XInternAtom (dpy, "BLANK", False);
   XA_LOCK = XInternAtom (dpy, "LOCK", False);
+  XA_NEXT = XInternAtom (dpy, "NEXT", False);
+  XA_PREV = XInternAtom (dpy, "PREV", False);
   XA_EXIT = XInternAtom (dpy, "EXIT", False);
   XA_RESTART = XInternAtom (dpy, "RESTART", False);
 
index 149e7c5154169ea73669f36d15c5354fc7bd1a33..3497641decb0044a3ac27168a5e6d1d1e700b9c3 100644 (file)
@@ -113,7 +113,7 @@ static char *short_version = 0;
 Atom XA_VROOT;
 Atom XA_SCREENSAVER, XA_SCREENSAVER_RESPONSE, XA_SCREENSAVER_VERSION;
 Atom XA_SCREENSAVER_ID, XA_SCREENSAVER_STATUS, XA_SELECT, XA_DEMO;
-Atom XA_ACTIVATE, XA_BLANK, XA_LOCK, XA_RESTART, XA_EXIT;
+Atom XA_ACTIVATE, XA_SUSPEND, XA_BLANK, XA_LOCK, XA_RESTART, XA_EXIT;
 
 
 static void populate_demo_window (Widget toplevel,
@@ -1800,6 +1800,7 @@ main (int argc, char **argv)
   XA_SELECT = XInternAtom (dpy, "SELECT", False);
   XA_DEMO = XInternAtom (dpy, "DEMO", False);
   XA_ACTIVATE = XInternAtom (dpy, "ACTIVATE", False);
+  XA_SUSPEND = XInternAtom (dpy, "SUSPEND", False);
   XA_BLANK = XInternAtom (dpy, "BLANK", False);
   XA_LOCK = XInternAtom (dpy, "LOCK", False);
   XA_EXIT = XInternAtom (dpy, "EXIT", False);
index 10b879e290ae3c3f84930ae4a7c7c2682c5e1cdd..7696f3015358bf9c9446c46c65195213a82f691c 100644 (file)
@@ -872,6 +872,7 @@ draw_passwd_window (saver_info *si)
     memset (buf, 0, sizeof(buf));
     strftime (buf, sizeof(buf)-1, pw->date_label, tm);
 
+    XSetForeground (si->dpy, gc1, pw->foreground);
     XSetFont (si->dpy, gc1, pw->date_font->fid);
     y1 += pw->shadow_width;
     y1 += (spacing + tb_height);
@@ -1148,7 +1149,8 @@ update_passwd_window (saver_info *si, const char *printed_passwd, float ratio)
   y = (pw->thermo_field_height - 2) * (1.0 - pw->ratio);
   if (y > 0)
     {
-      XFillRectangle (si->dpy, si->passwd_dialog, gc2,
+      XSetForeground (si->dpy, gc1, pw->thermo_background);
+      XFillRectangle (si->dpy, si->passwd_dialog, gc1,
                      pw->thermo_field_x + 1,
                      pw->thermo_field_y + 1,
                      pw->thermo_width-2,
index 775036ac3032899596282b3ba4321fd1ed5050da..83254e01b477fdd2987a6a6c48710dc0e1c1909e 100644 (file)
@@ -1,4 +1,4 @@
-/* xscreensaver-command, Copyright (c) 1991-2009 Jamie Zawinski <jwz@jwz.org>
+/* xscreensaver-command, Copyright (c) 1991-2019 Jamie Zawinski <jwz@jwz.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -43,6 +43,7 @@ extern char *progname;
 extern Atom XA_SCREENSAVER, XA_SCREENSAVER_VERSION, XA_SCREENSAVER_RESPONSE;
 extern Atom XA_SCREENSAVER_ID, XA_SCREENSAVER_STATUS, XA_EXIT;
 extern Atom XA_VROOT, XA_SELECT, XA_DEMO, XA_BLANK, XA_LOCK;
+extern Atom XA_ACTIVATE, XA_SUSPEND, XA_NEXT, XA_PREV, XA_EXIT;
 
 
 static XErrorHandler old_handler = 0;
@@ -490,6 +491,109 @@ xscreensaver_command_response (Display *dpy, Window window,
 }
 
 
+/* Wait until the window has been mapped, blanking the screen.
+   Catches errors, times out after a few seconds.
+ */
+static int
+xscreensaver_command_wait_for_blank (Display *dpy, Window window,
+                                     Bool verbose_p, char **error_ret)
+{
+  time_t start = time((time_t*)0);
+  int max = 10;
+  char err[2048];
+  Status status = -1;
+
+  while (1)
+    {
+      XWindowAttributes xgwa;
+      xgwa.map_state = IsUnmapped;
+
+      if (!window)
+        got_badwindow = True;
+      else
+        {
+          XSync (dpy, False);
+          if (old_handler) abort();
+          got_badwindow = False;
+          old_handler = XSetErrorHandler (BadWindow_ehandler);
+          status = XGetWindowAttributes (dpy, window, &xgwa);
+          XSync (dpy, False);
+          XSetErrorHandler (old_handler);
+          old_handler = 0;
+        }
+
+      if (got_badwindow)
+        {
+          /* If we got a BadWindow, it might be that in the course of
+             activating, xscreensaver had to destroy and re-create the
+             window to get one with the proper Visual. So wait for a
+             new window to come into existence.
+           */
+          if (window && verbose_p > 1)
+            fprintf (stderr,
+                     "%s: BadWindow 0x%08x waiting for screen to blank\n",
+                     progname, (unsigned int) window);
+          window = find_screensaver_window (dpy, 0);
+          if (window && verbose_p > 1)
+            fprintf (stderr, "%s: new window is 0x%08x.\n",
+                     progname, (unsigned int) window);
+          got_badwindow = False;
+        }
+      else if (status == 0)
+        {
+          sprintf (err, "error on 0x%08x waiting for screen to blank",
+                   (unsigned int) window);
+          if (error_ret)
+            *error_ret = strdup (err);
+          else
+            fprintf (stderr, "%s: %s\n", progname, err);
+          return -1;
+        }
+      else if (xgwa.map_state == IsViewable)
+        {
+          if (verbose_p)
+            fprintf (stderr, "%s: window 0x%08x mapped.\n",
+                     progname, (unsigned int) window);
+          return 0;
+        }
+      else
+        {
+          time_t now = time((time_t*)0);
+
+          if (now >= start + max)
+            {
+              sprintf (err, "Timed out waiting for screen to blank on 0x%08x",
+                       (unsigned int) window);
+              if (error_ret)
+                *error_ret = strdup (err);
+              else
+                fprintf (stderr, "%s: %s\n", progname, err);
+              return -1;
+            }
+          else if (verbose_p && now > start+1)
+            {
+              fprintf (stderr, "%s: waiting for window 0x%08x to map\n",
+                       progname, (unsigned int) window);
+            }
+        }
+
+# if defined(HAVE_SELECT)
+      {
+        struct timeval tv;
+        tv.tv_sec  = 0;
+        tv.tv_usec = 1000000L / 10;
+        select (0, 0, 0, 0, &tv);
+      }
+# else
+      sleep (1);
+# endif
+    }
+
+  return 0;
+}
+
+
+
 int
 xscreensaver_command (Display *dpy, Atom command, long arg, Bool verbose_p,
                       char **error_ret)
@@ -501,6 +605,18 @@ xscreensaver_command (Display *dpy, Atom command, long arg, Bool verbose_p,
                                             (command == XA_EXIT),
                                             error_ret);
 
+  /* If this command should result in the screen being blank, wait until
+     the xscreensaver window is mapped before returning. */
+  if (status == 0 &&
+      (command == XA_ACTIVATE ||
+       command == XA_SUSPEND ||
+       command == XA_LOCK ||
+       command == XA_NEXT ||
+       command == XA_PREV ||
+       command == XA_SELECT))
+    status = xscreensaver_command_wait_for_blank (dpy, w, verbose_p,
+                                                  error_ret);
+
   fflush (stdout);
   fflush (stderr);
   return (status < 0 ? status : 0);
index 1a2f41d19b91f91d84ac3e2a25a95eeac6055459..f319c961a9eb17f313d4edc66c862123760add8d 100644 (file)
@@ -576,7 +576,7 @@ randr_versus_xinerama_fight (Display *dpy, monitor **randr_monitors,
     {
       *errP = append (*errP,
                       "WARNING: RANDR reports 1 screen but Xinerama\n"
-                      "\t\treports multiple.  Believing Xinerama.");
+                      "         reports multiple.  Believing Xinerama.");
       free_monitors (randr_monitors);
       return xinerama_monitors;
     }
@@ -584,7 +584,7 @@ randr_versus_xinerama_fight (Display *dpy, monitor **randr_monitors,
     {
       *errP = append (*errP,
                       "WARNING: RANDR and Xinerama report different\n"
-                      "\t\tscreen layouts!  Believing RANDR.");
+                      "         screen layouts!  Believing RANDR.");
       free_monitors (xinerama_monitors);
       return randr_monitors;
     }
index a4f17616e4b46ba0d271bdd7f9d9bbe67f597317..b971ade136b78c4b6f14bda2fe1ffef025950fce 100644 (file)
@@ -881,7 +881,7 @@ do_prefs (saver_screen_info *ssi)
   saver_preferences *p = &si->prefs;
   const char *cmd = p->prefs_command;
 
-  if (command && *command)
+  if (cmd && *cmd)
     fork_and_exec (ssi, cmd);
   else
     fprintf (stderr, "%s: no preferences command has been specified.\n",
index 4f327e95851bcfa72f8989b2f055ddd32e1de0e0..d500f70eda56cf5885ff7704843cc153b1890a83 100644 (file)
@@ -1,5 +1,5 @@
 /* subprocs.c --- choosing, spawning, and killing screenhacks.
- * xscreensaver, Copyright (c) 1991-2017 Jamie Zawinski <jwz@jwz.org>
+ * xscreensaver, Copyright (c) 1991-2019 Jamie Zawinski <jwz@jwz.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -439,7 +439,7 @@ unblock_sigchld (void)
   block_sigchld_handler--;
 }
 
-static int
+int
 kill_job (saver_info *si, pid_t pid, int signal)
 {
   saver_preferences *p = &si->prefs;
@@ -738,12 +738,18 @@ describe_dead_child (saver_info *si, pid_t kid, int wait_status)
   /* Clear out the pid so that screenhack_running_p() knows it's dead.
    */
   if (!job || job->status == job_dead)
+    {
     for (i = 0; i < si->nscreens; i++)
       {
        saver_screen_info *ssi = &si->screens[i];
        if (kid == ssi->pid)
          ssi->pid = 0;
       }
+# ifdef HAVE_LIBSYSTEMD
+    if (kid == si->systemd_pid)
+      si->systemd_pid = 0;
+# endif
+    }
 }
 
 #else  /* VMS */
@@ -872,7 +878,12 @@ print_path_error (const char *program)
 pid_t
 fork_and_exec (saver_screen_info *ssi, const char *command)
 {
-  saver_info *si = ssi->global;
+  return fork_and_exec_1 (ssi->global, ssi, command);
+}
+
+pid_t
+fork_and_exec_1 (saver_info *si, saver_screen_info *ssi, const char *command)
+{
   saver_preferences *p = &si->prefs;
   pid_t forked;
 
@@ -889,11 +900,12 @@ fork_and_exec (saver_screen_info *ssi, const char *command)
     case 0:
       close (ConnectionNumber (si->dpy));      /* close display fd */
       limit_subproc_memory (p->inferior_memory_limit, p->verbose_p);
-      hack_subproc_environment (ssi->screen, ssi->screensaver_window);
+      if (ssi)
+        hack_subproc_environment (ssi->screen, ssi->screensaver_window);
 
       if (p->verbose_p)
         fprintf (stderr, "%s: %d: spawning \"%s\" in pid %lu.\n",
-                 blurb(), ssi->number, command,
+                 blurb(), (ssi ? ssi->number : 0), command,
                  (unsigned long) getpid ());
 
       exec_command (p->shell, command, p->nice_inferior);
@@ -908,7 +920,7 @@ fork_and_exec (saver_screen_info *ssi, const char *command)
       break;
 
     default:   /* parent */
-      (void) make_job (forked, ssi->number, command);
+      (void) make_job (forked, (ssi ? ssi->number : 0), command);
       break;
     }
 
index f1630b0dc7d09e5f2888d5d711dc0fb924e6aa87..35992ae95f3160fd7af98eea067d56177c39477e 100644 (file)
@@ -1,4 +1,4 @@
-/* xscreensaver, Copyright (c) 1993-2014 Jamie Zawinski <jwz@jwz.org>
+/* xscreensaver, Copyright (c) 1993-2019 Jamie Zawinski <jwz@jwz.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -344,6 +344,9 @@ struct saver_info {
 
   XtIntervalId stderr_popup_timer;
 
+# ifdef HAVE_LIBSYSTEMD
+  pid_t systemd_pid;
+# endif
 };
 
 /* This structure holds all the data that applies to the screen-specific parts
index 9b2bf8476f1cffff44808fb189243d8ca77b0ad8..b7bea5284e5eb2dc49f308e79a80ed9e3e443182 100644 (file)
@@ -1,5 +1,5 @@
 /* windows.c --- turning the screen black; dealing with visuals, virtual roots.
- * xscreensaver, Copyright (c) 1991-2014 Jamie Zawinski <jwz@jwz.org>
+ * xscreensaver, Copyright (c) 1991-2019 Jamie Zawinski <jwz@jwz.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -752,6 +752,16 @@ restore_real_vroot_handler (int sig)
   if (restore_real_vroot (si))
     fprintf (real_stderr, "\n%s: %s intercepted, vroot restored.\n",
             blurb(), signal_name(sig));
+# ifdef HAVE_LIBSYSTEMD
+  if (si->systemd_pid)  /* Kill background xscreensaver-systemd process */
+    {
+      /* We're exiting, so there's no need to do a full kill_job() here,
+         which will waitpid(). */
+      /* kill_job (si, si->systemd_pid, SIGTERM); */
+      kill (si->systemd_pid, SIGTERM);
+      si->systemd_pid = 0;
+    }
+# endif
   kill (getpid (), sig);
 }
 
@@ -872,6 +882,14 @@ saver_exit (saver_info *si, int status, const char *dump_core_reason)
   if (p->verbose_p && vrs)
     fprintf (real_stderr, "%s: old vroot restored.\n", blurb());
 
+# ifdef HAVE_LIBSYSTEMD
+  if (si->systemd_pid)  /* Kill background xscreensaver-systemd process */
+    {
+      kill_job (si, si->systemd_pid, SIGTERM);
+      si->systemd_pid = 0;
+    }
+# endif
+
   fflush(real_stdout);
 
 #ifdef VMS     /* on VMS, 1 is the "normal" exit code instead of 0. */
index f4a855df167037655f68772f3dc4b5cea1af7c1e..4a4f0b462ff0ac325d02055157a11802e01f9c34 100644 (file)
@@ -1,4 +1,4 @@
-/* xscreensaver-command, Copyright (c) 1991-2013 Jamie Zawinski <jwz@jwz.org>
+/* xscreensaver-command, Copyright (c) 1991-2019 Jamie Zawinski <jwz@jwz.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -51,8 +51,8 @@ char *progname;
 Atom XA_VROOT;
 Atom XA_SCREENSAVER, XA_SCREENSAVER_VERSION, XA_SCREENSAVER_RESPONSE;
 Atom XA_SCREENSAVER_ID, XA_SCREENSAVER_STATUS, XA_SELECT, XA_DEMO, XA_EXIT;
-Atom XA_BLANK, XA_LOCK;
-static Atom XA_ACTIVATE, XA_DEACTIVATE, XA_CYCLE, XA_NEXT, XA_PREV;
+Atom XA_BLANK, XA_LOCK, XA_ACTIVATE, XA_SUSPEND, XA_NEXT, XA_PREV;
+static Atom XA_DEACTIVATE, XA_CYCLE;
 static Atom XA_RESTART, XA_PREFS, XA_THROTTLE, XA_UNTHROTTLE;
 
 static char *screensaver_version;
@@ -116,6 +116,11 @@ usage: %s -<option>\n\
                 immediately.  This is like -activate, but forces locking as\n\
                 well, even if locking is not the default.  If the saver is\n\
                 already active, this causes it to be locked as well.\n\
+\n\
+  -suspend      Like -activate, but ignores the lock-timeout, if any, and\n\
+                immediately powers off the screen without fading out.\n\
+                This is intended to be run just after your laptop's lid\n\
+                is closed, and just before the CPU halts.\n\
 \n\
   -version      Prints the version of xscreensaver that is currently running\n\
                 on the display -- that is, the actual version number of the\n\
@@ -187,6 +192,7 @@ main (int argc, char **argv)
       else if (cmd) USAGE();
       else if (!strncmp (s, "-activate", L))   cmd = &XA_ACTIVATE;
       else if (!strncmp (s, "-deactivate", L)) cmd = &XA_DEACTIVATE;
+      else if (!strncmp (s, "-suspend", L))    cmd = &XA_SUSPEND;
       else if (!strncmp (s, "-cycle", L))      cmd = &XA_CYCLE;
       else if (!strncmp (s, "-next", L))       cmd = &XA_NEXT;
       else if (!strncmp (s, "-prev", L))       cmd = &XA_PREV;
@@ -300,6 +306,7 @@ main (int argc, char **argv)
   XA_SCREENSAVER_RESPONSE = XInternAtom (dpy, "_SCREENSAVER_RESPONSE", False);
   XA_ACTIVATE = XInternAtom (dpy, "ACTIVATE", False);
   XA_DEACTIVATE = XInternAtom (dpy, "DEACTIVATE", False);
+  XA_SUSPEND = XInternAtom (dpy, "SUSPEND", False);
   XA_RESTART = XInternAtom (dpy, "RESTART", False);
   XA_CYCLE = XInternAtom (dpy, "CYCLE", False);
   XA_NEXT = XInternAtom (dpy, "NEXT", False);
@@ -321,7 +328,7 @@ main (int argc, char **argv)
       exit (i);
     }
 
-  if (*cmd == XA_ACTIVATE || *cmd == XA_LOCK ||
+  if (*cmd == XA_ACTIVATE || *cmd == XA_LOCK || *cmd == XA_SUSPEND || 
       *cmd == XA_NEXT || *cmd == XA_PREV || *cmd == XA_SELECT)
     /* People never guess that KeyRelease deactivates the screen saver too,
        so if we're issuing an activation command, wait a second.
index 040a183373538c769e37dd685d315baa831b3c47..5837e5d473b0e9423e23faecc4175542625d5192 100644 (file)
@@ -11,7 +11,7 @@
 .if n .sp 1
 .if t .sp .5
 ..
-.TH XScreenSaver 1 "09-Nov-2013 (5.23)" "X Version 11"
+.TH XScreenSaver 1 "03-Jun-2019 (5.42)" "X Version 11"
 .SH NAME
 xscreensaver-command - control a running xscreensaver process
 .SH SYNOPSIS
@@ -29,6 +29,7 @@ xscreensaver-command - control a running xscreensaver process
 \-exit | \
 \-restart | \
 \-lock | \
+\-suspend | \
 \-version | \
 \-time | \
 \-watch]
@@ -137,6 +138,12 @@ running as you.  See
 .BR xscreensaver (1)
 for details.
 .TP 8
+.B \-suspend
+Like \fI\-activate\fP, but ignores \fIlockTimeout\fP and immediately
+powers off the screen without fading out.  This is intended to be run
+just after your laptop's lid is closed, and just before the CPU halts,
+to lock things down quickly.
+.TP 8
 .B \-version
 Prints the version of xscreensaver that is currently running on the display:
 that is, the actual version number of the running xscreensaver background 
@@ -249,7 +256,7 @@ and related tools can always be found at https://www.jwz.org/xscreensaver/
 .BR xscreensaver\-demo (1),
 .BR xset (1)
 .SH COPYRIGHT
-Copyright \(co 1992-2013 by Jamie Zawinski.
+Copyright \(co 1992-2019 by Jamie Zawinski.
 Permission to use, copy, modify, distribute, and sell this software
 and its documentation for any purpose is hereby granted without fee,
 provided that the above copyright notice appear in all copies and that
diff --git a/driver/xscreensaver-systemd.c b/driver/xscreensaver-systemd.c
new file mode 100644 (file)
index 0000000..a46ed4d
--- /dev/null
@@ -0,0 +1,232 @@
+/* xscreensaver-systemd, Copyright (c) 2019 Martin Lucina <martin@lucina.net>
+ *
+ * ISC License
+ *
+ * Permission to use, copy, modify, and/or distribute this software
+ * for any purpose with or without fee is hereby granted, provided
+ * that the above copyright notice and this permission notice appear
+ * in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
+ * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
+ * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
+ * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
+ * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ * This is a small utility providing systemd integration for XScreenSaver.
+ *
+ * When run from ~/.xsession or equivalent, this will:
+ *
+ *   - Lock the screen before the system goes to sleep (using
+ *     xscreensaver-command -suspend).
+ *
+ *   - Ensure the XScreenSaver password dialog is shown after the system
+ *     is resumed (using xscreensaver-command -deactivate).
+ *
+ * This is implemented using the recommended way to do these things
+ * nowadays, namely inhibitor locks. sd-bus is used for DBUS communication,
+ * so the only dependency is libsystemd (which you already have if you
+ * want this).
+ *
+ * https://github.com/mato/xscreensaver-systemd
+ */
+
+#include <assert.h>
+#include <err.h>
+#include <errno.h>
+#include <stdlib.h>
+#include <sys/wait.h>
+#include <unistd.h>
+
+#include <systemd/sd-bus.h>
+
+struct handler_ctx {
+    sd_bus *bus;
+    sd_bus_message *lock;
+};
+static struct handler_ctx global_ctx = { NULL, NULL };
+
+static int handler(sd_bus_message *m, void *arg,
+        sd_bus_error *ret_error)
+{
+    struct handler_ctx *ctx = arg;
+    int before_sleep;
+    int rc;
+    sd_bus_error error = SD_BUS_ERROR_NULL;
+    sd_bus_message *reply = NULL;
+    int fd;
+
+    rc = sd_bus_message_read(m, "b", &before_sleep);
+    if (rc < 0) {
+        warnx("Failed to read message: %s", strerror(-rc));
+        return 0;
+    }
+
+    /* Use the scheme described at
+     * https://www.freedesktop.org/wiki/Software/systemd/inhibit/
+     * under "Taking Delay Locks".
+     */
+    if (before_sleep) {
+        rc = system("xscreensaver-command -suspend");
+        if (rc == -1) {
+            warnx("Failed to run xscreensaver-command");
+        }
+        else if (WEXITSTATUS(rc) != 0) {
+            warnx("xscreensaver-command failed with %d", WEXITSTATUS(rc));
+        }
+
+        if (ctx->lock) {
+            /*
+             * This will release the lock, since we hold the only ref to the
+             * message, and sd_bus_message_unref() will close the underlying
+             * fd.
+             */
+            sd_bus_message_unref(ctx->lock);
+            ctx->lock = NULL;
+        }
+        else {
+            warnx("Warning: ctx->lock is NULL, this should not happen?");
+        }
+    }
+    else {
+        rc = system("xscreensaver-command -deactivate");
+        if (rc == -1) {
+            warnx("Failed to run xscreensaver-command");
+        }
+        else if (WEXITSTATUS(rc) != 0) {
+            warnx("xscreensaver-command exited with %d", WEXITSTATUS(rc));
+        }
+
+        rc = sd_bus_call_method(ctx->bus,
+                "org.freedesktop.login1",
+                "/org/freedesktop/login1",
+                "org.freedesktop.login1.Manager",
+                "Inhibit",
+                &error,
+                &reply,
+                "ssss",
+                "sleep",
+                "xscreensaver",
+                "lock screen on suspend",
+                "delay");
+        if (rc < 0) {
+            warnx("Failed to call Inhibit(): %s", error.message);
+            goto out;
+        }
+        /*
+         * Verify that the reply actually contains a lock fd.
+         */
+        rc = sd_bus_message_read(reply, "h", &fd);
+        if (rc < 0) {
+            warnx("Failed to read message: %s", strerror(-rc));
+            goto out;
+        }
+        assert(fd >= 0);
+        ctx->lock = reply;
+
+out:
+        sd_bus_error_free(&error);
+    }
+
+    return 0;
+}
+
+int main(int argc, char *argv[])
+{
+    sd_bus *bus = NULL, *user_bus = NULL;
+    sd_bus_slot *slot = NULL;
+    struct handler_ctx *ctx = &global_ctx;
+    sd_bus_error error = SD_BUS_ERROR_NULL;
+    sd_bus_message *reply = NULL;
+    int rc;
+    int fd;
+    const char *match =
+        "type='signal',interface='org.freedesktop.login1.Manager'"
+        ",member='PrepareForSleep'";
+
+    rc = sd_bus_open_user(&user_bus);
+    if (rc < 0) {
+        warnx("Failed to connect to user bus: %s", strerror(-rc));
+        goto out;
+    }
+    rc = sd_bus_request_name(user_bus, "org.jwz.XScreenSaver", 0);
+    if (rc < 0) {
+        warnx("Failed to acquire well-known name: %s", strerror(-rc));
+        warnx("Is another copy of xscreensaver-systemd running?");
+        goto out;
+    }
+
+    rc = sd_bus_open_system(&bus);
+    if (rc < 0) {
+        warnx("Failed to connect to system bus: %s", strerror(-rc));
+        goto out;
+    }
+    ctx->bus = bus;
+
+    rc = sd_bus_call_method(bus,
+            "org.freedesktop.login1",
+            "/org/freedesktop/login1",
+            "org.freedesktop.login1.Manager",
+            "Inhibit",
+            &error,
+            &reply,
+            "ssss",
+            "sleep",
+            "xscreensaver",
+            "lock screen on suspend",
+            "delay");
+    if (rc < 0) {
+        warnx("Failed to call Inhibit(): %s", error.message);
+        goto out;
+    }
+    /*
+     * Verify that the reply actually contains a lock fd.
+     */
+    rc = sd_bus_message_read(reply, "h", &fd);
+    if (rc < 0) {
+        warnx("Failed to read message: %s", strerror(-rc));
+        goto out;
+    }
+    assert(fd >= 0);
+    ctx->lock = reply;
+
+    rc = sd_bus_add_match(bus, &slot, match, handler, &global_ctx);
+    if (rc < 0) {
+        warnx("Failed to add match: %s", strerror(-rc));
+        goto out;
+    }
+
+    for (;;) {
+        rc = sd_bus_process(bus, NULL);
+        if (rc < 0) {
+            warnx("Failed to process bus: %s", strerror(-rc));
+            goto out;
+        }
+        if (rc > 0)
+            /* we processed a request, try to process another one, right-away */
+            continue;
+
+        /* Wait for the next request to process */
+        rc = sd_bus_wait(bus, (uint64_t) -1);
+        if (rc < 0) {
+            warnx("Failed to wait on bus: %s", strerror(-rc));
+            goto out;
+        }
+    }
+
+out:
+    if (reply)
+        sd_bus_message_unref(reply);
+    if (slot)
+        sd_bus_slot_unref(slot);
+    if (bus)
+        sd_bus_flush_close_unref(bus);
+    if (user_bus)
+        sd_bus_flush_close_unref(user_bus);
+    sd_bus_error_free(&error);
+
+    return EXIT_FAILURE;
+}
diff --git a/driver/xscreensaver-systemd.man b/driver/xscreensaver-systemd.man
new file mode 100644 (file)
index 0000000..082cac7
--- /dev/null
@@ -0,0 +1,49 @@
+.TH XScreenSaver 1 "4-Jun-2019 (5.43)" "X Version 11"
+.SH NAME
+xscreensaver-systemd - lock the screen when the machine suspends.
+.SH SYNOPSIS
+.B xscreensaver-systemd
+.SH DESCRIPTION
+The \fIxscreensaver\-systemd\fP program is a helper program to
+integrate xscreensaver with 
+.BR systemd (1).
+When run from \fI~/.xsession\fP or equivalent, this will:
+.TP 3
+\fB1:
+Lock the screen before the system goes to sleep
+(using \fIxscreensaver-command -suspend\fP).
+.TP 3
+\fB2:
+Ensure the XScreenSaver password dialog is shown after the system
+is resumed (using \fIxscreensaver-command -deactivate\fP).
+.RS 0
+
+This is implemented using inhibitor locks;
+.BR sd-bus (3)
+is used for DBUS communication.
+.SH BUGS
+Uses libsystemd.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1),
+.BR xscreensaver\-demo (1),
+.BR xscreensaver\-command (1),
+.BR systemd (1),
+.BR sd-bus (3)
+.SH COPYRIGHT
+Copyright \(co 2019 by Martin Lucina.  
+Permission to use, copy, modify, and/or distribute this software
+for any purpose with or without fee is hereby granted, provided
+that the above copyright notice and this permission notice appear
+in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
+WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
+AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR
+CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
+OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
+CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+.SH AUTHOR
+Martin Lucina <martin@lucina.net>, 4-Jun-2019
index abcb07fb5ffe2662e51ce4c7fc7a69241ef71e78..2add3b8713c6b9ce5126e145e9ac77f99eb09acd 100644 (file)
@@ -1,4 +1,4 @@
-/* xscreensaver, Copyright (c) 1991-2018 Jamie Zawinski <jwz@jwz.org>
+/* xscreensaver, Copyright (c) 1991-2019 Jamie Zawinski <jwz@jwz.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -241,7 +241,7 @@ XrmDatabase db = 0;
 
 
 static Atom XA_SCREENSAVER_RESPONSE;
-static Atom XA_ACTIVATE, XA_DEACTIVATE, XA_CYCLE, XA_NEXT, XA_PREV;
+static Atom XA_ACTIVATE, XA_DEACTIVATE, XA_SUSPEND, XA_CYCLE, XA_NEXT, XA_PREV;
 static Atom XA_RESTART, XA_SELECT;
 static Atom XA_THROTTLE, XA_UNTHROTTLE;
 Atom XA_DEMO, XA_PREFS, XA_EXIT, XA_LOCK, XA_BLANK;
@@ -681,6 +681,7 @@ connect_to_server (saver_info *si, int *argc, char **argv)
   XA_NET_WM_USER_TIME = XInternAtom (si->dpy, "_NET_WM_USER_TIME", False);
   XA_ACTIVATE = XInternAtom (si->dpy, "ACTIVATE", False);
   XA_DEACTIVATE = XInternAtom (si->dpy, "DEACTIVATE", False);
+  XA_SUSPEND = XInternAtom (si->dpy, "SUSPEND", False);
   XA_RESTART = XInternAtom (si->dpy, "RESTART", False);
   XA_CYCLE = XInternAtom (si->dpy, "CYCLE", False);
   XA_NEXT = XInternAtom (si->dpy, "NEXT", False);
@@ -1206,7 +1207,13 @@ main_loop (saver_info *si)
 
       maybe_reload_init_file (si);
 
-      if (p->mode == DONT_BLANK)
+      /* Treat DONT_BLANK as BLANK_ONLY in emergency-lock when locking
+         is enabled. */
+
+      if (p->mode == DONT_BLANK &&
+          (!si->emergency_lock_p ||
+           !p->lock_p ||
+           si->locking_disabled_p))
         {
           if (p->verbose_p)
             fprintf (stderr, "%s: idle with blanking disabled at %s.\n",
@@ -1332,6 +1339,9 @@ main_loop (saver_info *si)
         if (si->fading_possible_p && p->fade_p)
           lock_timeout += p->fade_seconds / 1000;
 
+        if (si->emergency_lock_p)
+          lock_timeout = 0;
+
         if (si->emergency_lock_p && p->lock_p && lock_timeout)
           {
             int secs = p->lock_timeout / 1000;
@@ -1450,6 +1460,11 @@ main_loop (saver_info *si)
          si->lock_id = 0;
        }
 
+# ifdef HAVE_LIBSYSTEMD
+      /* This might be a good spot to re-launch si->systemd_pid
+         if it has died unexpectedly. Which shouldn't happen. */
+# endif
+
       /* Since we're unblanked now, break race conditions and make
          sure we stay that way (see comment in timers.c.) */
       if (! si->de_race_id)
@@ -1575,6 +1590,10 @@ main (int argc, char **argv)
   initialize_stderr (si);
   handle_signals (si);
 
+# ifdef HAVE_LIBSYSTEMD   /* Launch it in the background */
+  si->systemd_pid = fork_and_exec_1 (si, 0, "xscreensaver-systemd");
+# endif
+
   make_splash_dialog (si);
 
   main_loop (si);              /* doesn't return */
@@ -1831,6 +1850,11 @@ handle_clientmessage (saver_info *si, XEvent *event, Bool until_idle_p)
     }
   else if (type == XA_DEACTIVATE)
     {
+
+      /* Regardless of whether the screen saver is active, a DEACTIVATE
+         message should cause the monitor to become powered on. */
+      monitor_power_on (si, True);
+
 # if 0
       /* When -deactivate is received while locked, pop up the dialog box
          instead of just ignoring it.  Some people depend on this behavior
@@ -1873,6 +1897,34 @@ handle_clientmessage (saver_info *si, XEvent *event, Bool until_idle_p)
           reset_timers (si);
         }
     }
+  else if (type == XA_SUSPEND)
+    {
+      clientmessage_response(si, window, False,
+                             "SUSPEND ClientMessage received.",
+                             "suspending.");
+      si->selection_mode = 0;
+      si->demoing_p = False;
+      si->emergency_lock_p = True;
+      si->throttled_p = True;
+
+      /* When suspending, immediately lock, if locking enabled. */
+# ifndef NO_LOCKING
+      if (p->lock_p && !si->locked_p && !si->locking_disabled_p)
+        {
+          if (p->verbose_p)
+            fprintf (stderr, "%s: locking.\n", blurb());
+          set_locked_p (si, True);
+        }
+# endif
+
+      /* When suspending, immediately power off the display. */
+      monitor_power_on (si, False);
+
+      if (until_idle_p)
+        return True;    /* Blank now */
+      else
+        return False;   /* Do not unblank now */
+    }
   else if (type == XA_CYCLE)
     {
       if (! until_idle_p)
@@ -2354,6 +2406,12 @@ analyze_display (saver_info *si)
       fprintf (stderr, "%s\n", buf);
     }
 
+# ifdef HAVE_LIBSYSTEMD
+  fprintf (stderr, "%s:   libsystemd\n", blurb());
+# else
+  fprintf (stderr, "%s:   libsystemd (disabled at compile time)\n", blurb());
+# endif
+
   for (i = 0; i < si->nscreens; i++)
     {
       saver_screen_info *ssi = &si->screens[i];
index 42cf7940b27bd0fda8ae78655a69e8dddafac4e8..bed6537927a3d5303bde2dca123bc16493385add 100644 (file)
@@ -1,4 +1,4 @@
-/* xscreensaver, Copyright (c) 1993-2017 Jamie Zawinski <jwz@jwz.org>
+/* xscreensaver, Copyright (c) 1993-2019 Jamie Zawinski <jwz@jwz.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -157,7 +157,10 @@ extern void hack_subproc_environment (Screen *, Window saver_window);
 extern void init_sigchld (void);
 extern void spawn_screenhack (saver_screen_info *ssi);
 extern pid_t fork_and_exec (saver_screen_info *ssi, const char *command);
+extern pid_t fork_and_exec_1 (saver_info *si, saver_screen_info *ssi,
+                              const char *command);
 extern void kill_screenhack (saver_screen_info *ssi);
+int kill_job (saver_info *si, pid_t pid, int signal);
 extern void suspend_screenhack (saver_screen_info *ssi, Bool suspend_p);
 extern Bool screenhack_running_p (saver_info *si);
 extern void emergency_kill_subproc (saver_info *si);
index a99845b7fa24ed1198e5f4c54ef1680af4ea805b..0679ff4ff5cb261bd86dbd243611b2146abe3eb1 100644 (file)
@@ -11,7 +11,7 @@
 .if n .sp 1
 .if t .sp .5
 ..
-.TH XScreenSaver 1 "09-Nov-2013 (5.23)" "X Version 11"
+.TH XScreenSaver 1 "6-Jun-2019 (5.43)" "X Version 11"
 .SH NAME
 xscreensaver - extensible screen saver and screen locking framework
 .SH SYNOPSIS
@@ -254,7 +254,7 @@ If that doesn't work, then try this:
 Open "\fISystem Settings / Startup/Shutdown / Autostart\fP", and then
 add "\fI/usr/bin/xscreensaver\fP".
 
-If you are lucky, that will create a \fIxscreensaver.desktop"\fP file 
+If you are lucky, that will create a \fI"xscreensaver.desktop"\fP file 
 for you in \fI~/.config/autostart/\fP or \fI~/.kde/Autostart/\fP.
 .TP 3
 \fB3: Make xscreensaver be an Autostart program.\fP
@@ -369,6 +369,17 @@ X server's access control mechanisms, see the man pages for
 .BR xauth (1),
 and
 .BR xhost (1).
+.SH LAPTOP LIDS
+If you are running a system with
+.BR systemd (1)
+221 or newer, and if xscreensaver was compiled with \fIlibsystemd\fP
+support, then closing the lid of your laptop will cause the screen to
+lock immediately.
+
+If not, then the screen might not lock until a few seconds \fIafter\fP you
+re-open the lid. Which is less than ideal. So if you don't 
+use \fIsystemd\fP, you might want to get in the habit of
+doing \fIxscreensaver-command -lock\fP before closing the lid.
 .SH BUGS
 Bugs?  There are no bugs.  Ok, well, maybe.  If you find one, please let
 me know.  https://www.jwz.org/xscreensaver/bugs.html explains how to
@@ -1016,7 +1027,7 @@ and a FAQ can always be found at https://www.jwz.org/xscreensaver/
 .BR xscreensaver\-getimage (1),
 .BR xscreensaver\-text (1).
 .SH COPYRIGHT
-Copyright \(co 1991-2018 by Jamie Zawinski.
+Copyright \(co 1991-2019 by Jamie Zawinski.
 Permission to use, copy, modify, distribute, and sell this software
 and its documentation for any purpose is hereby granted without fee,
 provided that the above copyright notice appear in all copies and that
index f3af9114b1faf988e56b579877b1dde802990cd5..040db542ba2d1a6f5539e8cc650d6561485fccff 100644 (file)
@@ -1,4 +1,4 @@
-/* xscreensaver, Copyright (c) 1998-2018 Jamie Zawinski <jwz@jwz.org>
+/* xscreensaver, Copyright (c) 1998-2019 Jamie Zawinski <jwz@jwz.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -6391,9 +6391,9 @@ static const char *bsod_defaults [] = {
   ".win10.fontB:          Arial 50, Helvetica 50",
   ".win10.fontC:          Arial 9, Helvetica 9",
 
-  /* The real Solaris font is ../OSX/Gallant19.bdf but I don't know how
-     to convert that to a TTF, so let's use Luxi Mono instead. */
-  ".solaris.font:         Luxi Mono 12, PxPlus IBM VGA8 12, Courier Bold 12",
+  /* The real Solaris font is Gallant (../OSX/gallant12x22.ttf)
+     but Luxi Mono (../OSX/luximr.ttf) is pretty close as well. */
+  ".solaris.font:         Gallant12x22 12, Luxi Mono 12, PxPlus IBM VGA8 12, Courier Bold 12",
 
   /* "Arial" loads "ArialMT" but "Arial Bold" does not load "Arial-BoldMT"? */
   ".ransomware.font:         Arial 11, Helvetica 11",
@@ -6413,7 +6413,7 @@ static const char *bsod_defaults [] = {
   ".macinstall.bigFont:           -*-helvetica-medium-r-*-*-*-120-*-*-*-*-*-*",
   ".msdos.font:                   PxPlus IBM VGA8 32",
   ".nt.font:              PxPlus IBM VGA8 12",
-  ".solaris.font:         Luxi Mono 12, PxPlus IBM VGA8 12, Courier Bold 12",
+  ".solaris.font:         Gallant12x22 14, Luxi Mono 12, PxPlus IBM VGA8 12, Courier Bold 12",
 
   ".win10.font:                   -*-helvetica-medium-r-*-*-*-120-*-*-*-*-*-*",
   ".win10.bigFont:        -*-helvetica-medium-r-*-*-*-120-*-*-*-*-*-*",
@@ -6433,7 +6433,7 @@ static const char *bsod_defaults [] = {
   ".mac.bigFont:          Monaco 18, Courier Bold 18",
 
   ".macsbug.font:         Monaco 10, Courier Bold 9",
-  ".macsbug.bigFont:      Monaco 24, Courier Bold 24",
+  ".macsbug.bigFont:      Monaco 10, Courier Bold 9",
 
   ".macx.font:            Courier Bold 9",
   ".macx.bigFont:         Courier Bold 14",
@@ -6442,13 +6442,13 @@ static const char *bsod_defaults [] = {
   ".macinstall.font:      Helvetica 24, Arial 24",
   ".macinstall.bigFont:           Helvetica 24, Arial 24",
 
-  ".hvx.bigFont:          PxPlus IBM VGA8 16, Courier Bold 14",
-  ".hppalinux.bigFont:    PxPlus IBM VGA8 16, Courier Bold 14",
-  ".linux.bigFont:        PxPlus IBM VGA8 16, Courier Bold 14",
-  ".hpux.bigFont:         PxPlus IBM VGA8 16, Courier Bold 14",
-  ".msdos.font:                   PxPlus IBM VGA8 16, Courier Bold 14",
-  ".solaris.font:         Luxi Mono 12, PxPlus IBM VGA8 12, Courier Bold 12",
-  ".solaris.bigFont:      Luxi Mono 16, PxPlus IBM VGA8 16, Courier Bold 14",
+  ".hvx.bigFont:          PxPlus IBM VGA8 24, Courier Bold 14",
+  ".hppalinux.bigFont:    PxPlus IBM VGA8 24, Courier Bold 14",
+  ".linux.bigFont:        PxPlus IBM VGA8 24, Courier Bold 14",
+  ".hpux.bigFont:         PxPlus IBM VGA8 24, Courier Bold 14",
+  ".msdos.font:                   PxPlus IBM VGA8 24, Courier Bold 14",
+  ".solaris.font:         Gallant12x22 12, Luxi Mono 12, PxPlus IBM VGA8 12, Courier Bold 12",
+  ".solaris.bigFont:      Gallant12x22 22, Luxi Mono 16, PxPlus IBM VGA8 16, Courier Bold 14",
 
   ".win10.font:                   Arial 24, Helvetica 24",
   ".win10.bigFont:        Arial 24, Helvetica 24",
index a4423b2aff81382c84324e5e03145ea70aa63896..874ada811c92cef3f8e523d33c7da1723d4c7974 100644 (file)
@@ -223,7 +223,7 @@ self_similar_normalized (struct state *st,
        double    x = 0.0;
        double    y = 0.0;
 
-       replacement = (Position*)(malloc (segment_count * sizeof (Segment)));
+       replacement = (Position*)(malloc (segment_count * sizeof (*replacement)));
        copy_points (segment_count, points, replacement);
        assert (fabs ((replacement [segment_count - 1].x) - 1.0) < EPSILON);
        assert (fabs (replacement [segment_count - 1].y) < EPSILON);
index 59814637c59dc8f2489c4858baf452575212dd38..061b11096916928e67c9a42f1196d6c6e4fe0d54 100644 (file)
@@ -4,8 +4,8 @@
             a screen saver and locker for the X window system
                             by Jamie Zawinski
 
-                              version 5.42
-                               28-Dec-2018
+                              version 5.43
+                               01-Jul-2019
 
                      https://www.jwz.org/xscreensaver/
 
index 0e3dfe5807291490d9fcf3354a31e4fd7e9ccee7..abbb0cbbb84ee4023abad4acaae22da590b832d1 100644 (file)
           _label="Number of cows" _low-label="Moo" _high-label="Herd"
           low="1" high="9" default="1"/>
 
-  <boolean id="wire"    _label="Wireframe"              arg-set="-wireframe"/>
+  <boolean id="mathematical"
+   _label="Mathematically ideal cows (spherical, frictionless)"
+   arg-set="-mathematical"/>
+
+  <boolean id="wire"    _label="Wireframe" arg-set="-wireframe"/>
   <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
 
   <xscreensaver-updater />
diff --git a/hacks/config/deepstars.xml b/hacks/config/deepstars.xml
new file mode 100644 (file)
index 0000000..e1118e2
--- /dev/null
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<screensaver name="deepstars" _label="DeepStars" gl="yes">
+
+  <command arg="-root"/>
+
+  <video href="https://www.youtube.com/watch?v=_FhYeKXGpxs"/>
+
+  <number id="delay" type="slider" arg="-delay %"
+          _label="Frame rate" _low-label="Low" _high-label="High"
+          low="0" high="100000" default="30000"
+          convert="invert"/>
+
+  <number id="speed" type="slider" arg="-speed %"
+          _label="Speed" _low-label="Slow" _high-label="Fast"
+          low="0.01" high="8.0" default="1.0"/>
+
+  <number id="smear" type="slider" arg="-smear %"
+          _label="Smear" _low-label="Low" _high-label="High"
+          low="0.1" high="5.0" default="1.0"/>
+
+  <xscreensaver-updater />
+
+  <_description>
+A long exposure of the night sky, showing star paths as vapor trails.
+
+Written by Jamie Zawinski; 2019.
+  </_description>
+</screensaver>
index 7df645911369092f11116a4a5edd3e6beda57c4d..6b5f1f1f7e04c4ecd492cdb68c4f7b8e84adb3ef 100644 (file)
@@ -25,6 +25,7 @@
 
   <hgroup>
    <boolean id="tex"     _label="Chrome"      arg-unset="-no-texture"/>
+   <boolean id="fog"     _label="Fog"        arg-unset="-no-fog"/>
    <boolean id="wire"    _label="Wireframe"   arg-set="-wireframe"/>
    <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
   </hgroup>
index 5714b7af7b6a540bde7ece23f6ce3799e5185fe6..802f62969db970667c04597fa0f98dd98b9859fc 100644 (file)
@@ -5,6 +5,7 @@
   <command arg="-root"/>
 
   <video href="https://www.youtube.com/watch?v=ohcJ1bVkLZ4"/>
+<!--<video href="https://www.youtube.com/watch?v=OZ6zRLLFLk4"/>-->
 
   <number id="delay" type="slider" arg="-delay %"
           _label="Frame rate" _low-label="Low" _high-label="High"
    <boolean id="rotate" _label="Rotate"    arg-unset="-no-rotate"/>
    <boolean id="roll"   _label="Roll"      arg-unset="-no-roll"/>
    <boolean id="stars"  _label="Stars"     arg-unset="-no-stars"/>
+   <select id="mode">
+    <option id="globe" _label="Globe"/>
+    <option id="mercator" _label="Mercator"
+            arg-set="-mode mercator"/>
+    <option id="equirectangular" _label="Equirectangular"
+            arg-set="-mode equirectangular"/>
+   </select>
+
   </hgroup>
 
   <hgroup>
-   <boolean id="wire"    _label="Wireframe"              arg-set="-wireframe"/>
+   <boolean id="wire"    _label="Wireframe"       arg-set="-wireframe"/>
    <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
   </hgroup>
 
diff --git a/hacks/config/gravitywell.xml b/hacks/config/gravitywell.xml
new file mode 100644 (file)
index 0000000..ebecd1c
--- /dev/null
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<screensaver name="gravitywell" _label="GravityWell" gl="yes">
+
+  <command arg="-root"/>
+
+  <video href="https://www.youtube.com/watch?v=yhsw0QhIjjs"/>
+
+  <hgroup>
+   <vgroup>
+
+    <number id="delay" type="slider" arg="-delay %"
+            _label="Frame rate" _low-label="Low" _high-label="High"
+            low="0" high="100000" default="30000"
+            convert="invert"/>
+
+    <number id="speed" type="slider" arg="-speed %"
+            _label="Speed" _low-label="Slow" _high-label="Fast"
+            low="0.01" high="8.0" default="1.0"/>
+
+    <number id="resolution" type="slider" arg="-resolution %"
+            _label="Resolution" _low-label="Low" _high-label="High"
+            low="1.0" high="5.0" default="1.0"/>
+   </vgroup>
+   <vgroup>
+
+    <number id="grid-size" type="slider" arg="-grid-size %"
+            _label="Grid Size" _low-label="Dense" _high-label="Sparse"
+            low="0.1" high="5.0" default="1.0"/>
+
+    <number id="count" type="slider" arg="-count %"
+            _label="Number of stars" _low-label="One" _high-label="Lots"
+            low="1" high="40" default="15"/>
+   </vgroup>
+  </hgroup>
+
+  <xscreensaver-updater />
+
+  <_description>
+Massive objects distort space in a two dimensional universe.
+
+Written by Jamie Zawinski; 2019.
+  </_description>
+</screensaver>
index 8f8baef7cc6622751ba4e09ca6b7362481d3438c..b845963078e6044aa9cc97cbe67d53c9dadb2938 100644 (file)
@@ -35,7 +35,7 @@
     <select id="uniform">
      <option id="r-uniform"  _label="Random speed"/>
      <option id="uniform"    _label="Uniform speed"     arg-set="-uniform-speed"/>
-     <option id="no-uniform" _label="Non-uniform speed" arg-set="-no-uniform-speed"/>
+     <option id="no-uniform" _label="Non-uniform speed" arg-set="-nonuniform-speed"/>
     </select>
 
     <select id="lockstep">
index f3d3cb24b176469eafd90953ffb7cab462cdef58..f0feda94826f308c05c7edbd4149ceec98eb7c0e 100644 (file)
@@ -21,7 +21,7 @@
 
   <number id="ncolors" type="slider" arg="-ncolors %"
             _label="Number of colors" _low-label="Two" _high-label="Many"
-            low="1" high="255" default="50"/>
+            low="3" high="255" default="50"/>
 
   <select id="mode">
     <option id="random" _label="Random coloration"/>
index 073059978eaee05954b35b71050897ee7fbe0fb3..8cac8178fd914d633bb32464adc4330e3772975b 100644 (file)
@@ -44,6 +44,8 @@
    <boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
   </hgroup>
 
+  <file id="mask" _label="Mask image" arg="-mask %"/>
+
   <xscreensaver-updater />
 
   <_description>
index 25b64c4e2513f04477130605efc3b7e90693e921..2aabb9d56641c74797782dea0ede4361c9af9644 100644 (file)
@@ -1,4 +1,4 @@
-/* filmleader, Copyright (c) 2018 Jamie Zawinski <jwz@jwz.org>
+/* filmleader, Copyright (c) 2018-2019 Jamie Zawinski <jwz@jwz.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -223,10 +223,10 @@ filmleader_draw (Display *dpy, Window window, void *closure)
           XftTextExtentsUtf8 (dpy, xftfont, (FcChar8 *)
                               blurbs[i].s[0], strlen(blurbs[i].s[0]),
                               &extents);
-          lbearing = -extents.x;
+          /* lbearing = -extents.x; */
           rbearing = extents.width - extents.x;
           ascent   = extents.y;
-          descent  = extents.height - extents.y;
+          /* descent  = extents.height - extents.y; */
 
           x = (st->w - rbearing) / 2;
           y = st->h * 0.1 + ascent;
@@ -245,10 +245,10 @@ filmleader_draw (Display *dpy, Window window, void *closure)
                   XftTextExtentsUtf8 (dpy, xftfont, (FcChar8 *)
                                       blurbs[i].s[0], strlen(blurbs[i].s[j]),
                                       &extents);
-                  lbearing = -extents.x;
-                  rbearing = extents.width - extents.x;
-                  ascent   = extents.y;
-                  descent  = extents.height - extents.y;
+                  /* lbearing = -extents.x; */
+                  /* rbearing = extents.width - extents.x; */
+                  /* ascent   = extents.y; */
+                  /* descent  = extents.height - extents.y; */
                 }
             }
 
@@ -360,7 +360,7 @@ filmleader_draw (Display *dpy, Window window, void *closure)
       lbearing = -extents.x;
       rbearing = extents.width - extents.x;
       ascent   = extents.y;
-      descent  = extents.height - extents.y;
+      /* descent  = extents.height - extents.y; */
 
       x = st->w * 0.1;
       y = st->h * 0.1 + ascent;
@@ -377,8 +377,8 @@ filmleader_draw (Display *dpy, Window window, void *closure)
       XftTextExtentsUtf8 (dpy, xftfont, (FcChar8 *) s, strlen(s), &extents);
       lbearing = -extents.x;
       rbearing = extents.width - extents.x;
-      ascent   = extents.y;
-      descent  = extents.height - extents.y;
+      /* ascent   = extents.y; */
+      /* descent  = extents.height - extents.y; */
 
       x = st->w * 0.1;
       y = st->h * 0.95;
index df8f498696afaafbac143c523335dd934fb7c326..54c11b11a08f18455ce89cf4d65e024041a8efe4 100644 (file)
@@ -2421,8 +2421,8 @@ fontglide_free (Display *dpy, Window window, void *closure)
 
   textclient_close (s->tc);
 
-//  if (s->b && s->b != s->window) XFreePixmap (dpy, s->b);
-//  if (s->ba && s->ba != s->b) XFreePixmap (dpy, s->ba);
+/*  if (s->b && s->b != s->window) XFreePixmap (dpy, s->b); */
+/*  if (s->ba && s->ba != s->b) XFreePixmap (dpy, s->ba); */
   XFreeGC (dpy, s->bg_gc);
   if (s->charset) free (s->charset);
   if (s->font_override) free (s->font_override);
index a24f62315f98879d8d7b792290be78c830446bd6..6322fbef3c8c3bddb7a499adf53659e6a201006e 100644 (file)
@@ -1,4 +1,4 @@
-/* fps, Copyright (c) 2001-2018 Jamie Zawinski <jwz@jwz.org>
+/* fps, Copyright (c) 2001-2019 Jamie Zawinski <jwz@jwz.org>
  * Draw a frames-per-second display (Xlib and OpenGL).
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -170,14 +170,41 @@ fps_compute (fps_state *st, unsigned long polys, double depth)
 
       if (depth >= 0.0)
         {
-          unsigned long L = strlen (st->string);
-          char *s = st->string + L;
-          strcat (s, "\nDepth: ");
-          sprintf (s + strlen(s), "%.1f", depth);
-          L = strlen (s);
-          /* Remove trailing ".0" in case depth is not a fraction. */
-          if (s[L-2] == '.' && s[L-1] == '0')
-            s[L-2] = 0;
+          const char *s = "";
+          unsigned long ldepth = depth;
+# if 0
+          if (depth >= (1024 * 1024 * 1024))
+            ldepth = depth / (1024 * 1024 * 1024), s = "G";
+          else if (depth >= (1024 * 1024)) ldepth >>= 20, s = "M";
+          else if (depth >= 2048)          ldepth >>= 10, s = "K";
+# endif
+          strcat (st->string, "\nDepth: ");
+          if (ldepth >= 1000000000)
+            sprintf (st->string + strlen(st->string),
+                     "%lu,%03lu,%03lu,%03lu%s ",
+                     (ldepth / 1000000000),
+                     ((ldepth / 1000000) % 1000),
+                     ((ldepth / 1000) % 1000),
+                     (ldepth % 1000), s);
+          else if (ldepth >= 1000000)
+            sprintf (st->string + strlen(st->string), "%lu,%03lu,%03lu%s ",
+                     (ldepth / 1000000), ((ldepth / 1000) % 1000),
+                     (ldepth % 1000), s);
+          else if (ldepth >= 1000)
+            sprintf (st->string + strlen(st->string), "%lu,%03lu%s ",
+                     (ldepth / 1000), (ldepth % 1000), s);
+          else if (*s)
+            sprintf (st->string + strlen(st->string), "%lu%s ",
+                     ldepth, s);
+          else
+            {
+              int L;
+              sprintf (st->string + strlen(st->string), "%.1f", depth);
+              L = strlen (st->string);
+              /* Remove trailing ".0" in case depth is not a fraction. */
+              if (st->string[L-2] == '.' && st->string[L-1] == '0')
+                st->string[L-2] = 0;
+            }
         }
     }
 
index 7429fa834dc80041c1e3736be01a80506b639cae..d655ca97cc0eae83898b113c7f1499070db77a5a 100644 (file)
@@ -300,8 +300,8 @@ FuzzyFlakesColorHelper(Flake *flake)
    iG1 = nG1 * 255;
    iB1 = nB1 * 255;
 
-   flake->Colors.Fore = malloc(sizeof(unsigned char) * 8);
-   flake->Colors.Bord = malloc(sizeof(unsigned char) * 8);
+   flake->Colors.Fore = malloc(sizeof(char) * 8);
+   flake->Colors.Bord = malloc(sizeof(char) * 8);
 
    sprintf(flake->Colors.Fore, "#%02X%02X%02X", iR0, iG0, iB0);
    sprintf(flake->Colors.Bord, "#%02X%02X%02X", iR1, iG1, iB1);
@@ -372,7 +372,7 @@ FuzzyFlakesInit(Flake *flake)
          {
             if (flake->Colors.Back)
                free(flake->Colors.Back);
-            flake->Colors.Back = malloc(sizeof(unsigned char) * 8);
+            flake->Colors.Back = malloc(sizeof(char) * 8);
             sprintf(flake->Colors.Back, "#%X%X%X%X%X%X", random() % 16,
                     random() % 16, random() % 16, random() % 16, random() % 16,
                     random() % 16);
@@ -387,7 +387,7 @@ FuzzyFlakesInit(Flake *flake)
             fprintf(stderr, " reverting to random\n");
             if (flake->Colors.Back)
                free(flake->Colors.Back);
-            flake->Colors.Back = malloc(sizeof(unsigned char) * 8);
+            flake->Colors.Back = malloc(sizeof(char) * 8);
             sprintf(flake->Colors.Back, "#%X%X%X%X%X%X", random() % 16,
                     random() % 16, random() % 16, random() % 16, random() % 16,
                     random() % 16);
index 4f3b0520de20a279804468335c1d0c78d0a75ec2..91a05ded39b0ab17690245521df6952a8c412634 100644 (file)
@@ -1,4 +1,4 @@
-/* glitchpeg, Copyright (c) 2018 Jamie Zawinski <jwz@jwz.org>
+/* glitchpeg, Copyright (c) 2018-2019 Jamie Zawinski <jwz@jwz.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -232,6 +232,13 @@ xscreensaver_getimage_file_cb (XtPointer closure, int *source, XtInputId *id)
   while (L > 0 && (buf[L-1] == '\r' || buf[L-1] == '\n'))
     buf[--L] = 0;
 
+  if (!*file)
+    {
+      fprintf (stderr, "%s: no suitable images in imageDirectory\n",
+               progname);
+      return;
+    }
+
   fp = fopen (file, "r");
   if (! fp)
     {
@@ -286,6 +293,14 @@ glitchpeg_init (Display *dpy, Window window)
 
   XClearWindow (st->dpy, st->window);
 
+# if 0  /* This check doesn't work, because X11 resources are the devil. */
+  if (! get_boolean_resource (dpy, "chooseRandomImages", "Boolean"))
+    {
+      fprintf (stderr, "%s: chooseRandomImages must be True", progname);
+      exit (1);
+    }
+# endif
+
   return st;
 }
 
index 91e4d516df6458a1b81bc41be8250bb1eb5be7f4..3c5abac5f53109389453e5a45a0fa347d401dd95 100644 (file)
@@ -43,6 +43,8 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SETUID  = @INSTALL_SETUID@
 INSTALL_DATA   = @INSTALL_DATA@
 INSTALL_DIRS   = @INSTALL_DIRS@
+PROG_SETCAP    = @PROG_SETCAP@
+SETCAP_FLAGS   = cap_net_raw=p
 
 X_CFLAGS       = @X_CFLAGS@
 X_LIBS         = @X_LIBS@
@@ -60,6 +62,9 @@ HACK_LIBS     = $(HACK_PRE)           @ANIM_LIBS@ $(HACK_POST2)
 PNG_LIBS       = $(HACK_PRE)            @PNG_LIBS@ $(HACK_POST2)
 GLE_LIBS       = $(HACK_PRE) @GLE_LIBS@ @PNG_LIBS@ $(HACK_POST2)
 TEXT_LIBS      = @PTY_LIBS@
+#### Is LIBCAP_CFLAGS necessary?
+LIBCAP_CFLAGS  = @LIBCAP_CFLAGS@
+LIBCAP_LIBS    = @LIBCAP_LIBS@
 
 HACK_SRC       = $(srcdir)/..
 HACK_BIN       = ..
@@ -132,7 +137,7 @@ SRCS                = xscreensaver-gl-helper.c normals.c erase-gl.c fps-gl.c \
                  raverhoop.c hydrostat.c discoball.c cubetwist.c cubestack.c \
                  splodesic.c hexstrut.c vigilance.c seccam.c esper.c \
                  razzledazzle.c ships.c peepers.c crumbler.c quickhull.c \
-                 maze3d.c handsy.c handsy_model.c
+                 maze3d.c handsy.c handsy_model.c gravitywell.c
 
 OBJS           = xscreensaver-gl-helper.o normals.o erase-gl.o fps-gl.o \
                  atlantis.o b_draw.o b_lockglue.o b_sphere.o bubble3d.o \
@@ -179,7 +184,7 @@ OBJS                = xscreensaver-gl-helper.o normals.o erase-gl.o fps-gl.o \
                  raverhoop.o hydrostat.o discoball.o cubetwist.o cubestack.o \
                  splodesic.o hexstrut.o vigilance.o seccam.o esper.o \
                  razzledazzle.o ships.o peepers.o crumbler.o quickhull.o \
-                 maze3d.o handsy.o handsy_model.o
+                 maze3d.o handsy.o handsy_model.o gravitywell.o
 
 GL_EXES                = cage gears moebius pipes sproingies stairs superquadrics \
                  morph3d rubik atlantis lament bubble3d glplanet pulsar \
@@ -200,9 +205,10 @@ GL_EXES            = cage gears moebius pipes sproingies stairs superquadrics \
                  splitflap dymaxionmap unicrud energystream raverhoop \
                  hydrostat discoball cubetwist cubestack splodesic \
                  hexstrut vigilance esper razzledazzle peepers crumbler \
-                 maze3d handsy
+                 maze3d handsy gravitywell
 GLE_EXES       = extrusion
 SUID_EXES      = sonar
+SETCAP_EXES    = sonar
 GL_UTIL_EXES   = xscreensaver-gl-helper
 JWZGLES_OBJS   = @JWZGLES_OBJS@
 HACK_EXES_1    = @GL_EXES@ @GLE_EXES@
@@ -225,7 +231,7 @@ HACK_OBJS   = $(JWZGLES_OBJS) $(HACK_BIN)/screenhack.o @ANIM_OBJS@ \
                  $(UTILS_BIN)/colors.o $(UTILS_BIN)/async_netdb.o \
                  $(UTILS_BIN)/aligned_malloc.o $(UTILS_BIN)/thread_util.o \
                  $(UTILS_BIN)/utf8wc.o $(UTILS_BIN)/pow2.o \
-                 $(UTILS_BIN)/font-retry-xft.o
+                 $(UTILS_BIN)/font-retry-xft.o @XMU_OBJS@
 
 HDRS           = atlantis.h bubble3d.h buildlwo.h e_textures.h \
                  grab-ximage.h tube.h sphere.h boxed.h \
@@ -266,7 +272,8 @@ GL_MEN              = atlantis.man boxed.man bubble3d.man cage.man circuit.man \
                  unicrud.man energystream.man raverhoop.man hydrostat.man \
                  discoball.man cubetwist.man cubestack.man splodesic.man \
                  hexstrut.man vigilance.man esper.man razzledazzle.man \
-                 peepers.man crumbler.man maze3d.man handsy.man
+                 peepers.man crumbler.man maze3d.man handsy.man \
+                 gravitywell.man
 MEN            = @GL_MEN@
 RETIRED_MEN    = glforestfire.man
 EXTRAS         = README Makefile.in dxf2gl.pl vrml2gl.pl wfront2gl.pl \
@@ -321,6 +328,20 @@ install-program:: $(EXES)
               exit 1 ;                                                 \
             fi ;                                                       \
           done ;                                                       \
+                                                                       \
+          exes="${SETCAP_EXES}" ;                                      \
+          if [ @SETCAP_HACKS@ = yes ]; then                            \
+            for program in $$exes; do                                  \
+              echo $(PROG_SETCAP) $(SETCAP_FLAGS) $$idir/$$program ;   \
+              if   $(PROG_SETCAP) $(SETCAP_FLAGS) $$idir/$$program ; then \
+                true ;                                                 \
+              else                                                     \
+                echo "" ;                                              \
+                echo "WARNING: unable to setcap $$program" ;           \
+                echo "" ;                                              \
+              fi ;                                                     \
+            done ;                                                     \
+          fi ;                                                         \
         fi
 
 
@@ -898,7 +919,7 @@ skytentacles:       skytentacles.o  $(TENTACLE_OBJS)
 
 SONAR_OBJS=sonar-sim.o sonar-icmp.o $(HACK_TRACK_OBJS)
 sonar:         sonar.o         $(SONAR_OBJS)
-       $(CC_HACK) -o $@ $@.o   $(SONAR_OBJS) $(HACK_LIBS)
+       $(CC_HACK) -o $@ $@.o   $(SONAR_OBJS) $(HACK_LIBS) $(LIBCAP_LIBS)
 
 JIGSAW_OBJS=normals.o $(UTILS_BIN)/spline.o $(HACK_TRACK_GRAB_OBJS)
 jigsaw:                jigsaw.o        $(JIGSAW_OBJS)
@@ -932,8 +953,8 @@ kaleidocycle:                       $(KALEIDOCYCLE_OBJS)
 quasicrystal:  quasicrystal.o  $(HACK_TRACK_OBJS)
        $(CC_HACK) -o $@ $@.o   $(HACK_TRACK_OBJS) $(HACK_LIBS)
 
-unknownpleasures: unknownpleasures.o   $(HACK_TRACK_OBJS)
-       $(CC_HACK) -o $@ $@.o   $(HACK_TRACK_OBJS) $(HACK_LIBS)
+unknownpleasures: unknownpleasures.o   $(PNG) $(HACK_TRACK_OBJS)
+       $(CC_HACK) -o $@ $@.o $(PNG) $(HACK_TRACK_OBJS) $(HACK_LIBS) $(PNG_LIBS)
 
 geodesic: geodesic.o            normals.o $(HACK_TRACK_OBJS)
        $(CC_HACK) -o $@ $@.o    normals.o $(HACK_TRACK_OBJS) $(HACK_LIBS)
@@ -1006,6 +1027,8 @@ handsy:   handsy.o                 $(HANDSY_OBJS)
 handsy_dxf::
        ./dxf2gl.pl --smooth 28 --layers handsy.dxf handsy_model.c
 
+gravitywell:   gravitywell.o   $(HACK_TRACK_OBJS)
+       $(CC_HACK) -o $@ $@.o   $(HACK_TRACK_OBJS) $(HACK_LIBS)
 
 ##############################################################################
 #
@@ -2161,6 +2184,22 @@ grab-ximage.o: $(UTILS_SRC)/grabscreen.h
 grab-ximage.o: $(UTILS_SRC)/pow2.h
 grab-ximage.o: $(UTILS_SRC)/visual.h
 grab-ximage.o: $(UTILS_SRC)/xshm.h
+gravitywell.o: ../../config.h
+gravitywell.o: $(HACK_SRC)/fps.h
+gravitywell.o: $(srcdir)/gltrackball.h
+gravitywell.o: $(HACK_SRC)/recanim.h
+gravitywell.o: $(HACK_SRC)/screenhackI.h
+gravitywell.o: $(UTILS_SRC)/colors.h
+gravitywell.o: $(UTILS_SRC)/erase.h
+gravitywell.o: $(UTILS_SRC)/font-retry.h
+gravitywell.o: $(UTILS_SRC)/grabscreen.h
+gravitywell.o: $(UTILS_SRC)/hsv.h
+gravitywell.o: $(UTILS_SRC)/resources.h
+gravitywell.o: $(UTILS_SRC)/usleep.h
+gravitywell.o: $(UTILS_SRC)/visual.h
+gravitywell.o: $(UTILS_SRC)/yarandom.h
+gravitywell.o: $(HACK_SRC)/xlockmoreI.h
+gravitywell.o: $(HACK_SRC)/xlockmore.h
 handsy_model.o: ../../config.h
 handsy_model.o: $(srcdir)/gllist.h
 handsy.o: ../../config.h
@@ -3402,6 +3441,7 @@ unicrud.o: $(HACK_SRC)/xlockmore.h
 unknownpleasures.o: ../../config.h
 unknownpleasures.o: $(HACK_SRC)/fps.h
 unknownpleasures.o: $(srcdir)/gltrackball.h
+unknownpleasures.o: $(srcdir)/grab-ximage.h
 unknownpleasures.o: $(HACK_SRC)/recanim.h
 unknownpleasures.o: $(HACK_SRC)/screenhackI.h
 unknownpleasures.o: $(UTILS_SRC)/colors.h
@@ -3413,6 +3453,7 @@ unknownpleasures.o: $(UTILS_SRC)/resources.h
 unknownpleasures.o: $(UTILS_SRC)/usleep.h
 unknownpleasures.o: $(UTILS_SRC)/visual.h
 unknownpleasures.o: $(UTILS_SRC)/yarandom.h
+unknownpleasures.o: $(HACK_SRC)/ximage-loader.h
 unknownpleasures.o: $(HACK_SRC)/xlockmoreI.h
 unknownpleasures.o: $(HACK_SRC)/xlockmore.h
 vigilance.o: ../../config.h
index bcbea24f8f2ba5a0acfebc1f1a5b659bf1511143..5dc94662fa3899b13c8d02b72347afa3db0e38d0 100644 (file)
@@ -1,4 +1,4 @@
-/* bouncingcow, Copyright (c) 2003-2018 Jamie Zawinski <jwz@jwz.org>
+/* bouncingcow, Copyright (c) 2003-2019 Jamie Zawinski <jwz@jwz.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -19,6 +19,7 @@
 # define release_cow 0
 #define DEF_SPEED       "1.0"
 #define DEF_TEXTURE     "(none)"
+#define DEF_MATHEMATICAL "False"
 
 #undef countof
 #define countof(x) (sizeof((x))/sizeof((*x)))
@@ -68,6 +69,8 @@ typedef struct {
 
   GLuint *dlists;
   GLuint texture;
+  enum { BOUNCE, INFLATE, DEFLATE } mode;
+  GLfloat ratio;
 
   int nfloaters;
   floater *floaters;
@@ -78,16 +81,20 @@ static cow_configuration *bps = NULL;
 
 static GLfloat speed;
 static const char *do_texture;
+static Bool mathematical;
 
 static XrmOptionDescRec opts[] = {
   { "-speed",      ".speed",     XrmoptionSepArg, 0 },
   {"-texture",     ".texture",   XrmoptionSepArg, 0 },
   {"+texture",     ".texture",   XrmoptionNoArg, "(none)" },
+  {"-mathematical", ".mathematical", XrmoptionNoArg, "True" },
+  {"+mathematical", ".mathematical", XrmoptionNoArg, "False" },
 };
 
 static argtype vars[] = {
   {&speed,      "speed",      "Speed",   DEF_SPEED,     t_Float},
   {&do_texture, "texture",    "Texture", DEF_TEXTURE,   t_String},
+  {&mathematical,"mathematical","Mathematical",DEF_MATHEMATICAL,t_Bool},
 };
 
 ENTRYPOINT ModeSpecOpt cow_opts = {countof(opts), opts, countof(vars), vars, NULL};
@@ -196,29 +203,33 @@ cow_handle_event (ModeInfo *mi, XEvent *event)
 /* Textures
  */
 
-static Bool
+static void
 load_texture (ModeInfo *mi, const char *filename)
 {
+  cow_configuration *bp = &bps[MI_SCREEN(mi)];
   Display *dpy = mi->dpy;
   Visual *visual = mi->xgwa.visual;
   char buf[1024];
   XImage *image;
 
+  bp->texture = 0;
   if (MI_IS_WIREFRAME(mi))
-    return False;
+    return;
 
   if (!filename ||
       !*filename ||
       !strcasecmp (filename, "(none)"))
     {
       glDisable (GL_TEXTURE_2D);
-      return False;
+      return;
     }
 
   image = file_to_ximage (dpy, visual, filename);
-  if (!image) return False;
+  if (!image) return;
 
   clear_gl_error();
+  glGenTextures (1, &bp->texture);
+  glBindTexture (GL_TEXTURE_2D, bp->texture);
   glTexImage2D (GL_TEXTURE_2D, 0, GL_RGBA,
                 image->width, image->height, 0,
                 GL_RGBA, GL_UNSIGNED_BYTE, image->data);
@@ -228,62 +239,24 @@ load_texture (ModeInfo *mi, const char *filename)
 
   glPixelStorei (GL_UNPACK_ALIGNMENT, 4);
   glPixelStorei (GL_UNPACK_ROW_LENGTH, image->width);
-
-  return True;
 }
 
 
-ENTRYPOINT void
-init_cow (ModeInfo *mi)
+static void
+render_cow (ModeInfo *mi, GLfloat ratio)
 {
-  cow_configuration *bp;
+  cow_configuration *bp = &bps[MI_SCREEN(mi)];
   int wire = MI_IS_WIREFRAME(mi);
   int i;
-  Bool tex_p = False;
-
-  MI_INIT (mi, bps);
-
-  bp = &bps[MI_SCREEN(mi)];
-
-  bp->glx_context = init_GL(mi);
-
-  reshape_cow (mi, MI_WIDTH(mi), MI_HEIGHT(mi));
-
-  glShadeModel(GL_SMOOTH);
-
-  glEnable(GL_DEPTH_TEST);
-  glEnable(GL_NORMALIZE);
-  glEnable(GL_CULL_FACE);
-
-  if (!wire)
+  if (! bp->dlists)
+    bp->dlists = (GLuint *) calloc (countof(all_objs)+1, sizeof(GLuint));
+  for (i = 0; i < countof(all_objs); i++)
     {
-      GLfloat pos[4] = {0.4, 0.2, 0.4, 0.0};
-/*      GLfloat amb[4] = {0.0, 0.0, 0.0, 1.0};*/
-      GLfloat amb[4] = {0.2, 0.2, 0.2, 1.0};
-      GLfloat dif[4] = {1.0, 1.0, 1.0, 1.0};
-      GLfloat spc[4] = {1.0, 1.0, 1.0, 1.0};
-
-      glEnable(GL_LIGHTING);
-      glEnable(GL_LIGHT0);
-      glEnable(GL_DEPTH_TEST);
-      glEnable(GL_CULL_FACE);
-
-      glLightfv(GL_LIGHT0, GL_POSITION, pos);
-      glLightfv(GL_LIGHT0, GL_AMBIENT,  amb);
-      glLightfv(GL_LIGHT0, GL_DIFFUSE,  dif);
-      glLightfv(GL_LIGHT0, GL_SPECULAR, spc);
+      if (bp->dlists[i])
+        glDeleteLists (bp->dlists[i], 1);
+      bp->dlists[i] = glGenLists (1);
     }
 
-  bp->trackball = gltrackball_init (False);
-
-  bp->dlists = (GLuint *) calloc (countof(all_objs)+1, sizeof(GLuint));
-  for (i = 0; i < countof(all_objs); i++)
-    bp->dlists[i] = glGenLists (1);
-
-  tex_p = load_texture (mi, do_texture);
-  if (tex_p)
-    glBindTexture (GL_TEXTURE_2D, bp->texture);
-
   for (i = 0; i < countof(all_objs); i++)
     {
       GLfloat black[4] = {0, 0, 0, 1};
@@ -296,7 +269,7 @@ init_cow (ModeInfo *mi)
       if (i == HIDE)
         {
           GLfloat color[4] = {0.63, 0.43, 0.36, 1.00};
-          if (tex_p)
+          if (bp->texture)
             {
               /* if we have a texture, make the base color be white. */
               color[0] = color[1] = color[2] = 1.0;
@@ -366,11 +339,121 @@ init_cow (ModeInfo *mi)
           glMaterialf  (GL_FRONT_AND_BACK, GL_SHININESS,           shiny);
         }
 
-      renderList (gll, wire);
+      if (ratio == 0)
+        renderList (gll, wire);
+      else
+        {
+          /* Transition between a physics cow (cow-shaped) and a 
+             mathematical cow (spherical).
+           */
+          struct gllist *gll2 = (struct gllist *) malloc (sizeof(*gll2));
+          GLfloat *p = (GLfloat *) malloc (gll->points * 6 * sizeof(*p));
+          GLfloat scale2 = 0.5 + (0.5 * (1-ratio));
+          const GLfloat *pin  = (GLfloat *) gll->data;
+          GLfloat *pout = p;
+          int j;
+          GLfloat scale = 10.46;
+
+          memcpy (gll2, gll, sizeof(*gll2));
+          gll2->next = 0;
+          gll2->data = p;
+
+          for (j = 0; j < gll2->points; j++)
+            {
+              const GLfloat *ppi;
+              GLfloat *ppo, d;
+              int k;
+              switch (gll2->format) {
+              case GL_N3F_V3F:
+
+                /* Verts transition from cow-shaped to the surface of
+                   the enclosing sphere. */
+                ppi = &pin[3];
+                ppo = &pout[3];
+                d = sqrt (ppi[0]*ppi[0] + ppi[1]*ppi[1] + ppi[2]*ppi[2]);
+                for (k = 0; k < 3; k++)
+                  {
+                    GLfloat min = ppi[k];
+                    GLfloat max = ppi[k] / d * scale;
+                    ppo[k] = (min + ratio * (max - min)) * scale2;
+                  }
+
+                /* Normals are the ratio between original normals and
+                   the radial coordinates. */
+                ppi = &pin[0];
+                ppo = &pout[0];
+                for (k = 0; k < 3; k++)
+                  {
+                    GLfloat min = ppi[k];
+                    GLfloat max = ppi[k] / d;
+                    ppo[k] = (min + ratio * (max - min));
+                  }
+
+                pin  += 6;
+                pout += 6;
+                break;
+              default: abort(); break; /* write me */
+              }
+            }
+
+          renderList (gll2, wire);
+          free (gll2);
+          free (p);
+        }
 
       glEndList ();
     }
+}
+
+
+ENTRYPOINT void
+init_cow (ModeInfo *mi)
+{
+  cow_configuration *bp;
+  int wire = MI_IS_WIREFRAME(mi);
+  int i;
+
+  MI_INIT (mi, bps);
+
+  bp = &bps[MI_SCREEN(mi)];
+
+  bp->glx_context = init_GL(mi);
+
+  reshape_cow (mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+
+  glShadeModel(GL_SMOOTH);
+
+  glEnable(GL_DEPTH_TEST);
+  glEnable(GL_NORMALIZE);
+  glEnable(GL_CULL_FACE);
+
+  if (!wire)
+    {
+      GLfloat pos[4] = {0.4, 0.2, 0.4, 0.0};
+/*      GLfloat amb[4] = {0.0, 0.0, 0.0, 1.0};*/
+      GLfloat amb[4] = {0.2, 0.2, 0.2, 1.0};
+      GLfloat dif[4] = {1.0, 1.0, 1.0, 1.0};
+      GLfloat spc[4] = {1.0, 1.0, 1.0, 1.0};
+
+      glEnable(GL_LIGHTING);
+      glEnable(GL_LIGHT0);
+      glEnable(GL_DEPTH_TEST);
+      glEnable(GL_CULL_FACE);
+
+      glLightfv(GL_LIGHT0, GL_POSITION, pos);
+      glLightfv(GL_LIGHT0, GL_AMBIENT,  amb);
+      glLightfv(GL_LIGHT0, GL_DIFFUSE,  dif);
+      glLightfv(GL_LIGHT0, GL_SPECULAR, spc);
+    }
+
+  bp->trackball = gltrackball_init (False);
+
+  load_texture (mi, do_texture);
+
+  bp->ratio = 0;
+  render_cow (mi, bp->ratio);
 
+  bp->mode = BOUNCE;
   bp->nfloaters = MI_COUNT (mi);
   bp->floaters = (floater *) calloc (bp->nfloaters, sizeof (floater));
 
@@ -482,6 +565,39 @@ draw_cow (ModeInfo *mi)
 
   mi->polygon_count = 0;
 
+  if (mathematical)
+    {
+      switch (bp->mode) {
+      case BOUNCE:
+        if (bp->ratio == 0 && !(random() % 400))
+          bp->mode = INFLATE;
+        else if (bp->ratio > 0 && !(random() % 2000))
+          bp->mode = DEFLATE;
+        break;
+      case INFLATE:
+        bp->ratio += 0.01;
+        if (bp->ratio >= 1)
+          {
+            bp->ratio = 1;
+            bp->mode = BOUNCE;
+          }
+        break;
+      case DEFLATE:
+        bp->ratio -= 0.01;
+        if (bp->ratio <= 0)
+          {
+            bp->ratio = 0;
+            bp->mode = BOUNCE;
+          }
+        break;
+      default:
+        abort();
+      }
+
+      if (bp->ratio > 0)
+        render_cow (mi, bp->ratio);
+    }
+
 # if 0
   {
     floater F;
index 516d1de3da070d6cef486fd50c5824957bb17079..9657d4184161ae67b145f8eeaff9003a48986cd5 100644 (file)
@@ -10,6 +10,7 @@ bouncingcow - a happy cow on a trampoline in 3D.  Moo.
 [\-delay \fInumber\fP]
 [\-speed \fInumber\fP]
 [\-count \fInumber\fP]
+[\-mathematical]
 [\-texture \fIfilename\fP]
 [\-wireframe]
 [\-fps]
@@ -42,6 +43,10 @@ An image file to paint on the cow's hide.
 Note that on most systems, GL textures must have dimensions that are a
 power of two.
 .TP 8
+.B \-mathematical
+Periodically transition to display mathematically ideal cows (spherical, 
+frictionless).
+.TP 8
 .B \-wireframe
 Render in wireframe instead of solid.
 .TP 8
index 6ce82bb68b8d6fd6be253a9893a891379dd7e488..7d1b5d0b42ec72f58430504ef4b1696b996873af 100644 (file)
@@ -1248,7 +1248,7 @@ pinit(ModeInfo * mi)
    gp->tic = gp->camtic = rnd() * 100.0f;
    
    /* define tex1 (bottom plate) */
-   gp->tex1 = (char *)malloc(3*width*height*sizeof(GLuint));
+   gp->tex1 = (char *)malloc(3*width*height*sizeof(*gp->tex1));
    texpixels = 256*256; /*width*height;*/
    texpixeldata = header_data;
    texpixeltarget = gp->tex1;
index 794f97bc4de53cb24f3f8bfd51535160e136a9e1..f41f51cf05b0248dcc9b906031b99a2bb188bc96 100644 (file)
@@ -44,7 +44,7 @@ Whether the scene should spin.
 Rotation speed, 0 - 100.  Default: 1.
 .TP 8
 .B \-light | \-no-light
-Whether to us lighting, or flat coloring.
+Whether to use lighting, or flat coloring.
 .TP 8
 .B \-fps
 Display the current frame rate, CPU load, and polygon count.
index e7d85a9f01abb7e57f6ba2c2ab3da90179b6611a..90887a8174320742094c926b89ba3b573d9ee6a0 100644 (file)
@@ -210,7 +210,7 @@ typedef enum {
   MANUAL_RETICLE_ON,
   MANUAL_RETICLE,
   MANUAL_BOX_ON,
-  MANUAL_BOX,
+  MANUAL_BOX
 } anim_state;
 
 typedef enum { NEW, IN, FULL, OUT, DEAD } sprite_state;
@@ -1185,13 +1185,13 @@ static void
 draw_flash_sprite (ModeInfo *mi, sprite *sp)
 {
   /* esper_state *ss = &sss[MI_SCREEN(mi)]; */
+  int wire = MI_IS_WIREFRAME(mi);
   GLfloat o = sp->opacity;
 
   if (o <= 0) return;
   o = 0.7;  /* Too fast to see, so keep it consistent */
 
   glPushMatrix();
-  int wire = MI_IS_WIREFRAME(mi);
   if (!wire)
     glDisable (GL_TEXTURE_2D);
   glColor4f (0, 0, 1, o);
index 951c18851f1f13b58096ca61d6b598b47cf45b1e..030900b44b27f56f8ac3e2796b8f6d4abe265053 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * fliptext, Copyright (c) 2005-2015 Jamie Zawinski <jwz@jwz.org>
+ * fliptext, Copyright (c) 2005-2019 Jamie Zawinski <jwz@jwz.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -805,7 +805,7 @@ init_fliptext (ModeInfo *mi)
   MI_INIT(mi, scs);
 
   sc = &scs[MI_SCREEN(mi)];
-  sc->lines = (line **) calloc (max_lines+1, sizeof(char *));
+  sc->lines = (line **) calloc (max_lines+1, sizeof(*sc->lines));
 
   sc->dpy = MI_DISPLAY(mi);
 
index a527e8be2c210f7b519008fcf228a4184a4257e9..dce20e7f27ad1818f482f5ce5f57471c7470173e 100644 (file)
@@ -1,4 +1,4 @@
-/* flyingtoasters, Copyright (c) 2003-2018 Jamie Zawinski <jwz@jwz.org>
+/* flyingtoasters, Copyright (c) 2003-2019 Jamie Zawinski <jwz@jwz.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -40,6 +40,7 @@
 #define DEF_NTOASTERS   "20"
 #define DEF_NSLICES     "25"
 #define DEF_TEXTURE     "True"
+#define DEF_FOG         "True"
 
 #undef BELLRAND
 #define BELLRAND(n) ((frand((n)) + frand((n)) + frand((n))) / 3)
@@ -138,6 +139,7 @@ static GLfloat speed;
 static int ntoasters;
 static int nslices;
 static int do_texture;
+static int do_fog;
 
 static XrmOptionDescRec opts[] = {
   { "-speed",  ".speed",  XrmoptionSepArg, 0 },
@@ -145,6 +147,8 @@ static XrmOptionDescRec opts[] = {
   { "-nslices",    ".nslices",   XrmoptionSepArg, 0 },
   {"-texture",     ".texture",   XrmoptionNoArg, "True" },
   {"+texture",     ".texture",   XrmoptionNoArg, "False" },
+  {"-fog",         ".fog",       XrmoptionNoArg, "True" },
+  {"+fog",         ".fog",       XrmoptionNoArg, "False" },
 };
 
 static argtype vars[] = {
@@ -152,6 +156,7 @@ static argtype vars[] = {
   {&ntoasters,  "ntoasters",  "Count",   DEF_NTOASTERS, t_Int},
   {&nslices,    "nslices",    "Count",   DEF_NSLICES,   t_Int},
   {&do_texture, "texture",    "Texture", DEF_TEXTURE,   t_Bool},
+  {&do_fog,     "fog",        "Fog",     DEF_FOG,       t_Bool},
 };
 
 ENTRYPOINT ModeSpecOpt toasters_opts = {countof(opts), opts, countof(vars), vars, NULL};
@@ -651,6 +656,12 @@ draw_grid (ModeInfo *mi)
   glVertex3f( GRID_SIZE/2, -GRID_SIZE/2,  GRID_DEPTH/2);
   glVertex3f( GRID_SIZE/2,  GRID_SIZE/2,  GRID_DEPTH/2);
   glEnd();
+  glBegin(GL_QUADS);
+  glVertex3f( GRID_SIZE/2, -GRID_SIZE/2, -GRID_DEPTH/2);
+  glVertex3f( GRID_SIZE/2,  GRID_SIZE/2, -GRID_DEPTH/2);
+  glVertex3f( 0,            GRID_SIZE/2, -GRID_DEPTH/2);
+  glVertex3f( 0,           -GRID_SIZE/2, -GRID_DEPTH/2);
+  glEnd();
   glPopMatrix();
 
   if (!MI_IS_WIREFRAME(mi)) glEnable(GL_LIGHTING);
@@ -845,6 +856,15 @@ draw_toasters (ModeInfo *mi)
   glTranslatef (0, 0, -GRID_DEPTH/2.5);
   draw_grid (mi);
 
+  if (do_fog && !MI_IS_WIREFRAME(mi))
+    {
+      GLfloat fog_color[4] = { 0, 0, 0, 1 };
+      glFogi (GL_FOG_MODE, GL_EXP2);
+      glFogfv (GL_FOG_COLOR, fog_color);
+      glFogf (GL_FOG_DENSITY, 0.0085);
+      glEnable (GL_FOG);
+    }
+
   mi->polygon_count = 0;
   for (i = 0; i < bp->nfloaters; i++)
     {
@@ -872,11 +892,11 @@ free_toasters (ModeInfo *mi)
   if (!bp->glx_context) return;
   glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *bp->glx_context);
 
-  if (bp->dlists) free (bp->dlists);
   if (bp->floaters) free (bp->floaters);
   if (bp->user_trackball) gltrackball_free (bp->user_trackball);
   for (i = 0; i < countof(all_objs); i++)
     if (glIsList(bp->dlists[i])) glDeleteLists(bp->dlists[i], 1);
+  if (bp->dlists) free (bp->dlists);
   if (bp->toast_texture) glDeleteTextures (1, &bp->toast_texture);
 # ifndef HAVE_JWZGLES
   if (bp->chrome_texture) glDeleteTextures (1, &bp->chrome_texture);
index dbe5d5a96079f2de16bd07bb0260deb6e467c6d3..1de96da4e19946ef1daf147e284033ad92ce87b2 100644 (file)
@@ -12,6 +12,7 @@ flyingtoasters - 3d space-age jet-powered flying toasters (and toast)
 [\-ntoasters \fInumber\fP]
 [\-nslices \fInumber\fP]
 [\-no-texture]
+[\-no-fog]
 [\-wireframe]
 [\-fps]
 .SH DESCRIPTION
@@ -44,6 +45,9 @@ How many slices of toast to draw.  Default 25.
 .B \-no-texture
 Turn off texture mapping (for slow machines.)
 .TP 8
+.B \-no-fog
+Turn off fog (do not fade out distant toasters.)
+.TP 8
 .B \-wireframe
 Render in wireframe instead of solid.
 .TP 8
index feaae8c5f6289dc4974c92c1cfa6e8b4c2861170..86e7e97c33ab240c90a47fb05a13cab23d809392 100644 (file)
@@ -1,4 +1,4 @@
-/* gears, Copyright (c) 2007-2014 Jamie Zawinski <jwz@jwz.org>
+/* gears, Copyright (c) 2007-2019 Jamie Zawinski <jwz@jwz.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -684,7 +684,7 @@ planetary_gears (ModeInfo *mi)
   g0->spokes      = 0;
   g0->size        = INVOLUTE_LARGE;
 
-  bp->gears = (gear **) calloc (6, sizeof(**bp->gears));
+  bp->gears = (gear **) calloc (6, sizeof(*bp->gears));
   bp->ngears = 0;
 
   bp->gears[bp->ngears++] = g1;
@@ -768,7 +768,7 @@ init_gears (ModeInfo *mi)
 
       if (total_gears <= 0)
         total_gears = 3 + fabs (BELLRAND (8) - 4);  /* 3 - 7, mostly 3. */
-      bp->gears = (gear **) calloc (total_gears+2, sizeof(**bp->gears));
+      bp->gears = (gear **) calloc (total_gears+2, sizeof(*bp->gears));
       bp->ngears = 0;
 
       for (i = 0; i < total_gears; i++)
index eaf775f10c7032332f8e78e8e227590a89865569..46cdc68e254131b7e02a505549f51c9aa2072091 100644 (file)
@@ -1296,7 +1296,7 @@ static void initData(glhcfg *glhanoi)
                glhanoi->pole[i].size = glhanoi->numberOfDisks;
        }
        checkAllocAndExit(
-                       !!(glhanoi->diskPos = calloc(glhanoi->numberOfDisks, sizeof(double))),
+                       !!(glhanoi->diskPos = calloc(glhanoi->numberOfDisks, sizeof(float))),
                        "diskPos");
 
        if (glhanoi->trailQSize) {
@@ -1430,7 +1430,7 @@ static GLubyte *makeTexture(glhcfg *glhanoi, int x_size, int y_size, int z_size,
        double xi, yi, zi;
 
        if((textureData =
-               calloc(x_size * y_size * z_size, sizeof(GLuint))) == NULL) {
+               calloc(x_size * y_size * z_size, sizeof(GLubyte))) == NULL) {
                return NULL;
        }
 
index a2f6889a10a50ad686342745af2be651df3038ae..83748cc263f3704dea9a8cffae4e5b6ed80d3780 100644 (file)
@@ -65,6 +65,7 @@
 #define DEF_RESOLUTION "128"
 #define DEF_IMAGE   "BUILTIN"
 #define DEF_IMAGE2  "BUILTIN"
+#define DEF_MODE    "globe"
 
 #define BLENDED_TERMINATOR
 
@@ -83,6 +84,7 @@ static char *which_image;
 static char *which_image2;
 static int resolution;
 static GLfloat spin_arg;
+static char *mode_arg;
 
 static XrmOptionDescRec opts[] = {
   {"-rotate",  ".rotate",  XrmoptionNoArg, "true" },
@@ -96,9 +98,11 @@ static XrmOptionDescRec opts[] = {
   {"-stars",   ".stars",   XrmoptionNoArg, "true" },
   {"+stars",   ".stars",   XrmoptionNoArg, "false" },
   {"-spin",    ".spin",    XrmoptionSepArg, 0 },
+  {"-no-spin", ".spin",    XrmoptionNoArg, "0" },
   {"-image",   ".image",   XrmoptionSepArg, 0 },
   {"-image2",  ".image2",  XrmoptionSepArg, 0 },
   {"-resolution", ".resolution", XrmoptionSepArg, 0 },
+  {"-mode",    ".mode",    XrmoptionSepArg, 0 },
 };
 
 static argtype vars[] = {
@@ -110,6 +114,7 @@ static argtype vars[] = {
   {&spin_arg,    "spin",    "Spin",    DEF_SPIN,    t_Float},
   {&which_image, "image",   "Image",   DEF_IMAGE,   t_String},
   {&which_image2,"image2",  "Image",   DEF_IMAGE2,  t_String},
+  {&mode_arg,    "mode"     ,"Mode"  , DEF_MODE,    t_String},
   {&resolution,  "resolution","Resolution", DEF_RESOLUTION, t_Int},
 };
 
@@ -154,6 +159,7 @@ typedef struct {
   Bool button_down_p;
   GLuint tex1, tex2;
   int draw_axis;
+  enum { GLOBE, EQUIRECTANGULAR, MERCATOR } mode;
 
 } planetstruct;
 
@@ -267,6 +273,138 @@ setup_texture (ModeInfo * mi)
 }
 
 
+static void
+unit_mercator (int stacks, int slices, int wire_p, Bool mercp)
+{
+  int i, j;
+  GLfloat x, y, ty, xs, ys;
+  GLfloat lastx = 0, lasty = 0, lastty = 0;
+  GLfloat r, north, south;
+
+  /* #### TODO: the grid lines are always rendered as Equirectangular,
+     not Mercator. */
+
+  stacks /= 2;
+  xs = 1.0 / slices;
+  ys = 1.0 / stacks;
+
+  glPushMatrix();
+  r = 1.8;
+  glScalef (r, r, r);
+  glFrontFace(GL_CW);
+
+  r = 0.35;  /* Grids are roughly square at equator */
+
+  if (mercp)
+    {
+      /* The poles go to infinity. The traditional Mercator projection
+         omits the Northern and Southern latitudes asymmetrically to
+         move Europe toward the center.  How Colonial! */
+      north =  85 / 180.0;
+      south = -66 / 180.0;
+    }
+  else
+    {
+      /* Antarctica should be roughly the same width as North America,
+         but even Equirectangular is crazypants here. */
+      north = 80 / 180.0;
+      south = -north;
+    }
+
+
+  for (j = 0, y = -0.5, ty = 0; j <= stacks; 
+       lasty = y, lastty = ty, y += ys, j++)
+    {
+      GLfloat th;
+
+      ty = (0.5 - y) * (south - north) - south;
+      ty += 0.5;
+
+      th = M_PI * (ty - 0.5); /* latitude in radians */
+
+      if (mercp)
+        {
+          /* Obviously I have no idea what I'm doing here */
+          ty = 2 * (atan (pow(M_E, th)) - M_PI/4);
+          ty *= 0.41;
+          ty += 0.5;
+        }
+
+      /* Draw the end caps
+       */
+      if (j == 0 || j == stacks)
+        {
+          GLfloat xx, yy, lxx, lyy;
+          glFrontFace(j == 0 ? GL_CCW : GL_CW);
+
+          if (j == stacks && !wire_p) glEnd();
+
+          glNormal3f (0, (j == 0 ? -1 : 1), 0);
+
+          glBegin (wire_p ? GL_LINE_LOOP : GL_TRIANGLES);
+
+          for (i = 0, x = 0, lastx = 0, lxx = 0;
+               i <= slices;
+               lastx = x, lxx = xx, lyy = yy, x += xs, i++)
+            {
+              xx = r * cos(M_PI * 2 * x);
+              yy = r * sin(M_PI * 2 * x);
+              if (i == 0) continue;
+
+              glTexCoord2f (x, j == 0 ? 0 : 1);
+              glVertex3f (0, y, 0);
+              glTexCoord2f (lastx, ty); glVertex3f (lxx, y, lyy);
+              glTexCoord2f (x, ty);     glVertex3f (xx,  y, yy);
+            }
+          glEnd();
+          glFrontFace(GL_CW);
+
+          if (!wire_p) glBegin (GL_QUADS);
+        }
+
+      if (j == 0)
+        continue;
+
+      /* Draw one ring of quads.
+       */
+      for (i = 0, x = 0, lastx = 0; i <= slices; lastx = x, x += xs, i++)
+        {
+          GLfloat xx = r * cos(M_PI * 2 * x);
+          GLfloat yy = r * sin(M_PI * 2 * x);
+          GLfloat lx = r * cos(M_PI * 2 * lastx);
+          GLfloat ly = r * sin(M_PI * 2 * lastx);
+          GLfloat y2  = y;
+          GLfloat ly2 = lasty;
+
+#if 0
+          if (mercp)
+            {
+              y2 = ty - 0.5;
+              ly2 = lastty - 0.5;
+            }
+#endif
+
+          if (i == 0) continue;
+          if (wire_p) glBegin(GL_LINE_LOOP);
+          glNormal3f (lx, 0, ly);
+          glTexCoord2f (lastx, lastty); glVertex3f (lx, ly2, ly);
+          glNormal3f (xx, 0, yy);
+          glTexCoord2f (x,     lastty); glVertex3f (xx, ly2, yy);
+          glNormal3f (xx, 0, yy);
+          glTexCoord2f (x,     ty);     glVertex3f (xx, y2,   yy);
+          glNormal3f (lx, 0, ly);
+          glTexCoord2f (lastx, ty);     glVertex3f (lx, y2,   ly);
+          if (wire_p) glEnd();
+        }
+    }
+
+  if (!wire_p) glEnd();
+
+  glPopMatrix();
+}
+
+
+
 static void
 init_stars (ModeInfo *mi)
 {
@@ -452,6 +590,20 @@ init_planet (ModeInfo * mi)
        reshape_planet(mi, MI_WIDTH(mi), MI_HEIGHT(mi));
   }
 
+  if (!mode_arg || !*mode_arg || !strcasecmp(mode_arg, "GLOBE"))
+    gp->mode = GLOBE;
+  else if (!strcasecmp(mode_arg, "EQUIRECTANGULAR"))
+    gp->mode = EQUIRECTANGULAR;
+  else if (!strcasecmp(mode_arg, "mercator"))
+    gp->mode = MERCATOR;
+  else
+    {
+      fprintf (stderr,
+               "%s: mode must be 'globe', 'merecator' or 'equirectangular'," 
+               " not '%s'\n", progname, mode_arg);
+      exit (1);
+    }
+
   {
        char *f = get_string_resource(mi->dpy, "imageForeground", "Foreground");
        char *b = get_string_resource(mi->dpy, "imageBackground", "Background");
@@ -513,7 +665,10 @@ init_planet (ModeInfo * mi)
   glFrontFace(GL_CCW);
   glPushMatrix();
   glRotatef (90, 1, 0, 0);
-  unit_sphere (resolution, resolution, wire);
+  if (gp->mode == GLOBE)
+    unit_sphere (resolution, resolution, wire);
+  else
+    unit_mercator (resolution, resolution, wire, (gp->mode == MERCATOR));
   glPopMatrix();
   glEndList();
 
@@ -533,24 +688,27 @@ init_planet (ModeInfo * mi)
     }
 # endif
 
-  glPushMatrix();
-  glScalef (1.01, 1.01, 1.01);
-  unit_dome (resolution, resolution, wire);
-
-# ifdef BLENDED_TERMINATOR
-  terminator_tube (mi, resolution);
-  if (!wire)
+  if (gp->mode == GLOBE)
     {
-      /* We have to draw the transparent side of the mask too, 
-         though I'm not sure why. */
-      GLfloat c[] = { 0, 0, 0, 0 };
-      glColor4fv (c);
-      if (!do_texture)
-        glMaterialfv (GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, c);
-      glRotatef (180, 1, 0, 0);
+      glPushMatrix();
+      glScalef (1.01, 1.01, 1.01);
       unit_dome (resolution, resolution, wire);
-    }
+
+# ifdef BLENDED_TERMINATOR
+      terminator_tube (mi, resolution);
+      if (!wire)
+        {
+          /* We have to draw the transparent side of the mask too, 
+             though I'm not sure why. */
+          GLfloat c[] = { 0, 0, 0, 0 };
+          glColor4fv (c);
+          if (!do_texture)
+            glMaterialfv (GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, c);
+          glRotatef (180, 1, 0, 0);
+          unit_dome (resolution, resolution, wire);
+        }
 # endif
+    }
 
   glPopMatrix();
   glEndList();
@@ -562,8 +720,10 @@ init_planet (ModeInfo * mi)
   glPushMatrix ();
   glRotatef (90, 1, 0, 0);  /* unit_sphere is off by 90 */
   glRotatef (8,  0, 1, 0);  /* line up the time zones */
-  unit_sphere (12, 24, 1);
-  unit_sphere (12, 24, 1);
+  if (gp->mode == GLOBE)
+    unit_sphere (12, 24, 1);
+  else
+    unit_mercator (20, 24, 1, (gp->mode == MERCATOR));
   glBegin(GL_LINES);
   glVertex3f(0, -2, 0);
   glVertex3f(0,  2, 0);
@@ -599,7 +759,8 @@ draw_planet (ModeInfo * mi)
 
   if (do_rotate && !gp->button_down_p)
     {
-      gp->z -= 0.001 * spin_arg;     /* the sun sets in the west */
+      int wat = gp->mode == GLOBE ? 1 : -1;
+      gp->z -= 0.001 * spin_arg * wat;     /* the sun sets in the west */
       if (gp->z < 0) gp->z += 1;
     }
 
@@ -685,7 +846,7 @@ draw_planet (ModeInfo * mi)
       glPopMatrix();
     }
 
-  else if (!do_texture || gp->tex2)
+  else if (!do_texture || (gp->tex2 && gp->mode == GLOBE))
     {
       /* Originally we just used GL_LIGHT0 to produce the day/night sides of
          the planet, but that always looked crappy, even with a vast number of
@@ -802,6 +963,11 @@ draw_planet (ModeInfo * mi)
 
 #endif /* BLENDED_TERMINATOR */
     }
+  else if (gp->mode != GLOBE)
+    {
+      glDisable (GL_LIGHTING);
+      glDisable (GL_BLEND);
+    }
 
   if (gp->draw_axis)
     {
index 6a62dc9a03225f8fd2348680b8c88d167b54701a..f0602a85d6b8c44744df7a50365f23e117843de8 100644 (file)
@@ -10,6 +10,7 @@ glplanet - rotating 3d texture-mapped planet.
 [\-delay \fInumber\fP]
 [\-image \fIfile\fP]
 [\-image2 \fIfile\fP]
+[\-mode \fIstring\fP]
 [\-resolution \fInumber\fP]
 [\-wireframe]
 [\-fps]
@@ -40,6 +41,15 @@ The day texture map to wrap around the planet's surface.
 The night texture map to wrap around the planet's surface.
 The two will be blended together at the dusk terminator.
 .TP 8
+.B \-mode globe
+All is right with the world.
+.TP 8
+.B \-mode equirectangular
+Wat.
+.TP 8
+.B \-mode mercator
+Good day, Sir. I said GOOD DAY.
+.TP 8
 .B \-resolution
 The resolution of the planetary mesh. Default: 128.
 .TP 8
index 77c741cb26b04a3e81eec9b15f2dce0047e9cc47..0edc1eb3c73266cf60c46c05fe9b0dbf29c09fd0 100644 (file)
@@ -388,8 +388,8 @@ destroy_image (ModeInfo *mi, image *img)
   int i;
 
   if (!img) abort();
-  if (!img->loaded_p) abort();
-  if (!img->used_p) abort();
+  /* if (!img->loaded_p) abort(); */
+  /* if (!img->used_p) abort(); */
   if (img->texid <= 0) abort();
   if (img->refcount != 0) abort();
 
@@ -1200,6 +1200,10 @@ draw_slideshow (ModeInfo *mi)
     new_sprite (mi);
 
   if (!ss->redisplay_needed_p)
+    /* Nothing to do! Don't bother drawing a texture or even swapping the
+       frame buffers. Note that this means that the FPS display will be
+       wrong: "Load" will be frozen on whatever it last was, when in
+       reality it will be close to 0. */
     return;
 
   if (debug_p && ss->now - ss->prev_frame_time > 1)
@@ -1222,21 +1226,27 @@ ENTRYPOINT void
 free_slideshow (ModeInfo *mi)
 {
   slideshow_state *ss = &sss[MI_SCREEN(mi)];
-  int i;
+  /* int i; */
   if (!ss->glx_context) return;
   glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *ss->glx_context);
 
   if (ss->font_data) free_texture_font (ss->font_data);
-  for (i = 0; i < ss->nimages; i++) {
-    if (ss->images[i]) {
-      if (ss->images[i]->title) free (ss->images[i]->title);
-      if (ss->images[i]->texid) glDeleteTextures (1, &ss->images[i]->texid);
-      free (ss->images[i]);
-    }
+  ss->font_data = 0;
+
+# if 0
+  /* The lifetime of these objects is incomprehensible.
+     Doing this causes free pointers to be run from the XtInput.
+   */
+  for (i = ss->nimages-1; i >= 0; i--) {
+    if (ss->images[i] && ss->images[i]->refcount == 0)
+      destroy_image (mi, ss->images[i]);
   }
-  for (i = 0; i < countof(ss->sprites); i++) {
-    if (ss->sprites[i]) free (ss->sprites[i]);
+
+  for (i = countof(ss->sprites)-1; i >= 0; i--) {
+    if (ss->sprites[i])
+      destroy_sprite (mi, ss->sprites[i]);
   }
+# endif
 }
 
 XSCREENSAVER_MODULE_2 ("GLSlideshow", glslideshow, slideshow)
diff --git a/hacks/glx/gravitywell.c b/hacks/glx/gravitywell.c
new file mode 100644 (file)
index 0000000..7078764
--- /dev/null
@@ -0,0 +1,767 @@
+/* gravitywell, Copyright (c) 2019 Jamie Zawinski <jwz@jwz.org>
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation.  No representations are made about the suitability of this
+ * software for any purpose.  It is provided "as is" without express or 
+ * implied warranty.
+ */
+
+#define DEFAULTS       "*delay:        30000  \n" \
+                       "*count:        15     \n" \
+                       "*gridColor:    #00FF00\n" \
+                       "*gridColor2:   #FF0000\n" \
+                       "*showFPS:      False  \n" \
+                       "*wireframe:    False  \n"
+
+# define release_gw 0
+#undef countof
+#define countof(x) (sizeof((x))/sizeof((*x)))
+
+#define DEF_SPEED      "1.0"
+#define DEF_RESOLUTION "1.0"
+#define DEF_GRID_SIZE  "1.0"
+
+#include "xlockmore.h"
+#include "gltrackball.h"
+#include "colors.h"
+#include "hsv.h"
+
+#include <ctype.h>
+
+#define ASSERT(x)
+
+#ifdef USE_GL /* whole file */
+
+typedef struct {
+  GLfloat mass;
+  GLfloat ro2, rm2, ri2; /* outer/middle/inner */
+  GLfloat ro, radius;
+  GLfloat x, y, dx, dy;
+  GLfloat surface_gravity, depth;
+} star;
+
+typedef struct {
+  GLXContext *glx_context;
+  trackball_state *user_trackball;
+  Bool button_down_p;
+  int nstars;
+  star *stars;
+  int grid_w, grid_h;
+  GLfloat *grid;
+  char *segs;
+  GLfloat *vtx, *col;
+  GLfloat color[4];
+  int ncolors;
+  XColor *colors;
+} gw_configuration;
+
+static gw_configuration *bps = NULL;
+
+static GLfloat speed, resolution, grid_size;
+
+#define RESOLUTION_BASE 512
+#define GRID_SIZE_BASE  7
+#define SPEED_BASE      2.5
+#define MASS_EPSILON    0.03
+#define SLOPE_EPSILON   0.06
+#define GRID_SEG        16u /* Power-of-two here is faster. */
+#define MAX_MASS_COLOR  120
+
+static XrmOptionDescRec opts[] = {
+  { "-speed",      ".speed",      XrmoptionSepArg, 0 },
+  { "-resolution", ".resolution", XrmoptionSepArg, 0 },
+  { "-grid-size",  ".gridSize",   XrmoptionSepArg, 0 },
+};
+
+static argtype vars[] = {
+  {&speed,      "speed",      "Speed",      DEF_SPEED,      t_Float},
+  {&resolution, "resolution", "Resolution", DEF_RESOLUTION, t_Float},
+  {&grid_size,  "gridSize",   "GridSize",   DEF_GRID_SIZE,  t_Float},
+};
+
+ENTRYPOINT ModeSpecOpt gw_opts = {
+  countof(opts), opts, countof(vars), vars, NULL};
+
+
+#define MAX(a,b) ((a)>(b)?(a):(b))
+#define MIN(a,b) ((a)<(b)?(a):(b))
+#define WCLIP(x,hi) MIN(MAX((int)(x),0),(hi))
+
+/* Window management, etc
+ */
+ENTRYPOINT void
+reshape_gw (ModeInfo *mi, int width, int height)
+{
+  GLfloat h = (GLfloat) height / (GLfloat) width;
+  int y = 0;
+
+  if (width > height * 5) {   /* tiny window: show middle */
+    height = width * 9/16;
+    y = -height/2;
+    h = height / (GLfloat) width;
+  }
+
+  glViewport (0, y, width, height);
+
+  glMatrixMode(GL_PROJECTION);
+  glLoadIdentity();
+  gluPerspective (40, 1/h, 10, 1000);
+
+  glMatrixMode(GL_MODELVIEW);
+  glLoadIdentity();
+  gluLookAt( 0, 0, 30,
+             0, 0, 0,
+             0, 1, 0);
+
+  glClear(GL_COLOR_BUFFER_BIT);
+}
+
+
+ENTRYPOINT Bool
+gw_handle_event (ModeInfo *mi, XEvent *event)
+{
+  gw_configuration *bp = &bps[MI_SCREEN(mi)];
+
+  if (gltrackball_event_handler (event, bp->user_trackball,
+                                 MI_WIDTH (mi), MI_HEIGHT (mi),
+                                 &bp->button_down_p))
+    return True;
+  return False;
+}
+
+
+static void
+parse_color (ModeInfo *mi, char *key, GLfloat color[4])
+{
+  XColor xcolor;
+  char *string = get_string_resource (mi->dpy, key, "Color");
+  if (!XParseColor (mi->dpy, mi->xgwa.colormap, string, &xcolor))
+    {
+      fprintf (stderr, "%s: unparsable color in %s: %s\n", progname,
+               key, string);
+      exit (1);
+    }
+  free (string);
+
+  color[0] = xcolor.red   / 65536.0;
+  color[1] = xcolor.green / 65536.0;
+  color[2] = xcolor.blue  / 65536.0;
+  color[3] = 1;
+}
+
+
+static void
+new_star (const gw_configuration *bp, star *s)
+{
+  int w = bp->grid_w * GRID_SEG;
+
+  s->radius = 2 * (2 + frand(3) + frand(3) + frand(3));
+  s->mass = s->radius * 150 * (2 + frand(3) + frand(3) + frand(3));
+
+  s->ro2 = s->mass / MASS_EPSILON;
+  s->ro = sqrt (s->ro2);
+  s->rm2 = pow (s->mass * (2.0f / SLOPE_EPSILON), 2.0f / 3.0f);
+  s->ri2 = s->radius * s->radius;
+  if (s->rm2 < s->ri2)
+    s->rm2 = s->ri2;
+  if (s->ro2 < s->rm2)
+    s->ro2 = s->rm2;
+
+  s->x = w * (s == bp->stars ? 0.5 : (0.35 + frand(0.3)));
+  s->dx = ((frand(1.0) - 0.5) * 0.1) / resolution;
+  s->dy = (0.1 + frand(0.6)) / resolution;
+
+  /* What the experienced gravitation would be at the surface of the
+     star, were the mass actually held in a singularity at its center.
+   */
+  s->surface_gravity = s->mass / s->ri2;
+  s->depth = s->surface_gravity;
+}
+
+
+static void
+move_stars (ModeInfo *mi)
+{
+  gw_configuration *bp = &bps[MI_SCREEN(mi)];
+  int w = bp->grid_w * GRID_SEG;
+  int h = bp->grid_h * GRID_SEG;
+  int i;
+
+  for (i = 0; i < bp->nstars; i++)
+    {
+      star *s = &bp->stars[i];
+      /* Move stars off screen until most of their influence fades */
+      GLfloat off = speed * SPEED_BASE * resolution;
+      s->x += s->dx * off;
+      s->y += s->dy * off;
+
+      if (s->x < -s->ro ||
+          s->y < -s->ro ||
+          s->x >= w + s->ro ||
+          s->y >= h + s->ro)
+        {
+          new_star (bp, s);
+          s->y = -s->ro;
+        }
+    }
+}
+
+
+static void
+calc_o (gw_configuration *bp, GLfloat mass, GLfloat cx, GLfloat y02,
+        unsigned from, unsigned to)
+{
+  GLfloat x0 = cx - from * GRID_SEG;
+  GLfloat g0 = mass / (x0*x0 + y02);
+  unsigned x;
+
+  ASSERT (to <= bp->grid_w || to <= bp->grid_h);
+
+  for (x = from; x < to; x++)
+    {
+      GLfloat *g = &bp->grid[x * GRID_SEG];
+      GLfloat g1;
+
+      x0 = cx - (x + 1) * GRID_SEG;
+      g1 = mass / (x0*x0 + y02);
+
+      g[0] += g0;
+      if (bp->segs[x])
+        {
+          GLfloat d = (g1 - g0) / GRID_SEG;
+          unsigned i;
+          for(i = 1; i != GRID_SEG; i++)
+            {
+              g0 += d;
+              g[i] += g0;
+            }
+        }
+      g0 = g1;
+    }
+}
+
+
+static void
+make_hires (gw_configuration *bp, unsigned from, unsigned to, unsigned w)
+{
+  unsigned x;
+
+  /* One bigger than from/to so that there's a good angle between the middle
+     and inner zones.
+
+     Don't make the last GRID_SEG high-res. This keeps the length consistent.
+   */
+  if (from)
+    from--;
+  from = MIN(from / GRID_SEG, w - 1);
+  to = MIN(to / GRID_SEG + 1, w - 1);
+
+  ASSERT (to <= bp->grid_w - 1 || to <= bp->grid_h - 1);
+
+  for (x = from; x < to; x++)
+    {
+      if (! bp->segs[x])
+        {
+          GLfloat *g = &bp->grid[x * GRID_SEG];
+          GLfloat g0 = g[0], g1 = g[GRID_SEG];
+          GLfloat d = (g1 - g0) / GRID_SEG;
+          unsigned i;
+          for (i = 1; i != GRID_SEG; i++)
+            {
+              g0 += d;
+              g[i] = g0;
+            }
+          bp->segs[x] = True;
+        }
+    }
+}
+
+
+static void
+calc_m (gw_configuration *bp, GLfloat mass, GLfloat cx, GLfloat y02,
+        unsigned from, unsigned to)
+{
+  GLfloat *gridp = bp->grid;
+  unsigned x;
+
+  ASSERT (to <= bp->grid_w * GRID_SEG + 1 || to <= bp->grid_h * GRID_SEG + 1);
+
+  for (x = from; x < to; x++)
+    {
+      /* Inverse square of distance from mass as a point source */
+      GLfloat x0 = cx - x;
+      gridp[x] += mass / (x0*x0 + y02);
+    }
+}
+
+
+#define EASE(r) (sin ((r) * M_PI_2))
+
+static void
+draw_row (ModeInfo *mi, int w, int y, Bool swap)
+{
+  gw_configuration *bp = &bps[MI_SCREEN(mi)];
+  int i;
+  int x;
+  int polys;
+  int w2 = w * GRID_SEG;
+
+  GLfloat *vtx_x;
+  GLfloat *vtx_y;
+  GLfloat *gridp = bp->grid;
+  memset (gridp, 0, w2 * sizeof(*gridp));
+  memset (bp->segs, 0, w);
+
+  for (i = 0; i < bp->nstars; i++)
+    {
+      star *s = &bp->stars[i];
+      GLfloat cx, cy;
+      unsigned olo, ohi, mlo, mhi, ilo, ihi;
+      GLfloat mass, max;
+      /* Move stars off screen until most of their influence fades */
+      GLfloat ro, rm, ri;
+
+      GLfloat y0;
+      GLfloat y02;
+
+      if (swap)
+        {
+          cy = s->x;
+          cx = s->y;
+        }
+      else
+        {
+          cx = s->x;
+          cy = s->y;
+        }
+      mass = s->mass;
+      max = s->surface_gravity;
+
+      y0 = cy - y;
+      y02 = y0 * y0;
+
+      if (y02 > s->ro2) continue;
+
+      ro = sqrtf (s->ro2 - y02);
+      olo = WCLIP((cx - ro) / GRID_SEG + 1, w);  /* GLfloat -> int */
+      ohi = WCLIP((cx + ro) / GRID_SEG + 1, w);
+
+      rm = s->rm2 > y02 ? sqrtf (s->rm2 - y02) : 0;
+      mlo = WCLIP((cx - rm) + 1, w2);
+      mhi = WCLIP((cx + rm) + 1, w2);
+
+      ASSERT (mlo <= mhi);
+
+      if (mlo != mhi)
+        {
+          ri = s->ri2 > y02 ? sqrtf (s->ri2 - y02) : 0;
+          ilo = WCLIP(cx - ri + 1, w2);
+          ihi = WCLIP(cx + ri + 1, w2);
+
+          mlo -= mlo % GRID_SEG;
+          mhi += GRID_SEG - 1;
+          mhi -= mhi % GRID_SEG;
+
+          /* These go first. */
+          make_hires (bp, mlo, ilo, w);
+          make_hires (bp, ihi, mhi, w);
+
+          calc_m (bp, mass, cx, y02, mlo, ilo);
+          calc_m (bp, mass, cx, y02, ihi, mhi);
+
+          /* This does a bit more work than it needs to. */
+          for (x = ilo; x < ihi; x++)
+            gridp[x] += max;
+        }
+
+      calc_o (bp, mass, cx, y02, olo, mlo / GRID_SEG);
+      calc_o (bp, mass, cx, y02, mhi / GRID_SEG, ohi);
+    }
+
+  if (swap)
+    {
+      vtx_y = bp->vtx;
+      vtx_x = bp->vtx + 1;
+    }
+  else
+    {
+      vtx_x = bp->vtx;
+      vtx_y = bp->vtx + 1;
+    }
+
+# define COLOR_CODE 0
+
+# if COLOR_CODE
+  {
+    unsigned grid_max = bp->grid_w > bp->grid_h ? bp->grid_w : bp->grid_h;
+    GLfloat *color = malloc(sizeof(GLfloat) * 4 * (grid_max * GRID_SEG + 1));
+    glEnableClientState (GL_COLOR_ARRAY);
+    glColorPointer (4, GL_FLOAT, 0, color);
+# endif
+
+  ASSERT (! bp->segs[w - 1]);
+
+  polys = 0;
+  for (x = 0; x != w; x++)
+    {
+      if (! bp->segs[x])
+        {
+          int ci;
+          size_t vp = polys * 3;
+          size_t cp = polys * 4;
+# if COLOR_CODE
+          GLfloat slope = 0;
+          if (x != 0)
+            slope += fabs(gridp[x * GRID_SEG] - gridp[(x - 1) * GRID_SEG]);
+          if (x != w - 1)
+            slope += fabs(gridp[(x + 1) * GRID_SEG] - gridp[x * GRID_SEG]);
+          slope = 1 - (slope / (SLOPE_EPSILON * 2));
+
+          color[cp]     = slope;
+          color[cp + 1] = slope;
+          color[cp + 2] = 1;
+          color[cp + 3] = 1;
+# endif
+          vtx_x[vp] = x * GRID_SEG;
+          bp->vtx[vp + 2] = gridp[x * GRID_SEG];
+          polys += 1;
+
+          ci = EASE (bp->vtx[vp + 2] / MAX_MASS_COLOR) * bp->ncolors;
+          bp->col[cp]   = bp->colors[ci].red   / 65536.0;
+          bp->col[cp+1] = bp->colors[ci].green / 65536.0;
+          bp->col[cp+2] = bp->colors[ci].blue  / 65536.0;
+          bp->col[cp+3] = 1;
+        }
+      else
+        {
+          for(i = 0; i != GRID_SEG; i++)
+            {
+              int ci;
+              size_t vp = (polys + i) * 3;
+              size_t cp = (polys + i) * 4;
+# if COLOR_CODE
+              color[cp] = 1;
+              color[cp + 1] = 0.75;
+              color[cp + 2] = 0;
+              color[cp + 3] = 1;
+# endif
+              vtx_x[vp] = x * GRID_SEG + i;
+              bp->vtx[vp + 2] = gridp[x * GRID_SEG + i];
+
+              ci = EASE (bp->vtx[vp + 2] / MAX_MASS_COLOR) * bp->ncolors;
+              bp->col[cp]   = bp->colors[ci].red   / 65536.0;
+              bp->col[cp+1] = bp->colors[ci].green / 65536.0;
+              bp->col[cp+2] = bp->colors[ci].blue  / 65536.0;
+              bp->col[cp+3] = 1;
+            }
+          polys += GRID_SEG;
+        }
+    }
+
+  for (i = 0; i < polys; i++)
+    vtx_y[i * 3] = y; /* + random() * (MASS_EPSILON / (MAXRAND)); */
+
+  mi->polygon_count += polys;
+  glDrawArrays (GL_LINE_STRIP, 0, polys);
+
+# if COLOR_CODE
+    glDisableClientState (GL_COLOR_ARRAY);
+    free (color);
+  }
+# endif
+}
+
+
+ENTRYPOINT void 
+init_gw (ModeInfo *mi)
+{
+  gw_configuration *bp;
+  unsigned grid_max, vtx_max;
+  int i;
+  MI_INIT (mi, bps);
+
+  bp = &bps[MI_SCREEN(mi)];
+
+  bp->glx_context = init_GL(mi);
+
+  reshape_gw (mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+
+  glShadeModel(GL_SMOOTH);
+
+  glEnable(GL_DEPTH_TEST);
+  glEnable(GL_NORMALIZE);
+  glEnable(GL_CULL_FACE);
+
+  {
+    int h1, h2;
+    double s1, v1, s2, v2;
+    GLfloat color2[4];
+    parse_color (mi, "gridColor", bp->color);
+    parse_color (mi, "gridColor2", color2);
+    rgb_to_hsv (bp->color[0] * 65536,
+                bp->color[1] * 65536,
+                bp->color[2] * 65536,
+                &h1, &s1, &v1);
+    rgb_to_hsv (color2[0] * 65536,
+                color2[1] * 65536,
+                color2[2] * 65536,
+                &h2, &s2, &v2);
+    bp->ncolors = 128;
+    bp->colors = (XColor *) calloc(bp->ncolors, sizeof(XColor));
+    make_color_ramp (0, 0, 0,
+                     h1, s1, v1, h2, s2, v2,
+                     bp->colors, &bp->ncolors,
+                     False, 0, False);
+  }
+
+  bp->user_trackball = gltrackball_init (False);
+
+  bp->grid_w = (RESOLUTION_BASE * resolution) / GRID_SEG;
+  if (bp->grid_w < 2) bp->grid_w = 2;
+  bp->grid_h = bp->grid_w;
+
+  grid_max = bp->grid_w > bp->grid_h ? bp->grid_w : bp->grid_h;
+  vtx_max = grid_max * GRID_SEG;
+  bp->grid = (GLfloat *) calloc (vtx_max, sizeof(*bp->grid));
+  bp->vtx = (GLfloat *) calloc (vtx_max * 3, sizeof(*bp->vtx));
+  bp->col = (GLfloat *) calloc (vtx_max * 4, sizeof(*bp->col));
+  bp->segs = (char *) calloc (grid_max, sizeof(*bp->segs));
+  if (! bp->grid || ! bp->vtx || ! bp->col || ! bp->segs) abort();
+
+  bp->nstars = MI_COUNT(mi);
+  bp->stars = (star *) calloc (bp->nstars, sizeof (star));
+
+  for (i = 0; i < bp->nstars; i++)
+    {
+      star *s = &bp->stars[i];
+      new_star (bp, s);
+      s->y = frand(s->ro * 2 + bp->grid_h * GRID_SEG) - s->ro;
+    }
+
+  /* Let's tilt the floor a little. */
+  gltrackball_reset (bp->user_trackball,
+                     -0.4 + frand(0.8),
+                     -0.3 + frand(0.2));
+}
+
+
+ENTRYPOINT void
+draw_gw (ModeInfo *mi)
+{
+  gw_configuration *bp = &bps[MI_SCREEN(mi)];
+  int wire = MI_IS_WIREFRAME(mi);
+  Display *dpy = MI_DISPLAY(mi);
+  Window window = MI_WINDOW(mi);
+  int gridmod = grid_size * GRID_SIZE_BASE;
+  int x, y, i;
+  int sample_x, sample_y;
+  GLfloat sample_z = -1;
+
+  if (!bp->glx_context)
+    return;
+
+  glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *bp->glx_context);
+
+  glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+  glPushMatrix ();
+
+# ifdef HAVE_MOBILE
+  glRotatef (current_device_rotation(), 0, 0, 1);  /* right side up */
+# endif
+
+  gltrackball_rotate (bp->user_trackball);
+
+#if 0
+  glScalef(0.05/resolution, 0.05/resolution, 0.05/resolution);
+#endif
+
+  glRotatef (90, 1, 0, 0);
+  glTranslatef (-bp->grid_w * (GRID_SEG / 2.0f),
+                -bp->grid_h * (GRID_SEG * 0.75f),
+                3);
+
+#if 0
+  glColor3f(1,0,0);
+  glPushMatrix();
+  glTranslatef(0,0,0);
+  glScalef (bp->grid_w * GRID_SEG,
+            bp->grid_w * GRID_SEG,
+            bp->grid_w * GRID_SEG);
+  glDisable (GL_FOG);
+  glBegin(GL_LINE_LOOP);
+  glVertex3f(0, 0, 0);
+  glVertex3f(1, 0, 0);
+  glVertex3f(1, 1, 0);
+  glVertex3f(.4, 1, 0);
+  glVertex3f(.5, .5, 0);
+  glVertex3f(.6, 1, 0);
+  glVertex3f(0, 1, 0);
+  glEnd();
+  glPopMatrix();
+  glColor3f(0,1,0);
+  if (!wire) glEnable (GL_FOG);
+#endif
+
+  if (!wire)
+    {
+      GLfloat fog_color[4] = { 0, 0, 0, 1 };
+
+      glLineWidth (2);
+      glEnable (GL_LINE_SMOOTH);
+      glHint (GL_LINE_SMOOTH_HINT, GL_NICEST);
+      glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); 
+      glEnable (GL_BLEND);
+
+      glFogi (GL_FOG_MODE, GL_EXP2);
+      glFogfv (GL_FOG_COLOR, fog_color);
+      glFogf (GL_FOG_DENSITY, 0.005);
+      glEnable (GL_FOG);
+    }
+
+  glEnableClientState (GL_COLOR_ARRAY);
+  glEnableClientState (GL_VERTEX_ARRAY);
+  glColorPointer  (4, GL_FLOAT, 0, bp->col);
+  glVertexPointer (3, GL_FLOAT, 0, bp->vtx);
+
+  /* Somewhere near the midpoint of the view */
+  sample_x = ((int) (bp->grid_w * GRID_SEG * 0.5)  / gridmod) * gridmod;
+  sample_y = ((int) (bp->grid_h * GRID_SEG * 0.75) / GRID_SEG) * GRID_SEG;
+
+  /* Find the cumulative gravitational effect at the midpoint of each star,
+     for the depth of the foot-circle.  This duplicates some of the draw_row()
+     logic. */
+  for (i = 0; i < bp->nstars; i++)
+    {
+      star *s0 = &bp->stars[i];
+      GLfloat x0 = s0->x;
+      GLfloat y0 = s0->y;
+      int j;
+      s0->depth = s0->surface_gravity;
+      for (j = 0; j < bp->nstars; j++)
+        {
+          star *s1;
+          GLfloat x1, y1, d2;
+          if (i == j) continue;
+          s1 = &bp->stars[j];
+          x1 = s1->x;
+          y1 = s1->y;
+          d2 = (x1-x0)*(x1-x0) + (y1-y0)*(y1-y0);
+          s0->depth += s1->mass / d2;
+        }
+    }
+
+  mi->polygon_count = 0;
+  for (y = 0; y < (bp->grid_h - 1) * GRID_SEG; y += gridmod)
+    draw_row (mi, bp->grid_w, y, False);
+  for (x = 0; x < (bp->grid_w - 1) * GRID_SEG; x += gridmod)
+    {
+      draw_row (mi, bp->grid_h, x, True);
+      if (x == sample_x)
+        sample_z = bp->grid[sample_y];
+    }
+
+  if (mi->fps_p)
+    {
+      /* Mass of Sol is 2x10^30kg, or 332 kilo-Earths.
+         But I'm not sure what the funniest number to put here is. */
+      /* mi->recursion_depth = (int) sample_z/4; */
+      mi->recursion_depth = (int) (sample_z * 30000);
+      glColor4fv (bp->color);
+      glMaterialfv (GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, bp->color);
+      glBegin(GL_LINES);
+      glVertex3f (sample_x-0.15, sample_y-0.15, sample_z);
+      glVertex3f (sample_x+0.15, sample_y+0.15, sample_z);
+      glVertex3f (sample_x-0.15, sample_y+0.15, sample_z);
+      glVertex3f (sample_x+0.15, sample_y-0.15, sample_z);
+      glEnd();
+    }
+
+  /* Draw a circle around the "footprint" at the bottom of the gravity well.
+   */
+  for (i = 0; i < bp->nstars; i++)
+    {
+      int steps = 16;
+      star *s = &bp->stars[i];
+      GLfloat th, color[4];
+      int ci;
+      ci = EASE (s->depth / MAX_MASS_COLOR) * bp->ncolors;
+      color[0] = bp->colors[ci].red   / 65536.0;
+      color[1] = bp->colors[ci].green / 65536.0;
+      color[2] = bp->colors[ci].blue  / 65536.0;
+      color[3] = 1;
+      glColor4fv (color);
+      glMaterialfv (GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, color);
+      glPushMatrix();
+      glTranslatef (s->x, s->y, 0);
+      glBegin (GL_LINE_LOOP);
+      for (th = 0; th < M_PI * 2; th += M_PI/steps)
+        glVertex3f (s->radius * cos(th), s->radius * sin(th), s->depth);
+      glEnd();
+      glPopMatrix();
+      mi->polygon_count += steps;
+    }
+
+#if 0
+  {
+    for (i = 0; i < bp->nstars; i++)
+      {
+        star *s = &bp->stars[i];
+        GLfloat maxr = sqrt (s->mass / MASS_EPSILON);
+        GLfloat th;
+        glPushMatrix();
+        glTranslatef (s->x, s->y, 0);
+        glColor3f(0, 0, 1);
+        glBegin (GL_LINE_LOOP);
+        for (th = 0; th < M_PI * 2; th += M_PI/32)
+          glVertex3f (s->radius * cos(th), s->radius * sin(th), 0);
+        glEnd();
+        glColor3f(0, 0, 0.5);
+        glBegin (GL_LINE_LOOP);
+        for (th = 0; th < M_PI * 2; th += M_PI/32)
+          glVertex3f (maxr * cos(th), maxr * sin(th), 0);
+        glEnd();
+        glBegin (GL_LINES);
+        glVertex3f ( 3000 * s->dx,  3000 * s->dy, 0);
+        glVertex3f (-3000 * s->dx, -3000 * s->dy, 0);
+        glEnd();
+        glPopMatrix();
+      }
+  }
+#endif
+
+  glPopMatrix ();
+
+  if (! bp->button_down_p)
+    move_stars (mi);
+
+  if (mi->fps_p) do_fps (mi);
+  glFinish();
+
+  glXSwapBuffers(dpy, window);
+}
+
+
+ENTRYPOINT void
+free_gw (ModeInfo *mi)
+{
+  gw_configuration *bp = &bps[MI_SCREEN(mi)];
+
+  if (!bp->glx_context) return;
+  glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *bp->glx_context);
+
+  if (bp->user_trackball) gltrackball_free (bp->user_trackball);
+  if (bp->stars) free (bp->stars);
+  if (bp->grid) free (bp->grid);
+  if (bp->vtx) free (bp->vtx);
+  if (bp->col) free (bp->col);
+  if (bp->segs) free (bp->segs);
+  if (bp->colors) free (bp->colors);
+}
+
+XSCREENSAVER_MODULE_2 ("GravityWell", gravitywell, gw)
+
+#endif /* USE_GL */
diff --git a/hacks/glx/gravitywell.man b/hacks/glx/gravitywell.man
new file mode 100644 (file)
index 0000000..a33d578
--- /dev/null
@@ -0,0 +1,64 @@
+.TH XScreenSaver 1 "" "X Version 11"
+.SH NAME
+gravitywell - spaaaaace.
+.SH SYNOPSIS
+.B gravitywell
+[\-display \fIhost:display.screen\fP]
+[\-visual \fIvisual\fP]
+[\-window]
+[\-root]
+[\-delay \fInumber\fP]
+[\-speed \fInumber\fP]
+[\-resolution \fInumber\fP]
+[\-grid-size \fInumber\fP]
+[\-count \fInumber\fP]
+.SH DESCRIPTION
+Massive objects distort space in a two dimensional universe.
+.SH OPTIONS
+.TP 8
+.B \-visual \fIvisual\fP
+Specify which visual to use.  Legal values are the name of a visual class,
+or the id number (decimal or hex) of a specific visual.
+.TP 8
+.B \-window
+Draw on a newly-created window.  This is the default.
+.TP 8
+.B \-root
+Draw on the root window.
+.TP 8
+.B \-delay \fInumber\fP
+Per-frame delay, in microseconds.  Default: 30000 (0.03 seconds).
+.TP 8
+.B \-speed \fInumber\fP
+Animation speed. 2.0 means twice as fast, 0.5 means half as fast.
+.TP 8
+.B \-resolution \fInumber\fP
+Density of the underlying universe. Default: 1.0.
+.TP 8
+.B \-grid-size \fInumber\fP
+Grid Size. Smaller values are more dense. Default: 1.0.
+.TP 8
+.B \-count \fInumber\fP
+Number of stars.  Default: 15.
+.SH ENVIRONMENT
+.PP
+.TP 8
+.B DISPLAY
+to get the default host and display number.
+.TP 8
+.B XENVIRONMENT
+to get the name of a resource file that overrides the global resources
+stored in the RESOURCE_MANAGER property.
+.SH SEE ALSO
+.BR X (1),
+.BR xscreensaver (1)
+.SH COPYRIGHT
+Copyright \(co 2019 by Jamie Zawinski.  Permission to use, copy, modify, 
+distribute, and sell this software and its documentation for any purpose is 
+hereby granted without fee, provided that the above copyright notice appear 
+in all copies and that both that copyright notice and this permission notice
+appear in supporting documentation.  No representations are made about the 
+suitability of this software for any purpose.  It is provided "as is" without
+express or implied warranty.
+.SH AUTHOR
+Jamie Zawinski.
index df64923c8d74ba9d8e9efdb1e7fd4f54834af272..8aa8d4dc593bb5061eb07ebd04bef4e580ca5684 100644 (file)
@@ -736,6 +736,10 @@ static void display_hypertorus(ModeInfo *mi)
   glMatrixMode(GL_MODELVIEW);
   glLoadIdentity();
 
+  /* Let's keep a constant aspect ratio rather than stretching with the
+     shape of the window */
+  glScalef (hp->WindH / (GLfloat) hp->WindW, 1, 1);
+
   mi->polygon_count = hypertorus(mi,0.0,2.0*M_PI,0.0,2.0*M_PI,64,64);
 }
 
index 38716e207373bc7bbbf39a35e29748def2131d7c..9c9e911a12a0b6553d859b1ed4a0bc59216f367f 100644 (file)
@@ -1,4 +1,4 @@
-/* xscreensaver, Copyright (c) 1997-2017 Jamie Zawinski <jwz@jwz.org>
+/* xscreensaver, Copyright (c) 1997-2019 Jamie Zawinski <jwz@jwz.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -555,7 +555,7 @@ draw_piece (jigsaw_configuration *jc, puzzle_piece *p,
 # else  /* !HAVE_TESS */
 
       GLfloat *tri = (GLfloat *)
-        (GLfloat *) malloc (s->n_points * 4 * 3 * 3 * sizeof(*pts));
+        malloc (s->n_points * 4 * 3 * 3 * sizeof(*tri));
       GLfloat *otri = tri;
       int count;
       GLdouble zz;
index d84a58f5e05639a21d02a25b1fa3d85005c98bf9..6af37c47243037a77fb6456e6378bedd4680265f 100644 (file)
@@ -209,7 +209,7 @@ typedef enum {
   LAMENT_LEVIATHAN_EXPAND,
   LAMENT_LEVIATHAN_UNTWIST,
   LAMENT_LEVIATHAN_UNFADE,
-  LAMENT_LEVIATHAN_UNSPIN,
+  LAMENT_LEVIATHAN_UNSPIN
 
 } lament_type;
 
index 4d15ff8c025488d86c52e797d9ef51196fb75e83..3dc8fc1b3b0b9c75e35aeebc21735095c8cb937f 100644 (file)
@@ -1,4 +1,4 @@
-/* peepers, Copyright (c) 2018 Jamie Zawinski <jwz@jwz.org>
+/* peepers, Copyright (c) 2018-2019 Jamie Zawinski <jwz@jwz.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -851,7 +851,7 @@ draw_ball (ModeInfo *mi, component which)
           polys++;
         }
       glEnd();
-      return polys;
+      goto DONE;
     }
 
   for (i = xstart; i <= xstop; i++)
@@ -1009,6 +1009,7 @@ draw_ball (ModeInfo *mi, component which)
   if (!wire)
     glEnd();
 
+ DONE:
   free (stacks);
   free (normals);
 
index 4c46ca0887f4c4fc3e73fb9482c16d9a2093e5e6..ff517dbe05a79427a6956d5f9cf3e8e62bb0e7f5 100644 (file)
@@ -1351,10 +1351,11 @@ qh_quickhull3d(qh_vertex_t const* vertices, unsigned int nvertices)
     }
 
     for (i = 0; i < context.nfaces; ++i) {
+      qh_half_edge_t e0, e1, e2;
       if (!context.valid[i]) { continue; }
-      qh_half_edge_t e0 = context.edges[context.faces[i].edges[0]];
-      qh_half_edge_t e1 = context.edges[context.faces[i].edges[1]];
-      qh_half_edge_t e2 = context.edges[context.faces[i].edges[2]];
+      e0 = context.edges[context.faces[i].edges[0]];
+      e1 = context.edges[context.faces[i].edges[1]];
+      e2 = context.edges[context.faces[i].edges[2]];
 
       m.vertices[m.nvertices++] = context.vertices[e0.to_vertex];
       m.vertices[m.nvertices++] = context.vertices[e1.to_vertex];
index 862f35893e52e2fcd8f399d42796857292499f39..961dcf50e6b56bb8db73e633c3dd157c8b86070b 100644 (file)
@@ -1,4 +1,4 @@
-/* sonar, Copyright (c) 1998-2018 Jamie Zawinski and Stephen Martin
+/* sonar, Copyright (c) 1998-2019 Jamie Zawinski and Stephen Martin
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -68,6 +68,9 @@
 # ifdef HAVE_GETIFADDRS
 #  include <ifaddrs.h>
 # endif
+# ifdef HAVE_LIBCAP
+#  include <sys/capability.h>
+# endif
 #endif /* HAVE_ICMP || HAVE_ICMPHDR */
 
 #if defined(HAVE_ICMP)
@@ -1483,7 +1486,7 @@ parse_mode (sonar_sensor_data *ssd, char **error_ret, char **desc_ret,
 
       if (!ping_works_p)
         {
-          *error_ret = strdup ("Sonar must be setuid to ping!\n"
+          *error_ret = strdup ("Sonar must be setuid or libcap to ping!\n"
                                "Running simulation instead.");
           return 0;
         }
@@ -1569,6 +1572,46 @@ parse_mode (sonar_sensor_data *ssd, char **error_ret, char **desc_ret,
 }
 
 
+static Bool
+set_net_raw_capalibity(int enable_p)
+{
+  Bool ret_status = False;
+# ifdef HAVE_LIBCAP
+  cap_t cap_status;
+  cap_value_t cap_value[] = { CAP_NET_RAW, };
+  cap_flag_value_t cap_flag_value;
+  cap_flag_value_t new_value = enable_p ? CAP_SET : CAP_CLEAR;
+
+  cap_status = cap_get_proc();
+  do {
+    cap_flag_value = CAP_CLEAR;
+    if (cap_get_flag (cap_status, CAP_NET_RAW, CAP_EFFECTIVE, &cap_flag_value))
+      break;
+    if (cap_flag_value == new_value)
+      {
+        ret_status = True;
+        break;
+      }
+
+    cap_set_flag (cap_status, CAP_EFFECTIVE, 1, cap_value, new_value);
+    if (!cap_set_proc(cap_status)) 
+      ret_status = True;
+  } while (0);
+
+  if (cap_status) cap_free (cap_status);
+# endif /* HAVE_LIBCAP */
+
+  return ret_status;
+}
+
+static Bool
+set_ping_capability (void)
+{
+  if (geteuid() == 0) return True;
+  return set_net_raw_capalibity (True);
+}
+
+
 sonar_sensor_data *
 sonar_init_ping (Display *dpy, char **error_ret, char **desc_ret,
                  const char *subnet, int timeout,
@@ -1615,6 +1658,10 @@ sonar_init_ping (Display *dpy, char **error_ret, char **desc_ret,
 
      On MacOS X, we can avoid the whole problem by using a
      non-privileged datagram instead of a raw socket.
+
+     On recent Linux systems (2012-ish?) we can avoid setuid by instead
+     using cap_set_flag(... CAP_NET_RAW). To make that call the executable
+     needs to have "sudo setcap cap_net_raw=p sonar" done to it first.
    */
   if (global_icmpsock)
     {
@@ -1628,7 +1675,7 @@ sonar_init_ping (Display *dpy, char **error_ret, char **desc_ret,
     {
       socket_initted_p = True;
     }
-  else if (geteuid() == 0 &&
+  else if (set_ping_capability() &&
            (pd->icmpsock = socket(AF_INET, SOCK_RAW, IPPROTO_ICMP)) >= 0)
     {
       socket_initted_p = True;
index a68e992d3e05bbdfbc2b616ca1760127c4b37790..9a2f3a60a1948c60dd24cb4be1fcce36bf78a86c 100644 (file)
@@ -249,7 +249,7 @@ static void
 link_neighbors (ModeInfo *mi)
 {
   splodesic_configuration *bp = &bps[MI_SCREEN(mi)];
-  triangle *t0 = bp->triangles;
+  triangle *t0;
   int i;
 
   /* Triangles are neighbors if they share an edge (exactly 2 points).
index a52819f9ffc1d9178e8a7805f4cc3ab0e79ee2fa..1fdee6db3423f86b8001aae8f21e8eaecb7b8b45 100644 (file)
@@ -1,4 +1,5 @@
-/* unknownpleasures, Copyright (c) 2013-2018 Jamie Zawinski <jwz@jwz.org>
+/* unknownpleasures, Copyright (c) 2013-2018, 2019
+ * -Jamie Zawinski <jwz@jwz.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
  *
  * TODO:
  *
- * - Load images and feed them line by line into the plotter, so it scrolls.
- *
- * - Same but use the image as a mask against the random graph data.
- *
  * - Take a function generator program as a command line argument:
  *   read lines of N float values from it, interpolate to full width.
  */
@@ -43,6 +40,7 @@
 #define DEF_NOISE      "1.0"
 #define DEF_ASPECT     "1.9"
 #define DEF_BUZZ       "False"
+#define DEF_MASK       "(none)"
 
 #define DEFAULTS       "*delay:        30000       \n" \
                        "*count:        80          \n" \
@@ -57,6 +55,8 @@
 #include "xlockmore.h"
 #include "colors.h"
 #include "gltrackball.h"
+#include "ximage-loader.h"
+#include "grab-ximage.h"
 #include <ctype.h>
 
 #ifdef USE_GL /* whole file */
@@ -70,6 +70,7 @@ GLfloat amplitude_arg;
 GLfloat noise_arg;
 GLfloat aspect_arg;
 Bool buzz_arg;
+char *mask_arg;
 
 
 typedef struct {
@@ -88,6 +89,9 @@ typedef struct {
   GLuint *lines;       /* Display lists for each edge * face * frame */
   GLfloat *heights;    /* Animated elevation / alpha of each line */
   GLfloat fg[4], bg[4];        /* Colors */
+  XImage *mask;
+  double mask_scale;
+  int frame_count;
 } unk_configuration;
 
 static unk_configuration *bps = NULL;
@@ -102,6 +106,7 @@ static XrmOptionDescRec opts[] = {
   { "-no-ortho",     ".ortho",      XrmoptionNoArg,  "False" },
   { "-buzz",         ".buzz",       XrmoptionNoArg,  "True"  },
   { "-no-buzz",      ".buzz",       XrmoptionNoArg,  "False" },
+  { "-mask",         ".mask",       XrmoptionSepArg, 0 },
 };
 
 static argtype vars[] = {
@@ -112,6 +117,7 @@ static argtype vars[] = {
   {&noise_arg,      "noise",       "Noise",       DEF_NOISE,      t_Float},
   {&aspect_arg,     "aspect",      "Aspect",      DEF_ASPECT,     t_Float},
   {&buzz_arg,       "buzz",        "Buzz",        DEF_BUZZ,       t_Bool},
+  {&mask_arg,       "mask",        "Image",       DEF_MASK,       t_String},
 };
 
 ENTRYPOINT ModeSpecOpt unk_opts = {countof(opts), opts, countof(vars), vars, NULL};
@@ -241,21 +247,26 @@ reshape_unk (ModeInfo *mi, int width, int height)
     GLfloat lw = 1;
     GLfloat s = 1;
 
+# ifdef HAVE_MOBILE
+    lw = 4;
+    s = 1.4;
+
+# else  /* !HAVE_MOBILE */
+
     if (MI_WIDTH(mi) > 2560) lw = 4;  /* Retina displays */
-# ifdef HAVE_COCOA
+#  ifdef HAVE_COCOA
     else if (MI_WIDTH(mi) > 1280) lw = 3;  /* WTF */
-# endif
+#  endif
     else if (MI_WIDTH(mi) > 1920) lw = 3;
     else if (mi->xgwa.width > 640 && mi->xgwa.height > 640) lw = 2;
 
-# ifdef HAVE_MOBILE
-    lw = 4;
-    s = 1.4;
-# else
     /* Make the image fill the screen a little more fully */
     if (mi->xgwa.width <= 640 || mi->xgwa.height <= 640)
       s = 1.2;
-# endif
+
+# endif /* !HAVE_MOBILE */
+
+    s /= 1.9 / bp->aspect;
 
     glScalef (s, s, s);
     glLineWidth (lw);
@@ -264,6 +275,68 @@ reshape_unk (ModeInfo *mi, int width, int height)
   glClear(GL_COLOR_BUFFER_BIT);
 }
 
+static void
+load_image (ModeInfo *mi)
+{
+  unk_configuration *bp = &bps[MI_SCREEN(mi)];
+  XImage *image0;
+  int x, y;
+  double xs, ys;
+  unsigned long max = 0;
+
+  if (!mask_arg || !*mask_arg || !strcasecmp(mask_arg, "(none)"))
+    return;
+
+  image0 = file_to_ximage (MI_DISPLAY (mi), MI_VISUAL (mi), mask_arg);
+  if (!image0) return;
+
+  bp->mask = XCreateImage (MI_DISPLAY(mi), MI_VISUAL(mi), 32, ZPixmap, 0, 0,
+                           bp->resolution,
+                           bp->count * image0->height / image0->width *
+                           (1.9 / bp->aspect) * 0.75,
+                           32, 0);
+  if (!bp->mask) abort();
+  bp->mask->data = (char *)
+    malloc (bp->mask->height * bp->mask->bytes_per_line);
+  if (!bp->mask->data) abort();
+
+  xs = image0->width  / (double) bp->mask->width;
+  ys = image0->height / (double) bp->mask->height;
+
+  /* Scale the image down to a 1-bit mask. */
+  for (y = 0; y < bp->mask->height; y++)
+    for (x = 0; x < bp->mask->width; x++)
+      {
+        int x2, y2, n = 0;
+        double total = 0;
+        unsigned long p;
+        for (y2 = y * ys; y2 < (y+1) * ys; y2++)
+          for (x2 = x * xs; x2 < (x+1) * xs; x2++)
+            {
+              unsigned long agbr = XGetPixel (image0, x2, y2);
+              unsigned long a    = (agbr >> 24) & 0xFF;
+              unsigned long gray = (a == 0
+                                    ? 0
+                                    : ((((agbr >> 16) & 0xFF) +
+                                        ((agbr >>  8) & 0xFF) +
+                                        ((agbr >>  0) & 0xFF))
+                                       / 3));
+# if 0
+              if (gray < 96) gray /= 2;  /* a little more contrast */
+# endif
+              total += gray / 255.0;
+              n++;
+            }
+        p = 255 * total / n;
+        if (p > max) max = p;
+        p = (0xFF << 24) | (p << 16) | (p << 8) | p;
+        XPutPixel (bp->mask, x, bp->mask->height-y-1, p);
+      }
+
+  bp->mask_scale = 255.0 / max;
+  XDestroyImage (image0);
+}
+
 
 # ifdef DEBUG
 static GLfloat poly1 = 0, poly2 = 0;
@@ -353,7 +426,9 @@ generate_signal (ModeInfo *mi)
 
   for (j = 0; j < nspikes; j++)
     {
-      double off = frand (0.8) - 0.4;
+      double off = (bp->mask
+                    ? frand (1.0) - 0.5    /* all the way to the edge */
+                    : frand (0.8) - 0.4);  /* leave a margin */
       double amp = (0.1 + frand (0.9)) * nspikes;
       double freq = (7 + frand (11)) * bp->noise;
       for (i = 0, r = -0.5, p = points;
@@ -371,7 +446,10 @@ generate_signal (ModeInfo *mi)
   /* Multiply by baseline clipping curve, add static. */
   for (i = 0, r = -0.5, p = points; i < bp->resolution; i++, r += step, p++)
     *p = ((*p / max)
-          * (0.5 + 0.5 * cos1 (r * r * M_PI * 14) * (1 - frand(0.2))));
+          * (0.5 +
+             0.5
+             * (bp->mask ? 1 : cos1 (r * r * M_PI * 14))
+             * (1 - frand(0.2))));
 
   return points;
 }
@@ -414,6 +492,16 @@ tick_unk (ModeInfo *mi)
             {
               GLfloat x = i / (GLfloat) bp->resolution;
               GLfloat z = (points[i] + frand (0.05)) * bp->amplitude;
+
+              if (bp->mask)
+                {
+                  int h = bp->mask->height;  /* leave a 10% gutter */
+                  int y = bp->frame_count % (int) (h * 1.1);
+                  unsigned long p = (y < h ? XGetPixel (bp->mask, i, y) : 0);
+                  unsigned long gray = ((p >> 8) & 0xFF);
+                  z *= gray * bp->mask_scale / 255.0;
+                }
+
               if (z < 0) z = 0;
               if (z > bp->amplitude) z = bp->amplitude;
               glVertex3f (x, 0, z);
@@ -426,6 +514,7 @@ tick_unk (ModeInfo *mi)
         }
     }
 
+  bp->frame_count++;
   mi->polygon_count *= bp->count;
   mi->polygon_count += 5;  /* base */
 
@@ -471,6 +560,8 @@ init_unk (ModeInfo *mi)
   if (MI_COUNT(mi) < 1) MI_COUNT(mi) = 1;
   /* bp->count is set in reshape */
 
+  load_image (mi);
+
   bp->base = glGenLists (1);
   glNewList (bp->base, GL_COMPILE);
   {
@@ -673,6 +764,7 @@ free_unk (ModeInfo *mi)
     glDeleteLists (bp->lines[i], 1);
   free (bp->lines);
   free (bp->heights);
+  if (bp->mask) XDestroyImage (bp->mask);
 }
 
 XSCREENSAVER_MODULE_2 ("UnknownPleasures", unknownpleasures, unk)
index 2eab727ddd3f7dbab510c02c3accdb82a4577eb5..405d78f2b0ab963f0e8734754b92782daa78a131 100644 (file)
@@ -13,6 +13,7 @@ unknownpleasures - a waterfall graph of the signal from pulsar PSR B1919+21.
 [\-resolution \fInumber\fP]
 [\-amplitude \fInumber\fP]
 [\-noise \fInumber\fP]
+[\-mask \fIfile\fP]
 [\-no-ortho]
 [\-buzz]
 [\-wireframe]
@@ -55,6 +56,11 @@ Height of the waves, 0 - 1.0.  Default: 0.13.
 .B \-noise \fInumber\fP
 How noisy the signal is. 2 for twice as noisy, 0.5 for half as noisy.
 .TP 8
+.B \-mask \fIfile\fP
+Use the given image file as a clipping mask against the data.
+A high contrast image of around 256x256 works best.
+Signal peaks appear in the dark areas.
+.TP 8
 .B \-ortho | \-no-ortho
 Whether to use an orthographic projection.
 .TP 8
index e8c2d658f4cc4d80d1e6706ca4ef4473abcc7511..b1b7d49db84abf60c45030b667f263c035f14c31 100644 (file)
@@ -1,4 +1,4 @@
-/* xscreensaver, Copyright (c) 1999-2018 Jamie Zawinski <jwz@jwz.org>
+/* xscreensaver, Copyright (c) 1999-2019 Jamie Zawinski <jwz@jwz.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -337,7 +337,7 @@ hexadrop_reshape (Display *dpy, Window window, void *closure,
 
 
 static void
-hexadrop_free (Display *dpy, Window window, void *closure)
+hexadrop_free_1 (Display *dpy, Window window, void *closure)
 {
   state *st = (state *) closure;
   if (st->colors)
@@ -356,7 +356,16 @@ hexadrop_free (Display *dpy, Window window, void *closure)
       XFreeGC (st->dpy, st->gc);
       st->gc = 0;
     }
-  free (st);
+
+  memset (st, 0, sizeof(*st));
+}
+
+
+static void
+hexadrop_free (Display *dpy, Window window, void *closure)
+{
+  hexadrop_free_1 (dpy, window, closure);
+  free (closure);
 }
 
 
@@ -367,15 +376,35 @@ hexadrop_event (Display *dpy, Window window, void *closure, XEvent *event)
 
   if (screenhack_event_helper (dpy, window, event))
     {
-      cell *c = st->cells;
-      int i;
-      st->cells = 0;
-      hexadrop_free (st->dpy, st->window, st);
-      free (st->cells);
-      st->cells = c;
-      for (i = 0; i < st->ncells; i++)
-        st->cells[i].initted_p = False;
-      hexadrop_init_1 (st->dpy, st->window, st);
+      if (random() % 5)                /* Change everything */
+        {
+          hexadrop_free_1 (st->dpy, st->window, st);
+          hexadrop_init_1 (dpy, window, st);
+        }
+      else                     /* Change colors only */
+        {
+          /* Save the old geometry */
+          cell *c = st->cells;
+          int n = st->ncells;
+          int s = st->sides;
+          int i;
+
+          /* Protect it from being freed */
+          st->cells = 0;
+          hexadrop_free_1 (st->dpy, st->window, st);
+          hexadrop_init_1 (dpy, window, st);
+
+          /* Reset the old cells */
+          for (i = 0; i < n; i++)
+            c[i].initted_p = False;
+
+          /* Re-init, then put them back. */
+          free (st->cells);
+          st->cells = c;
+          st->ncells = n;
+          st->sides = s;
+        }
+
       return True;
     }
 
@@ -408,6 +437,7 @@ static XrmOptionDescRec hexadrop_options [] = {
   { "-ncolors",                ".ncolors",     XrmoptionSepArg, 0 },
   { "-uniform-speed",  ".uniform",     XrmoptionNoArg, "True"  },
   { "-no-uniform-speed",".uniform",    XrmoptionNoArg, "False" },
+  { "-nonuniform-speed",".uniform",    XrmoptionNoArg, "False" },
   { "-lockstep",       ".lockstep",    XrmoptionNoArg, "True"  },
   { "-no-lockstep",    ".lockstep",    XrmoptionNoArg, "False" },
   { 0, 0, 0, 0 }
index fc5167d7559a7cb4b07c44079acebc62c1d03371..f4cc5bbd3551130c1e9550d4ed9297886f115906 100644 (file)
@@ -215,10 +215,10 @@ static Bool make_rots(struct state *st, double xspeed,double yspeed)
   st->rotsizeY=(int)(2/yspeed+1);
   iy=(double)(st->midy+1)/(double)(st->rotsizeY);
 
-  st->Xrotations=malloc((st->midx+2)*sizeof(unsigned int));
-  st->Xrottable=malloc((st->rotsizeX+1)*sizeof(unsigned int));
-  st->Yrotations=malloc((st->midy+2)*sizeof(unsigned int));
-  st->Yrottable=malloc((st->rotsizeY+1)*sizeof(unsigned int));
+  st->Xrotations=malloc((st->midx+2)*sizeof(int));
+  st->Xrottable=malloc((st->rotsizeX+1)*sizeof(int));
+  st->Yrotations=malloc((st->midy+2)*sizeof(int));
+  st->Yrottable=malloc((st->rotsizeY+1)*sizeof(int));
   chks=malloc(((st->midx>st->midy)?st->midx:st->midy)*sizeof(Bool));
   if (!st->Xrottable || !st->Yrottable || !st->Xrotations || !st->Yrotations || !chks) return False;
 
index e97c582f37c06171e02e12f4862d485cb6b51205..1906369acbac193936600f535c375516d78435e6 100644 (file)
@@ -245,7 +245,10 @@ setup_display (struct state *st)
     XWindowAttributes xgwa;
 
     int cell_size = get_integer_resource (st->dpy, "size", "Integer");
-    int osize, alloc_size, oalloc;
+    int osize, alloc_size;
+#if 0
+    int oalloc;
+#endif
     int mem_throttle = 0;
     char *s;
 
@@ -404,7 +407,9 @@ setup_display (struct state *st)
     st->arr_height = st->windowHeight / cell_size;
 
     alloc_size = sizeof(cell) * st->arr_width * st->arr_height;
+# if 0
     oalloc = alloc_size;
+# endif
 
     if (mem_throttle > 0)
       while (cell_size < st->windowWidth/10 &&
@@ -419,7 +424,8 @@ setup_display (struct state *st)
 
     if (osize != cell_size)
       {
-        if (0 && !st->warned)
+# if 0
+        if (!st->warned)
           {
             fprintf (stderr,
              "%s: throttling cell size from %d to %d because of %dM limit.\n",
@@ -432,6 +438,7 @@ setup_display (struct state *st)
                      ((float) alloc_size) / (1 << 20));
             st->warned = 1;
           }
+# endif
       }
 
     st->xSize = st->arr_width ? st->windowWidth / st->arr_width : 0;
index d7961622fef365a9d679b8bd8a203764a5d30944..8aaf6f7cccde1618a5aed8f4fa60b4c221698bd4 100644 (file)
@@ -121,7 +121,7 @@ static void InitShadeBob( struct state *st, SShadeBob *pShadeBob, Bool bDark )
        double nDelta;
        int iWidth, iHeight;
 
-       if( ( pShadeBob->anDeltaMap = calloc( st->iBobDiameter * st->iBobDiameter, sizeof(char) ) ) == NULL )
+       if( ( pShadeBob->anDeltaMap = calloc( st->iBobDiameter * st->iBobDiameter, sizeof(signed char) ) ) == NULL )
        {
                fprintf( stderr, "%s: Could not allocate Delta Map!\n", progname );
                return;
index bacc814cd41317203508ba5a8e483a5e0c0fa834..5cc1196a5f3c0049332a19513fc9814fd9927e31 100755 (executable)
@@ -1,6 +1,6 @@
 #!/usr/bin/perl -w
 #
-# webcollage, Copyright © 1999-2018 by Jamie Zawinski <jwz@jwz.org>
+# webcollage, Copyright © 1999-2019 by Jamie Zawinski <jwz@jwz.org>
 # This program decorates the screen with random images from the web.
 # One satisfied customer described it as "a nonstop pop culture brainbath."
 #
@@ -60,7 +60,7 @@ use LWP::UserAgent;
 
 
 my $progname = $0; $progname =~ s@.*/@@g;
-my ($version) = ('$Revision: 1.182 $' =~ m/\s(\d[.\d]+)\s/s);
+my ($version) = ('$Revision: 1.183 $' =~ m/\s(\d[.\d]+)\s/s);
 my $copyright = "WebCollage $version, Copyright (c) 1999-2017" .
     " Jamie Zawinski <jwz\@jwz.org>\n" .
     "                  https://www.jwz.org/webcollage/\n";
@@ -228,6 +228,7 @@ my %warningless_sites = (
   "tinypic.com"             => 1,
   "flickr.com"              => 1,
   "staticflickr.com"        => 1,
+  "live.staticflickr.com"   => 1,
   "pbase.com"               => 1,
   "blogger.com"             => 1,
   "multiply.com"            => 1,
@@ -2149,7 +2150,6 @@ sub pick_from_flickr_recent($) {
     my ($img) = ($chunk =~ m@"displayUrl": *"(.*?)"@six);
     next unless defined ($img);
     $img =~ s/\\//gs;
-    $img = "//" unless ($img =~ m@^/@s);
     $img = "http:$img" unless ($img =~ m/^http/s);
 
     my ($user) = ($chunk =~ m/"pathAlias": *"(.*?)"/si);
index 27e4c9e75d1ce8aafbcc105e3abd03749cbc725a..5feedb2c07169cae08f1119a25a562e58e0132f6 100644 (file)
@@ -84,16 +84,18 @@ xjack_init (Display *dpy, Window window)
   XGCValues gcv;
   char *fontname;
 
+
   st->dpy = dpy;
   st->window = window;
   st->s = source;
   st->delay = get_integer_resource (st->dpy, "delay", "Integer");
-  fontname = get_string_resource (st->dpy, "font", "Font");
 
   XGetWindowAttributes (st->dpy, st->window, &st->xgwa);
 
-  if (st->xgwa.width <= 480)
-    fontname = "-*-courier-medium-r-*-*-*-180-*-*-m-*-*-*";
+  if (st->xgwa.width > 480)
+    fontname = get_string_resource (st->dpy, "font", "Font");
+  else
+    fontname = get_string_resource (st->dpy, "font2", "Font");
 
   st->font = load_font_retry (st->dpy, fontname);
   if (!st->font) abort();
@@ -474,8 +476,10 @@ static const char *xjack_defaults [] = {
   "*fpsSolid:          true",
 #ifdef HAVE_COCOA
   ".font:              American Typewriter 24",
+  ".font2:             American Typewriter 10",
 #else
   ".font:              -*-courier-medium-r-*-*-*-240-*-*-m-*-*-*",
+  ".font2:             -*-courier-medium-r-*-*-*-180-*-*-m-*-*-*",
 #endif
   "*delay:             50000",
   0
index 96d54b88ef4ffc3c2f8afebb6579a406db5b8cb3..13666e7d49f287b7cd9994465f4816341c8849da 100644 (file)
@@ -1,4 +1,4 @@
-/* xscreensaver, Copyright (c) 1991-2018 Jamie Zawinski <jwz@jwz.org>
+/* xscreensaver, Copyright (c) 1991-2019 Jamie Zawinski <jwz@jwz.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -94,8 +94,8 @@ jwxyz_drawable_depth (Drawable d)
 }
 
 
-float
-jwxyz_scale (Window main_window)
+static float
+jwxyz_scale_1 (Window main_window, BOOL fonts_p)
 {
   float scale = 1;
 
@@ -108,20 +108,32 @@ jwxyz_scale (Window main_window)
      or so, even if the display has significantly higher resolution.  That is
      unrelated to this hack, which is really about DPI.
    */
-  scale = main_window->window.view.hackedContentScaleFactor;
+  scale = [main_window->window.view hackedContentScaleFactor:fonts_p];
   if (scale < 1) // iPad Pro magnifies the backbuffer by 3x, which makes text
     scale = 1;   // excessively blurry in BSOD.
 
 # else  // !USE_IPHONE
 
   /* Desktop retina displays also need fonts doubled. */
-  scale = main_window->window.view.hackedContentScaleFactor;
+  scale = [main_window->window.view hackedContentScaleFactor:fonts_p];
 
 # endif // !USE_IPHONE
 
   return scale;
 }
 
+float
+jwxyz_scale (Window main_window)
+{
+  return jwxyz_scale_1 (main_window, FALSE);
+}
+
+static float
+jwxyz_font_scale (Window main_window)
+{
+  return jwxyz_scale_1 (main_window, TRUE);
+}
+
 
 /* Font metric terminology, as used by X11:
 
@@ -421,7 +433,7 @@ jwxyz_load_native_font (Window main_window, int traits_jwxyz, int mask_jwxyz,
                            encoding:NSUTF8StringEncoding] :
     nil;
 
-  size *= jwxyz_scale (main_window);
+  size *= jwxyz_font_scale (main_window);
 
   if (font_name_type == JWXYZ_FONT_RANDOM) {
 
index 1a31ae37a1dce4356b1df08d9cf29d3243decb65..febb3b50939e72b9b357c091f2a0ab5dcb352c63 100644 (file)
@@ -1,4 +1,4 @@
-/* xscreensaver, Copyright (c) 1991-2018 Jamie Zawinski <jwz@jwz.org>
+/* xscreensaver, Copyright (c) 1991-2019 Jamie Zawinski <jwz@jwz.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -103,6 +103,7 @@ XDisplayHeightMM (Display *dpy, int screen)
 unsigned long
 XBlackPixelOfScreen(Screen *screen)
 {
+  if (! screen) abort();
   return DefaultVisualOfScreen (screen)->alpha_mask;
 }
 
index 67326b02f1a5ec2bc12eab1f9691eed452bc1df4..1e81ab86a2ee5bb9f62adfa99c6e4cdedce8f568 100644 (file)
@@ -200,7 +200,8 @@ XtAppAddInput (XtAppContext app, int fd, XtPointer flags,
   data->app = app;
   data->refcount++;
 
-  LOGI("source 0x%08lX %2d: alloc", (unsigned long) data, data->fd);
+  LOGI("source 0x%08lX %2d: alloc 0x%08lX", (unsigned long) data, data->fd,
+       (unsigned long) closure);
 
   ASSERT_RET0 (fd > 0 && fd < FD_SETSIZE, "fd out of range");
   ASSERT_RET0 (td->ids[fd] == 0, "sources corrupted");
@@ -216,7 +217,8 @@ XtRemoveInput (XtInputId id)
 {
   jwxyz_sources_data *td = DISPLAY_SOURCES_DATA (id->app);
 
-  LOGI("source 0x%08lX %2d: remove", (unsigned long) id, id->fd);
+  LOGI("source 0x%08lX %2d: remove 0x%08lX", (unsigned long) id, id->fd,
+       (unsigned long) id->closure);
   ASSERT_RET (id->refcount > 0, "sources corrupted");
   ASSERT_RET (td->fd_count > 0, "sources corrupted");
   ASSERT_RET (id->fd > 0 && id->fd < FD_SETSIZE, "fd out of range");
@@ -226,8 +228,8 @@ XtRemoveInput (XtInputId id)
   td->fd_count--;
   id->refcount--;
 
-  LOGI("source 0x%08lX %2d: release %d", (unsigned long) id, id->fd,
-       id->refcount);
+  LOGI("source 0x%08lX %2d: release %d 0x%08lX", (unsigned long) id, id->fd,
+       id->refcount, (unsigned long) id->closure);
   ASSERT_RET (id->refcount >= 0, "double free");
   if (id->refcount == 0) {
     memset (id, 0xA1, sizeof(*id));
index 4256f6df438edba34bd15847870a9b096c14b313..c6a7af5d640a1391ef8e9864755b6ba047da6289 100644 (file)
@@ -1,4 +1,4 @@
-/* xscreensaver, Copyright (c) 1991-2018 Jamie Zawinski <jwz@jwz.org>
+/* xscreensaver, Copyright (c) 1991-2019 Jamie Zawinski <jwz@jwz.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -1284,7 +1284,7 @@ GetSubImage (Display *dpy, Drawable d, int x, int y,
   // data points at (x,y) with ibpl rowstride.  ignore x,y from now on.
   data += (y * ibpl) + (x * (ibpp/8));
   
-  format = (depth == 1 ? XYPixmap : ZPixmap);
+  // format = (depth == 1 ? XYPixmap : ZPixmap);
   
   int obpl = image->bytes_per_line;
   
index e0437e06eb530a323adf0e9157fbb5b55c31e32c..b26bc3a27807b52c9cf0560e7f30e153c1c7c2b4 100644 (file)
@@ -1,4 +1,4 @@
-/* xscreensaver, Copyright (c) 2012-2018 Jamie Zawinski <jwz@jwz.org>
+/* xscreensaver, Copyright (c) 2012-2019 Jamie Zawinski <jwz@jwz.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -352,7 +352,8 @@ static jwzgles_state *state = 0;
 
 #ifdef DEBUG
 
-static void Log(const char *fmt, ...)
+void
+Log(const char *fmt, ...)
 {
   va_list args;
   va_start (args, fmt);
@@ -4287,6 +4288,7 @@ void jwzgles_##NAME (ARGS_##SIG)                                  \
 WRAP (glActiveTexture, I)
 WRAP (glAlphaFunc,     IF)
 WRAP (glBlendFunc,     II)
+//WRAP (glBlendColor,     FFFF);
 WRAP (glClear,         I)
 WRAP (glClearColor,    FFFF)
 WRAP (glClearStencil,  I)
index 8f0920887bc08108fa781b3e378472679712c820..b90bad4b72c90fc65c4218a2f59d73715803ec41 100644 (file)
@@ -1,4 +1,4 @@
-/* xscreensaver, Copyright (c) 2012-2018 Jamie Zawinski <jwz@jwz.org>
+/* xscreensaver, Copyright (c) 2012-2019 Jamie Zawinski <jwz@jwz.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
 # define GL_VIEWPORT_BIT                       0x00000800
 # define GL_INT                                        0x1404
 # define GL_DOUBLE                             0x140A
+# define GL_CONSTANT_ALPHA                     0x8003
 
 #endif
 
@@ -173,6 +174,7 @@ extern void jwzgles_glPopAttrib(void);
 extern void jwzgles_glActiveTexture (GLuint);
 extern void jwzgles_glBindTexture (GLuint, GLuint);
 extern void jwzgles_glBlendFunc (GLuint, GLuint);
+extern void jwzgles_glBlendColor (GLfloat, GLfloat, GLfloat, GLfloat);
 extern void jwzgles_glClear (GLuint);
 extern void jwzgles_glClearColor (GLclampf, GLclampf, GLclampf, GLclampf);
 extern void jwzgles_glClearStencil (GLuint);
index 628e1378754a207a6b212b35106ec673e189ce77..cd9cf4ac301c85419ceecec5aec923947d94f0a3 100644 (file)
@@ -1,4 +1,4 @@
-# Auto-generated: Fri Dec 28 16:21:54 PST 2018
+# Auto-generated: Mon Jul  1 14:17:56 PDT 2019
 driver/demo-Gtk-conf.c
 driver/demo-Gtk.c
 driver/screensaver-properties.desktop.in
@@ -56,6 +56,7 @@ hacks/config/cynosure.xml
 hacks/config/dangerball.xml
 hacks/config/decayscreen.xml
 hacks/config/deco.xml
+hacks/config/deepstars.xml
 hacks/config/deluxe.xml
 hacks/config/demon.xml
 hacks/config/discoball.xml
@@ -108,6 +109,7 @@ hacks/config/glsnake.xml
 hacks/config/gltext.xml
 hacks/config/goop.xml
 hacks/config/grav.xml
+hacks/config/gravitywell.xml
 hacks/config/greynetic.xml
 hacks/config/halftone.xml
 hacks/config/halo.xml
index dd99ebdbcf6b269be574112b7dab418557bafcd1..7ac8b8fe37b7f717f7b2b1a99632b0b3ef6d0e92 100644 (file)
--- a/po/ru.po
+++ b/po/ru.po
@@ -1,18 +1,25 @@
-# Russian translation for xscreensaver
-# Andrew W. Nosenko <awn@bcs.zp.ua>, 2002-2003
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: xscreensaver 4.09\n"
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# 
+# Translators:
+# AlexL <loginov.alex.valer@gmail.com>, 2015,2019
+# Kашицин Роман <calorus@gmail.com>, 2015
+# Алексей Дедун <lewadedun@gmail.com>, 2015
+# Олег o1hk <o1h2k3@yandex.ru>, 2016
+msgid ""
+msgstr ""
+"Project-Id-Version: rus-xscreensaver\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2017-11-03 21:11+0300\n"
-"PO-Revision-Date: 2003-05-17 16:53+0300\n"
-"Last-Translator: \"Andrew W. Nosenko\" <awn@bcs.zp.ua>\n"
-"Language-Team: Russian\n"
-"Language: \n"
+"POT-Creation-Date: 2019-04-25 05:28+0300\n"
+"PO-Revision-Date: 2019-05-01 06:15+0000\n"
+"Last-Translator: AlexL <loginov.alex.valer@gmail.com>\n"
+"Language-Team: Russian (http://www.transifex.com/rus-open-source/rus-xscreensaver/language/ru/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Language: ru\n"
+"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n"
 
 #: ../driver/demo-Gtk-conf.c:884
 msgid "Browse..."
@@ -20,20 +27,16 @@ msgstr "Обзор..."
 
 #: ../driver/demo-Gtk-conf.c:1087
 msgid "Select file."
-msgstr "Выберите файл"
+msgstr "Выберите файл."
 
-#: ../driver/demo-Gtk.c:755 ../driver/demo-Gtk.c:4484
+#: ../driver/demo-Gtk.c:755 ../driver/demo-Gtk.c:4487
 #, c-format
 msgid ""
 "Warning:\n"
 "\n"
 "The XScreenSaver daemon doesn't seem to be running\n"
 "on display \"%s\".  Launch it now?"
-msgstr ""
-"Предупреждение:\n"
-"\n"
-"XScreenSaver демон, похоже, не запущен\n"
-"для экрана \"%s\".  Запустить его сейчас?"
+msgstr "Предупреждение:\n\nXScreenSaver демон, похоже, не запущен\nдля экрана \"%s\".  Запустить его сейчас?"
 
 #: ../driver/demo-Gtk.c:804
 msgid "For updates, check https://www.jwz.org/xscreensaver/"
@@ -48,24 +51,17 @@ msgid ""
 "Error:\n"
 "\n"
 "No Help URL has been specified.\n"
-msgstr ""
-"Ошибка:\n"
-"\n"
-"URL для файлов помощи не указан.\n"
+msgstr "Ошибка:\n\nURL для файлов помощи не указан.\n"
 
-#: ../driver/demo-Gtk.c:1037
+#: ../driver/demo-Gtk.c:1042
 msgid ""
 "Error:\n"
 "\n"
 "The xscreensaver daemon did not start up properly.\n"
 "\n"
-msgstr ""
-"Ошибка:\n"
-"\n"
-"Демон xscreensaver не запущен или запущен неправильно.\n"
-"\n"
+msgstr "Ошибка:\n\nДемон xscreensaver не запущен или запущен неправильно.\n\n"
 
-#: ../driver/demo-Gtk.c:1049
+#: ../driver/demo-Gtk.c:1048
 msgid ""
 "You are running as root.  This usually means that xscreensaver\n"
 "was unable to contact your X server because access control is\n"
@@ -82,158 +78,121 @@ msgid ""
 "\n"
 "You shouldn't run X as root. Instead, you should log in as a\n"
 "normal user, and `su' as necessary."
-msgstr ""
-"Вы работаете под root.  Обычно это означает, что xscreensaver\n"
-"не смог подключиться к вашему X-серверу из-за включенного\n"
-"контроля доступа.  Попробуйте выполнить эту команду:\n"
-"\n"
-"                        xhost +localhost\n"
-"\n"
-"а затем выбрать `Файл / Перезапустить демон'.\n"
-"\n"
-"Важно: отключение контроля доступа позволит любому пользователю\n"
-"вашего компьютера получить доступ к вашему экрану, что может быть\n"
-"расценено как проблема с безопасностью.  Пожалуйста, прочитайте\n"
-"мануал xscreensaver, а также вопросы и ответы для более подробной\n"
-"информации.\n"
-"\n"
-"Не стоит запускать X от root. Вместо этого, вам нужно войти в\n"
-"систему от обычного пользователя, и `su' при необходимости."
+msgstr "Вы работаете под root.  Обычно это означает, что xscreensaver\nне смог подключиться к вашему X-серверу из-за включенного\nконтроля доступа.  Попробуйте выполнить эту команду:\n\n                        xhost +localhost\n\nа затем выбрать `Файл / Перезапустить демон'.\n\nВажно: отключение контроля доступа позволит любому пользователю\nвашего компьютера получить доступ к вашему экрану, что может быть\nрасценено как проблема с безопасностью.  Пожалуйста, прочитайте\nмануал xscreensaver, а также вопросы и ответы для более подробной\nинформации.\n\nНе стоит запускать X от root. Вместо этого, вам нужно войти в\nсистему от обычного пользователя, и `su' при необходимости."
 
-#: ../driver/demo-Gtk.c:1065
+#: ../driver/demo-Gtk.c:1064
 msgid "Please check your $PATH and permissions."
 msgstr "Проверьте значение переменной $PATH и права доступа."
 
-#: ../driver/demo-Gtk.c:1103
+#: ../driver/demo-Gtk.c:1102
 msgid ""
 "Error:\n"
 "\n"
 "Couldn't determine init file name!\n"
-msgstr ""
-"Ошибка:\n"
-"\n"
-"Не удалось определить имя инициализационного файла!\n"
+msgstr "Ошибка:\n\nНе удалось определить имя инициализационного файла!\n"
 
-#: ../driver/demo-Gtk.c:1108
+#: ../driver/demo-Gtk.c:1107
 #, c-format
 msgid ""
 "Error:\n"
 "\n"
 "Couldn't write %s\n"
-msgstr ""
-"Ошибка:\n"
-"\n"
-"Не удалось записать %s\n"
+msgstr "Ошибка:\n\nНе удалось записать %s\n"
 
-#: ../driver/demo-Gtk.c:1171
+#: ../driver/demo-Gtk.c:1170
 msgid ""
 "Error:\n"
 "\n"
 "no `manualCommand' resource set."
-msgstr ""
-"Ошибка:\n"
-"\n"
-"Ресурс `manualCommand' не установлен."
+msgstr "Ошибка:\n\nРесурс `manualCommand' не установлен."
 
-#: ../driver/demo-Gtk.c:1354
+#: ../driver/demo-Gtk.c:1353
 #, c-format
 msgid ""
 "Error:\n"
 "\n"
 "Unparsable time format: \"%s\"\n"
-msgstr ""
-"Ошибка:\n"
-"\n"
-"Невозможно определить формат времени: \"%s\"\n"
+msgstr "Ошибка:\n\nНевозможно определить формат времени: \"%s\"\n"
 
-#: ../driver/demo-Gtk.c:1793 ../driver/demo-Gtk.c:3370
+#: ../driver/demo-Gtk.c:1792 ../driver/demo-Gtk.c:3368
 #: ../driver/xscreensaver-demo.glade2.in.h:102
 msgid "Any"
 msgstr "Любой"
 
-#: ../driver/demo-Gtk.c:2091
+#: ../driver/demo-Gtk.c:2090
 #, c-format
 msgid ""
 "Error:\n"
 "\n"
 "Directory does not exist: \"%s\"\n"
-msgstr ""
-"Ошибка:\n"
-"\n"
-"Каталога не существует: \"%s\"\n"
+msgstr "Ошибка:\n\nКаталога не существует: \"%s\"\n"
 
-#: ../driver/demo-Gtk.c:2121 ../driver/demo-Gtk.c:2152
+#: ../driver/demo-Gtk.c:2120 ../driver/demo-Gtk.c:2151
 #, c-format
 msgid ""
 "Error:\n"
 "\n"
 "File does not exist: \"%s\"\n"
-msgstr ""
-"Ошибка:\n"
-"\n"
-"Файла не существует: \"%s\"\n"
+msgstr "Ошибка:\n\nФайла не существует: \"%s\"\n"
 
-#: ../driver/demo-Gtk.c:2533
+#: ../driver/demo-Gtk.c:2532
 msgid "Use"
 msgstr "Использовать"
 
-#: ../driver/demo-Gtk.c:2543
+#: ../driver/demo-Gtk.c:2542
 msgid "Screen Saver"
 msgstr "Хранитель экрана"
 
-#: ../driver/demo-Gtk.c:2995
+#: ../driver/demo-Gtk.c:2993
 msgid "Descriptions not available: no XML support compiled in."
 msgstr "Описание недоступно: поддержка XML не была включена при компиляции."
 
-#: ../driver/demo-Gtk.c:3000
+#: ../driver/demo-Gtk.c:2998
 msgid "No description available."
 msgstr "Описание отсутствует."
 
-#: ../driver/demo-Gtk.c:3322
+#: ../driver/demo-Gtk.c:3320
 msgid "Blank Screen"
-msgstr "Пустой экран"
+msgstr "Погасить экран"
 
-#: ../driver/demo-Gtk.c:3328
+#: ../driver/demo-Gtk.c:3326
 msgid "Screen Saver Disabled"
 msgstr "Хранитель экрана отключен"
 
-#: ../driver/demo-Gtk.c:3351
+#: ../driver/demo-Gtk.c:3349
 msgid "Preview"
 msgstr "Предпросмотр"
 
-#: ../driver/demo-Gtk.c:3361
+#: ../driver/demo-Gtk.c:3359
 #, c-format
 msgid "%s: %.100s Settings"
 msgstr "Настройки %s: %.100s"
 
-#: ../driver/demo-Gtk.c:3525
+#: ../driver/demo-Gtk.c:3523
 #, c-format
 msgid ""
 "Warning:\n"
 "\n"
 "file \"%s\" has changed, reloading.\n"
-msgstr ""
-"Предупреждение:\n"
-"\n"
-"Файл \"%s\" изменился и будет перезагружен.\n"
+msgstr "Предупреждение:\n\nФайл \"%s\" изменился и будет перезагружен.\n"
 
-#: ../driver/demo-Gtk.c:3612
+#: ../driver/demo-Gtk.c:3610
 msgid "No Preview"
-msgstr "Ð\9fÑ\80едпÑ\80оÑ\81моÑ\82Ñ\80 Ð½Ðµ"
+msgstr "Ð\91ез Ð¿Ñ\80едпÑ\80оÑ\81моÑ\82Ñ\80а"
 
-#: ../driver/demo-Gtk.c:3612
+#: ../driver/demo-Gtk.c:3610
 msgid "Available"
-msgstr "доступен"
+msgstr "Ð\94оступен"
 
-#: ../driver/demo-Gtk.c:3613
+#: ../driver/demo-Gtk.c:3611
 msgid "Not"
-msgstr ""
+msgstr "НЕ"
 
-#: ../driver/demo-Gtk.c:3613
+#: ../driver/demo-Gtk.c:3611
 msgid "Installed"
-msgstr ""
+msgstr "Установлено"
 
-#: ../driver/demo-Gtk.c:4494
+#: ../driver/demo-Gtk.c:4497
 #, c-format
 msgid ""
 "Warning:\n"
@@ -250,23 +209,9 @@ msgid ""
 "xscreensaver as \"%s\".\n"
 "\n"
 "Restart the xscreensaver daemon now?\n"
-msgstr ""
-"Внимание!\n"
-"\n"
-"%s запущен от имени пользователя \"%s\" на хосте \"%s\".\n"
-"Но xscreensaver управляет дисплеем \"%s\"\n"
-"и запущен от имени пользователя \"%s\" на хосте \"%s\".\n"
-"\n"
-"Это различные пользователи, и они не смогут читать/записывать\n"
-"один и тот же файл ~/.xscreensaver , и %s\n"
-"будет работать некорректно.\n"
-"\n"
-"Вам нужно перезапустить либо %s от \"%s\", либо\n"
-"xscreensaver от \"%s\".\n"
-"\n"
-"Перезапустить демон xscreensaver сейчас?\n"
+msgstr "Внимание!\n\n%s запущен от имени пользователя \"%s\" на хосте \"%s\".\nНо xscreensaver управляет дисплеем \"%s\"\nи запущен от имени пользователя \"%s\" на хосте \"%s\".\n\nЭто различные пользователи, и они не смогут читать/записывать\nодин и тот же файл ~/.xscreensaver , и %s\nбудет работать некорректно.\n\nВам нужно перезапустить либо %s от \"%s\", либо\nxscreensaver от \"%s\".\n\nПерезапустить демон xscreensaver сейчас?\n"
 
-#: ../driver/demo-Gtk.c:4519
+#: ../driver/demo-Gtk.c:4522
 #, c-format
 msgid ""
 "Warning:\n"
@@ -280,20 +225,9 @@ msgid ""
 "%s won't work right.\n"
 "\n"
 "Restart the daemon on \"%s\" as \"%s\" now?\n"
-msgstr ""
-"Внимание!\n"
-"\n"
-"%s запущен от имени пользователя \"%s\" на хосте \"%s\".\n"
-"Но xscreensaver управляет дисплеем \"%s\"\n"
-"и запущен от имени пользователя \"%s\" на хосте \"%s\".\n"
-"\n"
-"Если у этих двух машин нет общей файловой системы (т.е.,\n"
-"если они не видят один и тот же файл ~%s/.xscreensaver), то\n"
-"%s будет работать некорректно.\n"
-"\n"
-"Перезапустить демон на \"%s\" от \"%s\" сейчас?\n"
+msgstr "Внимание!\n\n%s запущен от имени пользователя \"%s\" на хосте \"%s\".\nНо xscreensaver управляет дисплеем \"%s\"\nи запущен от имени пользователя \"%s\" на хосте \"%s\".\n\nЕсли у этих двух машин нет общей файловой системы (т.е.,\nесли они не видят один и тот же файл ~%s/.xscreensaver), то\n%s будет работать некорректно.\n\nПерезапустить демон на \"%s\" от \"%s\" сейчас?\n"
 
-#: ../driver/demo-Gtk.c:4541
+#: ../driver/demo-Gtk.c:4544
 #, c-format
 msgid ""
 "Warning:\n"
@@ -303,16 +237,9 @@ msgid ""
 "is version %s.  This could cause problems.\n"
 "\n"
 "Restart the xscreensaver daemon now?\n"
-msgstr ""
-"Внимание!\n"
-"\n"
-"Это %s версия %s.\n"
-"Но xscreensaver управляет дисплеем \"%s\"\n"
-"версии %s.  Это может вызвать проблемы.\n"
-"\n"
-"Перезапустить демон xscreensaver сейчас?\n"
+msgstr "Внимание!\n\nЭто %s версии %s.\nНо xscreensaver управляет дисплеем \"%s\"\nверсии %s.  Это может вызвать проблемы.\n\nПерезапустить демон xscreensaver сейчас?\n"
 
-#: ../driver/demo-Gtk.c:4569
+#: ../driver/demo-Gtk.c:4572
 msgid ""
 "Warning:\n"
 "\n"
@@ -320,15 +247,9 @@ msgid ""
 "It must be stopped for XScreenSaver to work properly.\n"
 "\n"
 "Stop the GNOME screen saver daemon now?\n"
-msgstr ""
-"Внимание!\n"
-"\n"
-"Запущен демон хранителя экрана GNOME.\n"
-"Его нужно остановить для корректной работы XScreenSaver.\n"
-"\n"
-"Остановить демон хранителя экрана GNOME сейчас?\n"
+msgstr "Внимание!\n\nЗапущен демон хранителя экрана GNOME.\nЕго нужно остановить для корректной работы XScreenSaver.\n\nОстановить демон хранителя экрана GNOME сейчас?\n"
 
-#: ../driver/demo-Gtk.c:4578
+#: ../driver/demo-Gtk.c:4581
 msgid ""
 "Warning:\n"
 "\n"
@@ -336,24 +257,18 @@ msgid ""
 "It must be stopped for XScreenSaver to work properly.\n"
 "\n"
 "Stop the KDE screen saver daemon now?\n"
-msgstr ""
-"Внимание!\n"
-"\n"
-"Запущен демон хранителя экрана KDE.\n"
-"Его нужно остановить для корректной работы XScreenSaver.\n"
-"\n"
-"Остановить демон хранителя экрана KDE сейчас?\n"
+msgstr "Внимание!\n\nЗапущен демон хранителя экрана KDE.\nЕго нужно остановить для корректной работы XScreenSaver.\n\nОстановить демон хранителя экрана KDE сейчас?\n"
 
-#: ../driver/demo-Gtk.c:5030
+#: ../driver/demo-Gtk.c:5032
 #, c-format
 msgid "%s: unknown option: %s\n"
 msgstr "%s: неизвестный параметр: %s\n"
 
-#: ../driver/demo-Gtk.c:5095
+#: ../driver/demo-Gtk.c:5097
 msgid "Screensaver Preferences"
-msgstr "Ð¥Ñ\80аниÑ\82елÑ\8c экрана"
+msgstr "Ð\9dаÑ\81Ñ\82Ñ\80ойки Ñ\85Ñ\80аниÑ\82елÑ\8f экрана"
 
-#: ../driver/demo-Gtk.c:5297
+#: ../driver/demo-Gtk.c:5299
 msgid ""
 "Warning:\n"
 "\n"
@@ -364,28 +279,20 @@ msgid ""
 "\n"
 "(If this is the latest version that your distro ships, then\n"
 "your distro is doing you a disservice. Build from source.)\n"
-msgstr ""
-"Внимание!\n"
-"\n"
-"Эта версия xscreensaver ОЧЕНЬ СТАРАЯ!\n"
-"Пожалуйста, обновите ее!\n"
-"\n"
-"https://www.jwz.org/xscreensaver/\n"
-"\n"
-"(Если это последняя версия программы, поставляемая вашим дистрибутивом, \n"
-"то он оказывает вам плохую услугу. Соберите ее из исходного кода.)\n"
+msgstr "Внимание!\n\nЭта версия xscreensaver ОЧЕНЬ СТАРАЯ!\nПожалуйста, обновите её!\n\nhttps://www.jwz.org/xscreensaver/\n\n(Если это последняя версия программы, поставляемая вашим дистрибутивом, \nто он оказывает вам плохую услугу. Соберите её из исходного кода.)\n"
 
 #: ../driver/screensaver-properties.desktop.in.h:1
+#: ../driver/xscreensaver-demo.glade2.in.h:1
+msgid "XScreenSaver"
+msgstr "Хранитель экрана X"
+
+#: ../driver/screensaver-properties.desktop.in.h:2
 msgid "Screensaver"
 msgstr "Хранитель экрана"
 
-#: ../driver/screensaver-properties.desktop.in.h:2
+#: ../driver/screensaver-properties.desktop.in.h:3
 msgid "Change screensaver properties"
-msgstr ""
-
-#: ../driver/xscreensaver-demo.glade2.in.h:1
-msgid "XScreenSaver"
-msgstr "Хранитель экрана"
+msgstr "Изменить свойства хранителя экрана"
 
 #: ../driver/xscreensaver-demo.glade2.in.h:2
 msgid "_File"
@@ -393,7 +300,7 @@ msgstr "_Файл"
 
 #: ../driver/xscreensaver-demo.glade2.in.h:3
 msgid "_Blank Screen Now"
-msgstr "_Ð\90кÑ\82ивиÑ\80оваÑ\82Ñ\8c Ñ\85Ñ\80аниÑ\82елÑ\8c Ñ\8dкÑ\80ана немедленно"
+msgstr "_Ð\9fогаÑ\81иÑ\82Ñ\8c Ñ\8dкÑ\80ан немедленно"
 
 #: ../driver/xscreensaver-demo.glade2.in.h:4
 msgid "_Lock Screen Now"
@@ -429,7 +336,7 @@ msgstr "С_мена через"
 
 #: ../driver/xscreensaver-demo.glade2.in.h:12
 msgid "Whether a password should be required to un-blank the screen."
-msgstr "Должен ли требоваться пароль для разблокировки экрана."
+msgstr "Должен ли требоваться пароль для отмены гашения экрана."
 
 #: ../driver/xscreensaver-demo.glade2.in.h:13
 msgid "_Lock Screen After  "
@@ -437,7 +344,7 @@ msgstr "_Заблокировать экран через  "
 
 #: ../driver/xscreensaver-demo.glade2.in.h:14
 msgid "Lock Screen"
-msgstr ""
+msgstr "Заблокировать экран"
 
 #: ../driver/xscreensaver-demo.glade2.in.h:15
 msgid "How long before the screen saver activates."
@@ -445,21 +352,17 @@ msgstr "Время до запуска хранителя экрана."
 
 #: ../driver/xscreensaver-demo.glade2.in.h:16
 msgid "How long after the screen blanks until a password will be required."
-msgstr ""
-"Время после очистки экрана, через которое для входа в систему требуется "
-"пароль."
+msgstr "Время после гашения экрана, через которое для входа в систему требуется пароль."
 
 #: ../driver/xscreensaver-demo.glade2.in.h:17
 msgid "Lock Screen After"
-msgstr "Ð\97апиÑ\80ать экран через"
+msgstr "Ð\97аблокиÑ\80овать экран через"
 
 #: ../driver/xscreensaver-demo.glade2.in.h:18
 msgid ""
 "How long each display mode should run before choosing a new one (in Random "
 "mode.)"
-msgstr ""
-"Время работы каждого режима дисплея до выбора нового (в режиме "
-"\"Случайный хранитель экрана\".)"
+msgstr "Время работы каждого режима дисплея до выбора нового (в режиме \"Случайный хранитель экрана\".)"
 
 #: ../driver/xscreensaver-demo.glade2.in.h:19
 msgid "minutes"
@@ -467,15 +370,13 @@ msgstr "минут(ы)"
 
 #: ../driver/xscreensaver-demo.glade2.in.h:20
 msgid "_Blank After"
-msgstr "_Ð\90кÑ\82ивиÑ\80овать через"
+msgstr "_Ð\9fогаÑ\81ить через"
 
 #: ../driver/xscreensaver-demo.glade2.in.h:21
 msgid ""
 "Demo the selected screen saver in full-screen mode (click the mouse to "
 "return.)"
-msgstr ""
-"Показать выбранный хранитель в полноэкранном режиме (возврат обратно по "
-"щелчку мыши)."
+msgstr "Показать выбранный хранитель в полноэкранном режиме (возврат обратно по щелчку мыши)."
 
 #: ../driver/xscreensaver-demo.glade2.in.h:22
 msgid "_Preview"
@@ -503,11 +404,11 @@ msgstr "_Отключить хранитель экрана"
 
 #: ../driver/xscreensaver-demo.glade2.in.h:28
 msgid "When idle or locked, blacken the screen only."
-msgstr "ТолÑ\8cко Ð³Ð°Ñ\81иÑ\82Ñ\8c Ñ\8dкÑ\80ан во время простоя или блокировки."
+msgstr "Ð\93аÑ\81иÑ\82Ñ\8c Ñ\8dкÑ\80ан Ñ\82олÑ\8cко во время простоя или блокировки."
 
 #: ../driver/xscreensaver-demo.glade2.in.h:29
 msgid "_Blank Screen Only"
-msgstr "_ТолÑ\8cко Ð¿Ñ\83Ñ\81Ñ\82ой экран"
+msgstr "_Ð\9fогаÑ\81иÑ\82Ñ\8c Ñ\82олÑ\8cко экран"
 
 #: ../driver/xscreensaver-demo.glade2.in.h:30
 msgid "When idle or locked, run the display mode selected below."
@@ -515,15 +416,13 @@ msgstr "Запустить выбранный ниже режим дисплея
 
 #: ../driver/xscreensaver-demo.glade2.in.h:31
 msgid "_Only One Screen Saver"
-msgstr "Ð\9eдин _постоянный хранитель экрана"
+msgstr "ТолÑ\8cко Ð¾дин _постоянный хранитель экрана"
 
 #: ../driver/xscreensaver-demo.glade2.in.h:32
 msgid ""
 "When idle or locked, choose a random display mode from among the checked "
 "items in the list below."
-msgstr ""
-"Выбрать случайный режим дисплея среди отмеченных элементов в списке ниже "
-"во время простоя или блокировки."
+msgstr "Выбрать случайный режим дисплея среди отмеченных элементов в списке ниже во время простоя или блокировки."
 
 #: ../driver/xscreensaver-demo.glade2.in.h:33
 msgid "_Random Screen Saver"
@@ -533,53 +432,47 @@ msgstr "_Случайный хранитель экрана"
 msgid ""
 "When idle or locked, choose a random display mode from among the checked "
 "items in the list below.  Run that same mode on each monitor."
-msgstr ""
+msgstr "В режиме ожидания, или блокировки экрана, выбрать, среди проверенных элементов в списке ниже, режим случайного отображения. Запустить этот режим и на других мониторах."
 
 #: ../driver/xscreensaver-demo.glade2.in.h:35
 msgid "_Same Random Savers"
-msgstr ""
+msgstr "_Те же случайные заставки"
 
 #: ../driver/xscreensaver-demo.glade2.in.h:36
 msgid ""
 "Run the next screen saver in the list in full-screen mode (click the mouse "
 "to return.)"
-msgstr ""
-"Исполнить следующий в списке хранитель экрана в полноэкранном режиме "
-"(возврат обратно по щелчку мыши)."
+msgstr "Запустить следующий в списке хранитель экрана в полноэкранном режиме (возврат обратно по щелчку мыши)."
 
 #: ../driver/xscreensaver-demo.glade2.in.h:37
 msgid ""
 "Run the previous screen saver in the list in full-screen mode (click the "
 "mouse to return.)"
-msgstr ""
-"Исполнить предыдущий в списке хранитель экрана в полноэкранном режиме "
-"(возврат обратно по щелчку мыши)."
+msgstr "Запустить предыдущий в списке хранитель экрана в полноэкранном режиме (возврат обратно по щелчку мыши)."
 
 #: ../driver/xscreensaver-demo.glade2.in.h:38
 msgid "preview"
-msgstr ""
+msgstr "предпросмотр"
 
 #: ../driver/xscreensaver-demo.glade2.in.h:39
 msgid ""
 "No Preview\n"
 "Available"
-msgstr ""
-"Предпросмотр\n"
-"недоступен"
+msgstr "Предпросмотр\nнедоступен"
 
 #: ../driver/xscreensaver-demo.glade2.in.h:41
 msgid "no preview"
-msgstr ""
+msgstr "без предпросмотра"
 
 #: ../driver/xscreensaver-demo.glade2.in.h:42
 msgid ""
 "Not\n"
 "Installed"
-msgstr "Не установлен"
+msgstr "Не\nустановлен"
 
 #: ../driver/xscreensaver-demo.glade2.in.h:44
 msgid "not installed"
-msgstr ""
+msgstr "не установлено"
 
 #: ../driver/xscreensaver-demo.glade2.in.h:45
 msgid ""
@@ -587,15 +480,11 @@ msgid ""
 "\n"
 "This probably means that the \"xscreensaver-extras\" and\n"
 "\"xscreensaver-gl-extras\" packages are not installed."
-msgstr ""
-"Доступно очень мало хранителей экрана (или они не доступны вообще).\n"
-"\n"
-"Возможно, не установлены пакеты \"xscreensaver-extras\" и\n"
-"\"xscreensaver-gl-extras\"."
+msgstr "Доступно очень мало хранителей экрана (или они не доступны вообще).\n\nВозможно, не установлены пакеты \"xscreensaver-extras\" и\n\"xscreensaver-gl-extras\"."
 
 #: ../driver/xscreensaver-demo.glade2.in.h:49
 msgid "nothing"
-msgstr ""
+msgstr "ничего"
 
 #: ../driver/xscreensaver-demo.glade2.in.h:50
 msgid "Description"
@@ -609,9 +498,7 @@ msgstr "Режимы _экрана"
 msgid ""
 "Whether the image-manipulating modes should be allowed to operate on an "
 "image of your desktop."
-msgstr ""
-"Разрешено ли хранителям экрана, управляющим изображениями, работать с "
-"изображением вашего рабочего стола."
+msgstr "Разрешено ли хранителям экрана, управляющим изображениями, работать с изображением вашего рабочего стола."
 
 #: ../driver/xscreensaver-demo.glade2.in.h:53
 msgid "Grab Desktop _Images"
@@ -621,9 +508,7 @@ msgstr "Захватывать _изображения с рабочего ст
 msgid ""
 "Whether the image-manipulating modes should operate on images captured from "
 "the system's video input (if there is one.)"
-msgstr ""
-"Должны ли хранители экрана, управляющие изображениями, работать с "
-"изображениями, захваченными с системного видеовхода (если таковой имеется)."
+msgstr "Должны ли хранители экрана, управляющие изображениями, работать с изображениями, захваченными с системного видеовхода (если таковой имеется)."
 
 #: ../driver/xscreensaver-demo.glade2.in.h:55
 msgid "Grab _Video Frames"
@@ -631,21 +516,17 @@ msgstr "Захватывать кадры _видео"
 
 #: ../driver/xscreensaver-demo.glade2.in.h:56
 msgid "Whether the image-manipulating modes should load image files."
-msgstr ""
-"Должны ли хранители экрана, управляющие изображениями, загружать файлы "
-"изображений с диска."
+msgstr "Должны ли хранители экрана, управляющие изображениями, загружать файлы изображений с диска."
 
 #: ../driver/xscreensaver-demo.glade2.in.h:57
 msgid "Choose _Random Image:"
-msgstr "Выбирать случайное изображение:"
+msgstr "Выбрать _случайное изображение:"
 
 #: ../driver/xscreensaver-demo.glade2.in.h:58
 msgid ""
 "The local directory, RSS feed or Atom feed from which images will be "
 "randomly chosen."
-msgstr ""
-"Локальный каталог, канал RSS или Atom, из которого случайным образом будут "
-"выбираться изображения."
+msgstr "Локальный каталог, канал RSS или Atom, из которого случайным образом будут выбираться изображения."
 
 #: ../driver/xscreensaver-demo.glade2.in.h:59
 msgid "_Browse"
@@ -657,13 +538,11 @@ msgstr "Локальный каталог или URL канала RSS."
 
 #: ../driver/xscreensaver-demo.glade2.in.h:61
 msgid "Image Manipulation"
-msgstr "УпÑ\80авление изображениями"
+msgstr "Ð\9cанипÑ\83лÑ\8fÑ\86иÑ\8f изображениями"
 
 #: ../driver/xscreensaver-demo.glade2.in.h:62
 msgid "Text-displaying modes will display the text typed here."
-msgstr ""
-"Хранитель экрана, управляющий текстом, будет отображать набранный здесь "
-"текст."
+msgstr "Хранитель экрана, управляющий текстом, будет отображать набранный здесь текст."
 
 #: ../driver/xscreensaver-demo.glade2.in.h:63
 msgid "_Text"
@@ -671,9 +550,7 @@ msgstr "_Текст"
 
 #: ../driver/xscreensaver-demo.glade2.in.h:64
 msgid "Text-displaying modes will display the contents of this file."
-msgstr ""
-"Хранитель экрана, управляющий текстом, будет отображать содержимое данного "
-"файла."
+msgstr "Хранитель экрана, управляющий текстом, будет отображать содержимое данного файла."
 
 #: ../driver/xscreensaver-demo.glade2.in.h:65
 msgid "Text _file"
@@ -681,9 +558,7 @@ msgstr "Текстовый _файл"
 
 #: ../driver/xscreensaver-demo.glade2.in.h:66
 msgid "Text-displaying modes will display the output of this program."
-msgstr ""
-"Хранитель экрана, управляющий текстом, будет отображать вывод данной "
-"программы."
+msgstr "Хранитель экрана, управляющий текстом, будет отображать вывод данной программы."
 
 #: ../driver/xscreensaver-demo.glade2.in.h:67
 msgid "_Program"
@@ -692,19 +567,16 @@ msgstr "_Программа"
 #: ../driver/xscreensaver-demo.glade2.in.h:68
 msgid ""
 "Text-displaying modes will display the contents of this URL (HTML or RSS)."
-msgstr ""
-"Хранитель экрана, управляющий текстом, будет отображать содержимое данного "
-"URL (HTML или RSS)."
+msgstr "Хранитель экрана, управляющий текстом, будет отображать содержимое данного URL (HTML или RSS)."
 
 #: ../driver/xscreensaver-demo.glade2.in.h:69
 msgid "_URL"
-msgstr ""
+msgstr "_URL"
 
 #: ../driver/xscreensaver-demo.glade2.in.h:70
-msgid "Text-displaying modes will display the local host name, date, and time."
-msgstr ""
-"Хранитель экрана, управляющий текстом, будет отображать локальное имя хоста, "
-"дату и время."
+msgid ""
+"Text-displaying modes will display the local host name, date, and time."
+msgstr "Хранитель экрана, управляющий текстом, будет отображать локальное имя хоста, дату и время."
 
 #: ../driver/xscreensaver-demo.glade2.in.h:71
 msgid "_Host Name and Time"
@@ -712,13 +584,11 @@ msgstr "_Имя хоста и время"
 
 #: ../driver/xscreensaver-demo.glade2.in.h:72
 msgid "Text Manipulation"
-msgstr "УпÑ\80авление текстом"
+msgstr "Ð\9cанипÑ\83лÑ\8fÑ\86иÑ\8f текстом"
 
 #: ../driver/xscreensaver-demo.glade2.in.h:73
 msgid "Whether the monitor should be powered down after a while."
-msgstr ""
-"Должен ли монитор снижать энергопотребление или отключаться через какое-то "
-"время."
+msgstr "Должен ли монитор снижать энергопотребление или отключаться через какое-то время."
 
 #: ../driver/xscreensaver-demo.glade2.in.h:74
 msgid "_Power Management Enabled"
@@ -726,11 +596,11 @@ msgstr "_Управление питанием включено"
 
 #: ../driver/xscreensaver-demo.glade2.in.h:75
 msgid "Stand_by After"
-msgstr "Режим Standby через"
+msgstr "Режим _ожидания через"
 
 #: ../driver/xscreensaver-demo.glade2.in.h:76
 msgid "Sus_pend After"
-msgstr "Режим Suspend через"
+msgstr "Режим _приостановки через"
 
 #: ../driver/xscreensaver-demo.glade2.in.h:77
 msgid "_Off After"
@@ -746,19 +616,17 @@ msgstr "Время до перехода монитора в режим энер
 
 #: ../driver/xscreensaver-demo.glade2.in.h:80
 msgid "How long until the monitor goes completely black."
-msgstr "Время, через которое монитор начнет показывать \"черный экран\"."
+msgstr "Время, через которое монитор начнет показывать \"чёрный экран\"."
 
 #: ../driver/xscreensaver-demo.glade2.in.h:81
 msgid ""
-"Whether the monitor should be powered off immediately in \"Blank Screen Only"
-"\" mode, regardless of the above power-management timeouts."
-msgstr ""
-"Нужно ли сразу же выключать монитор в режиме \"Только пустой экран\", "
-"независимо от вышеперечисленных настроек управления питанием."
+"Whether the monitor should be powered off immediately in \"Blank Screen "
+"Only\" mode, regardless of the above power-management timeouts."
+msgstr "Нужно ли сразу же выключать монитор в режиме \"Погасить только экран\", независимо от вышеперечисленных настроек управления питанием."
 
 #: ../driver/xscreensaver-demo.glade2.in.h:82
 msgid "_Quick Power-off in Blank Only Mode"
-msgstr "_Ð\91Ñ\8bÑ\81Ñ\82Ñ\80ое Ð¾Ñ\82клÑ\8eÑ\87ение Ð¿Ð¸Ñ\82аниÑ\8f Ð² Ñ\80ежиме Ð¿Ñ\83Ñ\81Ñ\82ого экрана"
+msgstr "_Ð\91Ñ\8bÑ\81Ñ\82Ñ\80ое Ð¾Ñ\82клÑ\8eÑ\87ение Ð¿Ð¸Ñ\82аниÑ\8f Ð² Ñ\80ежиме Ð³Ð°Ñ\88ениÑ\8f экрана"
 
 #: ../driver/xscreensaver-demo.glade2.in.h:83
 msgid "Display Power Management"
@@ -768,25 +636,21 @@ msgstr "Управление питанием монитора"
 msgid ""
 "Whether the screen should slowly fade to black when the screen saver "
 "activates."
-msgstr ""
-"Должен ли экран плавно \"снижать яркость\", \"гаснуть\" до черного при "
-"активации хранителя экрана."
+msgstr "Должен ли экран плавно \"снижать яркость\", \"гаснуть\" до чёрного при активации хранителя экрана."
 
 #: ../driver/xscreensaver-demo.glade2.in.h:85
 msgid "Fade to Black when _Blanking"
-msgstr "Переход к черному при _активации"
+msgstr "Переход к чёрному при _гашении"
 
 #: ../driver/xscreensaver-demo.glade2.in.h:86
 msgid ""
 "Whether the screen should slowly fade in from black when the screen saver "
 "deactivates."
-msgstr ""
-"Должен ли экран плавно \"набирать яркость\" от черного до нормального при "
-"деактивации хранителя экрана."
+msgstr "Должен ли экран плавно \"набирать яркость\" от чёрного до нормального при деактивации хранителя экрана."
 
 #: ../driver/xscreensaver-demo.glade2.in.h:87
 msgid "Fade from Black When _Unblanking"
-msgstr "Переход от черного при _деактивации"
+msgstr "Переход от чёрного при _отмене гашения"
 
 #: ../driver/xscreensaver-demo.glade2.in.h:88
 msgid "F_ade Duration"
@@ -794,7 +658,7 @@ msgstr "_Продолжительность перехода"
 
 #: ../driver/xscreensaver-demo.glade2.in.h:89
 msgid "How long it should take for the screen to fade in and out."
-msgstr "Как долго должен длиться переход \"к черному\" или \"от черного\"."
+msgstr "Как долго должен длиться переход \"к чёрному\" или \"от чёрного\"."
 
 #: ../driver/xscreensaver-demo.glade2.in.h:90
 msgid "seconds"
@@ -804,9 +668,7 @@ msgstr "секунд(ы)"
 msgid ""
 "Whether to install a private colormap when running in 8-bit mode on the "
 "default Visual."
-msgstr ""
-"Устанавливать ли собственную цветовую палитру при работе с 8-битным цветом в "
-"оптическом классе \"по умолчанию\"."
+msgstr "Устанавливать ли собственную цветовую палитру при работе с 8-битным цветом в оптическом классе \"по умолчанию\"."
 
 #: ../driver/xscreensaver-demo.glade2.in.h:92
 msgid "Install _Colormap"
@@ -814,7 +676,7 @@ msgstr "Устанавливать _цветовую палитру"
 
 #: ../driver/xscreensaver-demo.glade2.in.h:93
 msgid "Fading and Colormaps"
-msgstr "Ð\9fеÑ\80еÑ\85од и цветовые палитры"
+msgstr "Ð\97аÑ\82Ñ\83Ñ\85ание и цветовые палитры"
 
 #: ../driver/xscreensaver-demo.glade2.in.h:94
 msgid "_Advanced"
@@ -822,7 +684,7 @@ msgstr "Рас_ширенные"
 
 #: ../driver/xscreensaver-demo.glade2.in.h:95
 msgid "dialog1"
-msgstr ""
+msgstr "диалог1"
 
 #: ../driver/xscreensaver-demo.glade2.in.h:96
 msgid "_Advanced >>"
@@ -834,7 +696,7 @@ msgstr "_Стандартные <<"
 
 #: ../driver/xscreensaver-demo.glade2.in.h:98
 msgid "_Reset to Defaults"
-msgstr "_Ð\9fо умолчанию"
+msgstr "_СбÑ\80оÑ\81 Ðº Ð¿Ð¾-умолчанию"
 
 #: ../driver/xscreensaver-demo.glade2.in.h:99
 msgid "Standard"
@@ -846,7 +708,7 @@ msgstr "_Командная строка:"
 
 #: ../driver/xscreensaver-demo.glade2.in.h:101
 msgid "_Visual:"
-msgstr "О_птический класс:"
+msgstr "_Видимое:"
 
 #: ../driver/xscreensaver-demo.glade2.in.h:103
 msgid "Best"
@@ -866,35 +728,36 @@ msgstr "GL"
 
 #: ../driver/xscreensaver-demo.glade2.in.h:107
 msgid "TrueColor"
-msgstr "TrueColor"
+msgstr "Истинный цвет"
 
 #: ../driver/xscreensaver-demo.glade2.in.h:108
 msgid "PseudoColor"
-msgstr "PseudoColor"
+msgstr "Псевдо цвет"
 
 #: ../driver/xscreensaver-demo.glade2.in.h:109
 msgid "StaticGray"
-msgstr "StaticGray"
+msgstr "Статический серый"
 
 #: ../driver/xscreensaver-demo.glade2.in.h:110
 msgid "GrayScale"
-msgstr "GrayScale"
+msgstr "Градации серого"
 
 #: ../driver/xscreensaver-demo.glade2.in.h:111
 msgid "DirectColor"
-msgstr "DirectColor"
+msgstr "Прямой цвет"
 
 #: ../driver/xscreensaver-demo.glade2.in.h:112
 msgid "Color"
-msgstr "Color"
+msgstr "Цвет"
 
 #: ../driver/xscreensaver-demo.glade2.in.h:113
 msgid "Gray"
-msgstr "Gray"
+msgstr "Серый"
 
 #: ../driver/xscreensaver-demo.glade2.in.h:114
+#: ../hacks/config/razzledazzle.xml.h:8
 msgid "Mono"
-msgstr "Mono"
+msgstr "Моно"
 
 #: ../driver/xscreensaver-demo.glade2.in.h:115
 msgid "Advanced"
@@ -906,7 +769,7 @@ msgstr "Настройки"
 
 #: ../hacks/config/abstractile.xml.h:1
 msgid "Abstractile"
-msgstr ""
+msgstr "Абстрактный"
 
 #: ../hacks/config/abstractile.xml.h:2 ../hacks/config/anemone.xml.h:2
 #: ../hacks/config/apollonian.xml.h:13 ../hacks/config/atlantis.xml.h:5
@@ -915,30 +778,33 @@ msgstr ""
 #: ../hacks/config/boxed.xml.h:5 ../hacks/config/carousel.xml.h:5
 #: ../hacks/config/ccurve.xml.h:5 ../hacks/config/circuit.xml.h:8
 #: ../hacks/config/cityflow.xml.h:9 ../hacks/config/companioncube.xml.h:5
-#: ../hacks/config/cube21.xml.h:8 ../hacks/config/cubenetic.xml.h:17
-#: ../hacks/config/cubestack.xml.h:5 ../hacks/config/cubestorm.xml.h:5
-#: ../hacks/config/cubetwist.xml.h:5 ../hacks/config/cubicgrid.xml.h:5
-#: ../hacks/config/dangerball.xml.h:5 ../hacks/config/discoball.xml.h:5
-#: ../hacks/config/dymaxionmap.xml.h:5 ../hacks/config/energystream.xml.h:2
-#: ../hacks/config/eruption.xml.h:10 ../hacks/config/fliptext.xml.h:5
+#: ../hacks/config/crumbler.xml.h:5 ../hacks/config/cube21.xml.h:8
+#: ../hacks/config/cubenetic.xml.h:17 ../hacks/config/cubestack.xml.h:5
+#: ../hacks/config/cubestorm.xml.h:5 ../hacks/config/cubetwist.xml.h:5
+#: ../hacks/config/cubicgrid.xml.h:5 ../hacks/config/dangerball.xml.h:5
+#: ../hacks/config/discoball.xml.h:5 ../hacks/config/dymaxionmap.xml.h:5
+#: ../hacks/config/energystream.xml.h:2 ../hacks/config/eruption.xml.h:10
+#: ../hacks/config/esper.xml.h:5 ../hacks/config/fliptext.xml.h:5
 #: ../hacks/config/flyingtoasters.xml.h:5 ../hacks/config/fontglide.xml.h:5
 #: ../hacks/config/fuzzyflakes.xml.h:5 ../hacks/config/gears.xml.h:5
 #: ../hacks/config/geodesic.xml.h:14 ../hacks/config/gflux.xml.h:5
 #: ../hacks/config/glcells.xml.h:25 ../hacks/config/glknots.xml.h:5
 #: ../hacks/config/glmatrix.xml.h:8 ../hacks/config/glsnake.xml.h:11
-#: ../hacks/config/goop.xml.h:5 ../hacks/config/hexadrop.xml.h:5
-#: ../hacks/config/hexstrut.xml.h:5 ../hacks/config/hilbert.xml.h:8
-#: ../hacks/config/hydrostat.xml.h:5 ../hacks/config/hyperball.xml.h:9
-#: ../hacks/config/hypercube.xml.h:9 ../hacks/config/hypnowheel.xml.h:2
-#: ../hacks/config/interference.xml.h:5 ../hacks/config/jigglypuff.xml.h:14
-#: ../hacks/config/jigsaw.xml.h:5 ../hacks/config/juggle.xml.h:5
-#: ../hacks/config/juggler3d.xml.h:5 ../hacks/config/kaleidocycle.xml.h:8
-#: ../hacks/config/moebiusgears.xml.h:5 ../hacks/config/penetrate.xml.h:2
-#: ../hacks/config/petri.xml.h:16 ../hacks/config/phosphor.xml.h:6
-#: ../hacks/config/photopile.xml.h:12 ../hacks/config/piecewise.xml.h:8
-#: ../hacks/config/pinion.xml.h:5 ../hacks/config/polyhedra.xml.h:5
-#: ../hacks/config/pong.xml.h:2 ../hacks/config/pyro.xml.h:2
-#: ../hacks/config/quasicrystal.xml.h:5 ../hacks/config/raverhoop.xml.h:11
+#: ../hacks/config/goop.xml.h:5 ../hacks/config/handsy.xml.h:5
+#: ../hacks/config/hexadrop.xml.h:5 ../hacks/config/hexstrut.xml.h:5
+#: ../hacks/config/hilbert.xml.h:8 ../hacks/config/hydrostat.xml.h:5
+#: ../hacks/config/hyperball.xml.h:9 ../hacks/config/hypercube.xml.h:9
+#: ../hacks/config/hypnowheel.xml.h:2 ../hacks/config/interference.xml.h:5
+#: ../hacks/config/jigglypuff.xml.h:14 ../hacks/config/jigsaw.xml.h:5
+#: ../hacks/config/juggle.xml.h:5 ../hacks/config/juggler3d.xml.h:5
+#: ../hacks/config/kaleidocycle.xml.h:8 ../hacks/config/maze3d.xml.h:2
+#: ../hacks/config/moebiusgears.xml.h:5 ../hacks/config/peepers.xml.h:5
+#: ../hacks/config/penetrate.xml.h:2 ../hacks/config/petri.xml.h:16
+#: ../hacks/config/phosphor.xml.h:6 ../hacks/config/photopile.xml.h:12
+#: ../hacks/config/piecewise.xml.h:8 ../hacks/config/pinion.xml.h:5
+#: ../hacks/config/polyhedra.xml.h:5 ../hacks/config/pong.xml.h:2
+#: ../hacks/config/pyro.xml.h:2 ../hacks/config/quasicrystal.xml.h:5
+#: ../hacks/config/raverhoop.xml.h:11 ../hacks/config/razzledazzle.xml.h:5
 #: ../hacks/config/rd-bomb.xml.h:2 ../hacks/config/rdbomb.xml.h:2
 #: ../hacks/config/rocks.xml.h:8 ../hacks/config/rubik.xml.h:6
 #: ../hacks/config/rubikblocks.xml.h:8 ../hacks/config/skytentacles.xml.h:15
@@ -956,17 +822,20 @@ msgstr "Медленно"
 #: ../hacks/config/abstractile.xml.h:3 ../hacks/config/anemone.xml.h:3
 #: ../hacks/config/apollonian.xml.h:14 ../hacks/config/attraction.xml.h:25
 #: ../hacks/config/boing.xml.h:6 ../hacks/config/boxed.xml.h:6
-#: ../hacks/config/cubestorm.xml.h:6 ../hacks/config/cubicgrid.xml.h:6
-#: ../hacks/config/discoball.xml.h:6 ../hacks/config/energystream.xml.h:3
+#: ../hacks/config/crumbler.xml.h:6 ../hacks/config/cubestorm.xml.h:6
+#: ../hacks/config/cubicgrid.xml.h:6 ../hacks/config/discoball.xml.h:6
+#: ../hacks/config/energystream.xml.h:3 ../hacks/config/esper.xml.h:6
 #: ../hacks/config/fliptext.xml.h:6 ../hacks/config/fontglide.xml.h:6
 #: ../hacks/config/fuzzyflakes.xml.h:6 ../hacks/config/gears.xml.h:6
 #: ../hacks/config/glknots.xml.h:6 ../hacks/config/goop.xml.h:6
-#: ../hacks/config/hexadrop.xml.h:6 ../hacks/config/hexstrut.xml.h:6
-#: ../hacks/config/hilbert.xml.h:11 ../hacks/config/hypnowheel.xml.h:5
-#: ../hacks/config/jigsaw.xml.h:6 ../hacks/config/juggle.xml.h:6
-#: ../hacks/config/juggler3d.xml.h:6 ../hacks/config/kaleidocycle.xml.h:9
-#: ../hacks/config/moebiusgears.xml.h:6 ../hacks/config/polyhedra.xml.h:6
-#: ../hacks/config/quasicrystal.xml.h:6 ../hacks/config/skytentacles.xml.h:18
+#: ../hacks/config/handsy.xml.h:6 ../hacks/config/hexadrop.xml.h:6
+#: ../hacks/config/hexstrut.xml.h:6 ../hacks/config/hilbert.xml.h:11
+#: ../hacks/config/hypnowheel.xml.h:5 ../hacks/config/jigsaw.xml.h:6
+#: ../hacks/config/juggle.xml.h:6 ../hacks/config/juggler3d.xml.h:6
+#: ../hacks/config/kaleidocycle.xml.h:9 ../hacks/config/maze3d.xml.h:3
+#: ../hacks/config/moebiusgears.xml.h:6 ../hacks/config/peepers.xml.h:6
+#: ../hacks/config/polyhedra.xml.h:6 ../hacks/config/quasicrystal.xml.h:6
+#: ../hacks/config/razzledazzle.xml.h:6 ../hacks/config/skytentacles.xml.h:18
 #: ../hacks/config/sonar.xml.h:6 ../hacks/config/splitflap.xml.h:6
 #: ../hacks/config/tessellimage.xml.h:6
 #: ../hacks/config/unknownpleasures.xml.h:9 ../hacks/config/vigilance.xml.h:6
@@ -981,30 +850,33 @@ msgstr "Скорость"
 #: ../hacks/config/boxed.xml.h:7 ../hacks/config/carousel.xml.h:7
 #: ../hacks/config/ccurve.xml.h:7 ../hacks/config/circuit.xml.h:10
 #: ../hacks/config/cityflow.xml.h:11 ../hacks/config/companioncube.xml.h:7
-#: ../hacks/config/cube21.xml.h:10 ../hacks/config/cubenetic.xml.h:19
-#: ../hacks/config/cubestack.xml.h:7 ../hacks/config/cubestorm.xml.h:7
-#: ../hacks/config/cubetwist.xml.h:7 ../hacks/config/cubicgrid.xml.h:7
-#: ../hacks/config/dangerball.xml.h:7 ../hacks/config/discoball.xml.h:7
-#: ../hacks/config/dymaxionmap.xml.h:7 ../hacks/config/energystream.xml.h:4
-#: ../hacks/config/eruption.xml.h:12 ../hacks/config/fliptext.xml.h:7
+#: ../hacks/config/crumbler.xml.h:7 ../hacks/config/cube21.xml.h:10
+#: ../hacks/config/cubenetic.xml.h:19 ../hacks/config/cubestack.xml.h:7
+#: ../hacks/config/cubestorm.xml.h:7 ../hacks/config/cubetwist.xml.h:7
+#: ../hacks/config/cubicgrid.xml.h:7 ../hacks/config/dangerball.xml.h:7
+#: ../hacks/config/discoball.xml.h:7 ../hacks/config/dymaxionmap.xml.h:7
+#: ../hacks/config/energystream.xml.h:4 ../hacks/config/eruption.xml.h:12
+#: ../hacks/config/esper.xml.h:7 ../hacks/config/fliptext.xml.h:7
 #: ../hacks/config/flyingtoasters.xml.h:7 ../hacks/config/fontglide.xml.h:7
 #: ../hacks/config/fuzzyflakes.xml.h:7 ../hacks/config/gears.xml.h:7
 #: ../hacks/config/geodesic.xml.h:16 ../hacks/config/gflux.xml.h:7
 #: ../hacks/config/glknots.xml.h:7 ../hacks/config/glmatrix.xml.h:10
 #: ../hacks/config/glsnake.xml.h:13 ../hacks/config/goop.xml.h:7
-#: ../hacks/config/hexadrop.xml.h:7 ../hacks/config/hexstrut.xml.h:7
-#: ../hacks/config/hilbert.xml.h:10 ../hacks/config/hydrostat.xml.h:7
-#: ../hacks/config/hyperball.xml.h:11 ../hacks/config/hypercube.xml.h:11
-#: ../hacks/config/hypnowheel.xml.h:4 ../hacks/config/interference.xml.h:7
-#: ../hacks/config/jigglypuff.xml.h:16 ../hacks/config/jigsaw.xml.h:7
-#: ../hacks/config/juggle.xml.h:7 ../hacks/config/juggler3d.xml.h:7
-#: ../hacks/config/kaleidocycle.xml.h:10 ../hacks/config/moebiusgears.xml.h:7
-#: ../hacks/config/penetrate.xml.h:4 ../hacks/config/petri.xml.h:18
-#: ../hacks/config/phosphor.xml.h:8 ../hacks/config/photopile.xml.h:14
-#: ../hacks/config/piecewise.xml.h:10 ../hacks/config/pinion.xml.h:7
-#: ../hacks/config/polyhedra.xml.h:7 ../hacks/config/pong.xml.h:4
-#: ../hacks/config/pyro.xml.h:4 ../hacks/config/quasicrystal.xml.h:7
-#: ../hacks/config/raverhoop.xml.h:13 ../hacks/config/rd-bomb.xml.h:4
+#: ../hacks/config/handsy.xml.h:7 ../hacks/config/hexadrop.xml.h:7
+#: ../hacks/config/hexstrut.xml.h:7 ../hacks/config/hilbert.xml.h:10
+#: ../hacks/config/hydrostat.xml.h:7 ../hacks/config/hyperball.xml.h:11
+#: ../hacks/config/hypercube.xml.h:11 ../hacks/config/hypnowheel.xml.h:4
+#: ../hacks/config/interference.xml.h:7 ../hacks/config/jigglypuff.xml.h:16
+#: ../hacks/config/jigsaw.xml.h:7 ../hacks/config/juggle.xml.h:7
+#: ../hacks/config/juggler3d.xml.h:7 ../hacks/config/kaleidocycle.xml.h:10
+#: ../hacks/config/maze3d.xml.h:4 ../hacks/config/moebiusgears.xml.h:7
+#: ../hacks/config/peepers.xml.h:7 ../hacks/config/penetrate.xml.h:4
+#: ../hacks/config/petri.xml.h:18 ../hacks/config/phosphor.xml.h:8
+#: ../hacks/config/photopile.xml.h:14 ../hacks/config/piecewise.xml.h:10
+#: ../hacks/config/pinion.xml.h:7 ../hacks/config/polyhedra.xml.h:7
+#: ../hacks/config/pong.xml.h:4 ../hacks/config/pyro.xml.h:4
+#: ../hacks/config/quasicrystal.xml.h:7 ../hacks/config/raverhoop.xml.h:13
+#: ../hacks/config/razzledazzle.xml.h:7 ../hacks/config/rd-bomb.xml.h:4
 #: ../hacks/config/rdbomb.xml.h:4 ../hacks/config/rocks.xml.h:10
 #: ../hacks/config/rubik.xml.h:8 ../hacks/config/rubikblocks.xml.h:10
 #: ../hacks/config/skytentacles.xml.h:17 ../hacks/config/slidescreen.xml.h:13
@@ -1078,11 +950,9 @@ msgstr "Черепичные плитки"
 #. #### -right3d [Red]
 #. #### -cycle
 #. <boolean id="shm" _label="Use shared memory" arg-unset="-no-shm"/>
-#.
 #. <number id="ncolors" type="slider" arg="-ncolors %"
 #. _label="Number of colors" _low-label="Two" _high-label="Many"
 #. low="2" high="255" default="64"/>
-#.
 #. #### -anim-step-size [3]
 #. #### -3d
 #. #### -font []
@@ -1106,57 +976,60 @@ msgstr "Черепичные плитки"
 #: ../hacks/config/cityflow.xml.h:17 ../hacks/config/cloudlife.xml.h:12
 #: ../hacks/config/companioncube.xml.h:14 ../hacks/config/compass.xml.h:5
 #: ../hacks/config/coral.xml.h:14 ../hacks/config/crackberg.xml.h:18
-#: ../hacks/config/critical.xml.h:8 ../hacks/config/crystal.xml.h:15
-#: ../hacks/config/cube21.xml.h:26 ../hacks/config/cubenetic.xml.h:26
-#: ../hacks/config/cubestack.xml.h:16 ../hacks/config/cubestorm.xml.h:17
-#: ../hacks/config/cubetwist.xml.h:18 ../hacks/config/cubicgrid.xml.h:12
-#: ../hacks/config/cwaves.xml.h:9 ../hacks/config/cynosure.xml.h:11
-#: ../hacks/config/dangerball.xml.h:14 ../hacks/config/decayscreen.xml.h:23
-#: ../hacks/config/deco.xml.h:14 ../hacks/config/deluxe.xml.h:16
-#: ../hacks/config/demon.xml.h:15 ../hacks/config/discoball.xml.h:14
-#: ../hacks/config/discrete.xml.h:11 ../hacks/config/distort.xml.h:22
-#: ../hacks/config/dnalogo.xml.h:10 ../hacks/config/drift.xml.h:11
-#: ../hacks/config/dymaxionmap.xml.h:14 ../hacks/config/endgame.xml.h:6
-#: ../hacks/config/energystream.xml.h:7 ../hacks/config/engine.xml.h:19
-#: ../hacks/config/epicycle.xml.h:14 ../hacks/config/eruption.xml.h:22
+#: ../hacks/config/critical.xml.h:8 ../hacks/config/crumbler.xml.h:15
+#: ../hacks/config/crystal.xml.h:15 ../hacks/config/cube21.xml.h:26
+#: ../hacks/config/cubenetic.xml.h:26 ../hacks/config/cubestack.xml.h:16
+#: ../hacks/config/cubestorm.xml.h:20 ../hacks/config/cubetwist.xml.h:18
+#: ../hacks/config/cubicgrid.xml.h:12 ../hacks/config/cwaves.xml.h:9
+#: ../hacks/config/cynosure.xml.h:11 ../hacks/config/dangerball.xml.h:14
+#: ../hacks/config/decayscreen.xml.h:23 ../hacks/config/deco.xml.h:14
+#: ../hacks/config/deluxe.xml.h:16 ../hacks/config/demon.xml.h:15
+#: ../hacks/config/discoball.xml.h:14 ../hacks/config/discrete.xml.h:11
+#: ../hacks/config/distort.xml.h:22 ../hacks/config/dnalogo.xml.h:9
+#: ../hacks/config/drift.xml.h:11 ../hacks/config/dymaxionmap.xml.h:16
+#: ../hacks/config/endgame.xml.h:6 ../hacks/config/energystream.xml.h:7
+#: ../hacks/config/engine.xml.h:19 ../hacks/config/epicycle.xml.h:14
+#: ../hacks/config/eruption.xml.h:22 ../hacks/config/esper.xml.h:9
 #: ../hacks/config/euler2d.xml.h:29 ../hacks/config/extrusion.xml.h:17
 #: ../hacks/config/fadeplot.xml.h:14 ../hacks/config/fiberlamp.xml.h:11
-#: ../hacks/config/fireworkx.xml.h:10 ../hacks/config/flag.xml.h:13
-#: ../hacks/config/flame.xml.h:14 ../hacks/config/flipflop.xml.h:14
-#: ../hacks/config/flipscreen3d.xml.h:6 ../hacks/config/fliptext.xml.h:15
-#: ../hacks/config/flow.xml.h:21 ../hacks/config/fluidballs.xml.h:22
-#: ../hacks/config/flurry.xml.h:2 ../hacks/config/flyingtoasters.xml.h:14
-#: ../hacks/config/fontglide.xml.h:16 ../hacks/config/forest.xml.h:8
-#: ../hacks/config/fuzzyflakes.xml.h:12 ../hacks/config/galaxy.xml.h:13
-#: ../hacks/config/gears.xml.h:14 ../hacks/config/geodesic.xml.h:10
-#: ../hacks/config/geodesicgears.xml.h:13 ../hacks/config/gflux.xml.h:19
-#: ../hacks/config/glblur.xml.h:17 ../hacks/config/glcells.xml.h:32
-#: ../hacks/config/gleidescope.xml.h:14 ../hacks/config/glforestfire.xml.h:16
-#: ../hacks/config/glhanoi.xml.h:16 ../hacks/config/glknots.xml.h:24
-#: ../hacks/config/glmatrix.xml.h:20 ../hacks/config/glplanet.xml.h:13
-#: ../hacks/config/glschool.xml.h:17 ../hacks/config/glslideshow.xml.h:20
-#: ../hacks/config/glsnake.xml.h:18 ../hacks/config/gltext.xml.h:19
-#: ../hacks/config/goop.xml.h:13 ../hacks/config/grav.xml.h:12
-#: ../hacks/config/greynetic.xml.h:6 ../hacks/config/halftone.xml.h:17
-#: ../hacks/config/halo.xml.h:14 ../hacks/config/helix.xml.h:8
+#: ../hacks/config/filmleader.xml.h:9 ../hacks/config/fireworkx.xml.h:10
+#: ../hacks/config/flag.xml.h:13 ../hacks/config/flame.xml.h:14
+#: ../hacks/config/flipflop.xml.h:14 ../hacks/config/flipscreen3d.xml.h:6
+#: ../hacks/config/fliptext.xml.h:15 ../hacks/config/flow.xml.h:21
+#: ../hacks/config/fluidballs.xml.h:22 ../hacks/config/flurry.xml.h:2
+#: ../hacks/config/flyingtoasters.xml.h:14 ../hacks/config/fontglide.xml.h:16
+#: ../hacks/config/forest.xml.h:8 ../hacks/config/fuzzyflakes.xml.h:12
+#: ../hacks/config/galaxy.xml.h:13 ../hacks/config/gears.xml.h:14
+#: ../hacks/config/geodesic.xml.h:10 ../hacks/config/geodesicgears.xml.h:13
+#: ../hacks/config/gflux.xml.h:19 ../hacks/config/glblur.xml.h:17
+#: ../hacks/config/glcells.xml.h:32 ../hacks/config/gleidescope.xml.h:14
+#: ../hacks/config/glforestfire.xml.h:16 ../hacks/config/glhanoi.xml.h:16
+#: ../hacks/config/glknots.xml.h:24 ../hacks/config/glmatrix.xml.h:20
+#: ../hacks/config/glplanet.xml.h:13 ../hacks/config/glschool.xml.h:17
+#: ../hacks/config/glslideshow.xml.h:20 ../hacks/config/glsnake.xml.h:18
+#: ../hacks/config/gltext.xml.h:19 ../hacks/config/goop.xml.h:13
+#: ../hacks/config/grav.xml.h:12 ../hacks/config/greynetic.xml.h:6
+#: ../hacks/config/halftone.xml.h:17 ../hacks/config/halo.xml.h:14
+#: ../hacks/config/handsy.xml.h:23 ../hacks/config/helix.xml.h:8
 #: ../hacks/config/hexadrop.xml.h:22 ../hacks/config/hexstrut.xml.h:17
 #: ../hacks/config/hilbert.xml.h:20 ../hacks/config/hopalong.xml.h:23
 #: ../hacks/config/hydrostat.xml.h:29 ../hacks/config/hyperball.xml.h:8
 #: ../hacks/config/hypercube.xml.h:8 ../hacks/config/hypertorus.xml.h:5
 #: ../hacks/config/hypnowheel.xml.h:8 ../hacks/config/ifs.xml.h:68
 #: ../hacks/config/imsmap.xml.h:18 ../hacks/config/interaggregate.xml.h:8
-#: ../hacks/config/interference.xml.h:21 ../hacks/config/intermomentary.xml.h:8
-#: ../hacks/config/jigglypuff.xml.h:10 ../hacks/config/jigsaw.xml.h:15
-#: ../hacks/config/juggle.xml.h:21 ../hacks/config/juggler3d.xml.h:21
-#: ../hacks/config/julia.xml.h:14 ../hacks/config/kaleidescope.xml.h:13
-#: ../hacks/config/kaleidocycle.xml.h:21 ../hacks/config/klein.xml.h:45
-#: ../hacks/config/kumppa.xml.h:8 ../hacks/config/lament.xml.h:7
-#: ../hacks/config/laser.xml.h:12 ../hacks/config/lavalite.xml.h:16
-#: ../hacks/config/lcdscrub.xml.h:7 ../hacks/config/lightning.xml.h:8
-#: ../hacks/config/lisa.xml.h:16 ../hacks/config/lissie.xml.h:15
-#: ../hacks/config/lmorph.xml.h:17 ../hacks/config/lockward.xml.h:9
-#: ../hacks/config/loop.xml.h:12 ../hacks/config/m6502.xml.h:6
-#: ../hacks/config/maze.xml.h:12 ../hacks/config/memscroller.xml.h:9
+#: ../hacks/config/interference.xml.h:21
+#: ../hacks/config/intermomentary.xml.h:8 ../hacks/config/jigglypuff.xml.h:10
+#: ../hacks/config/jigsaw.xml.h:15 ../hacks/config/juggle.xml.h:21
+#: ../hacks/config/juggler3d.xml.h:21 ../hacks/config/julia.xml.h:14
+#: ../hacks/config/kaleidescope.xml.h:13 ../hacks/config/kaleidocycle.xml.h:21
+#: ../hacks/config/klein.xml.h:45 ../hacks/config/kumppa.xml.h:8
+#: ../hacks/config/lament.xml.h:7 ../hacks/config/laser.xml.h:12
+#: ../hacks/config/lavalite.xml.h:16 ../hacks/config/lcdscrub.xml.h:7
+#: ../hacks/config/lightning.xml.h:8 ../hacks/config/lisa.xml.h:16
+#: ../hacks/config/lissie.xml.h:15 ../hacks/config/lmorph.xml.h:17
+#: ../hacks/config/lockward.xml.h:9 ../hacks/config/loop.xml.h:12
+#: ../hacks/config/m6502.xml.h:3 ../hacks/config/maze.xml.h:12
+#: ../hacks/config/maze3d.xml.h:10 ../hacks/config/memscroller.xml.h:9
 #: ../hacks/config/menger.xml.h:20 ../hacks/config/metaballs.xml.h:16
 #: ../hacks/config/mirrorblob.xml.h:25 ../hacks/config/mismunch.xml.h:13
 #: ../hacks/config/moebius.xml.h:7 ../hacks/config/moebiusgears.xml.h:14
@@ -1165,82 +1038,84 @@ msgstr "Черепичные плитки"
 #: ../hacks/config/mountain.xml.h:11 ../hacks/config/munch.xml.h:16
 #: ../hacks/config/nerverot.xml.h:21 ../hacks/config/noof.xml.h:5
 #: ../hacks/config/noseguy.xml.h:2 ../hacks/config/pacman.xml.h:6
-#: ../hacks/config/pedal.xml.h:9 ../hacks/config/penetrate.xml.h:8
-#: ../hacks/config/penrose.xml.h:12 ../hacks/config/petri.xml.h:5
-#: ../hacks/config/phosphor.xml.h:13 ../hacks/config/photopile.xml.h:22
-#: ../hacks/config/piecewise.xml.h:15 ../hacks/config/pinion.xml.h:16
-#: ../hacks/config/pipes.xml.h:20 ../hacks/config/polyhedra.xml.h:168
-#: ../hacks/config/polyominoes.xml.h:12 ../hacks/config/polytopes.xml.h:18
-#: ../hacks/config/pong.xml.h:9 ../hacks/config/popsquares.xml.h:21
+#: ../hacks/config/pedal.xml.h:9 ../hacks/config/peepers.xml.h:17
+#: ../hacks/config/penetrate.xml.h:8 ../hacks/config/penrose.xml.h:12
+#: ../hacks/config/petri.xml.h:5 ../hacks/config/phosphor.xml.h:13
+#: ../hacks/config/photopile.xml.h:22 ../hacks/config/piecewise.xml.h:15
+#: ../hacks/config/pinion.xml.h:16 ../hacks/config/pipes.xml.h:20
+#: ../hacks/config/polyhedra.xml.h:168 ../hacks/config/polyominoes.xml.h:12
+#: ../hacks/config/polytopes.xml.h:18 ../hacks/config/pong.xml.h:9
+#: ../hacks/config/popsquares.xml.h:21
 #: ../hacks/config/projectiveplane.xml.h:43 ../hacks/config/providence.xml.h:7
 #: ../hacks/config/pulsar.xml.h:14 ../hacks/config/pyro.xml.h:14
 #: ../hacks/config/qix.xml.h:24 ../hacks/config/quasicrystal.xml.h:13
 #: ../hacks/config/queens.xml.h:6 ../hacks/config/raverhoop.xml.h:20
-#: ../hacks/config/rd-bomb.xml.h:17 ../hacks/config/rdbomb.xml.h:17
-#: ../hacks/config/ripples.xml.h:18 ../hacks/config/rocks.xml.h:17
-#: ../hacks/config/romanboy.xml.h:41 ../hacks/config/rorschach.xml.h:11
-#: ../hacks/config/rotor.xml.h:13 ../hacks/config/rotzoomer.xml.h:15
-#: ../hacks/config/rubik.xml.h:11 ../hacks/config/rubikblocks.xml.h:20
-#: ../hacks/config/sballs.xml.h:16 ../hacks/config/shadebobs.xml.h:16
-#: ../hacks/config/sierpinski.xml.h:13 ../hacks/config/sierpinski3d.xml.h:10
-#: ../hacks/config/skytentacles.xml.h:25 ../hacks/config/slidescreen.xml.h:18
-#: ../hacks/config/slip.xml.h:13 ../hacks/config/sonar.xml.h:34
-#: ../hacks/config/speedmine.xml.h:17 ../hacks/config/sphere.xml.h:8
-#: ../hacks/config/spheremonics.xml.h:22 ../hacks/config/spiral.xml.h:11
-#: ../hacks/config/splitflap.xml.h:25 ../hacks/config/splodesic.xml.h:11
-#: ../hacks/config/spotlight.xml.h:11 ../hacks/config/sproingies.xml.h:9
-#: ../hacks/config/squiral.xml.h:17 ../hacks/config/stairs.xml.h:5
-#: ../hacks/config/starfish.xml.h:17 ../hacks/config/starwars.xml.h:15
-#: ../hacks/config/stonerview.xml.h:7 ../hacks/config/strange.xml.h:23
-#: ../hacks/config/substrate.xml.h:19 ../hacks/config/superquadrics.xml.h:13
-#: ../hacks/config/surfaces.xml.h:27 ../hacks/config/swirl.xml.h:11
-#: ../hacks/config/t3d.xml.h:15 ../hacks/config/tangram.xml.h:16
-#: ../hacks/config/tessellimage.xml.h:16 ../hacks/config/testx11.xml.h:2
-#: ../hacks/config/thornbird.xml.h:16 ../hacks/config/timetunnel.xml.h:8
-#: ../hacks/config/topblock.xml.h:24 ../hacks/config/triangle.xml.h:8
-#: ../hacks/config/tronbit.xml.h:11 ../hacks/config/truchet.xml.h:6
-#: ../hacks/config/twang.xml.h:18 ../hacks/config/unicrud.xml.h:10
-#: ../hacks/config/unknownpleasures.xml.h:14
-#: ../hacks/config/vermiculate.xml.h:5 ../hacks/config/vidwhacker.xml.h:6
-#: ../hacks/config/vines.xml.h:8 ../hacks/config/voronoi.xml.h:11
-#: ../hacks/config/wander.xml.h:13 ../hacks/config/webcollage.xml.h:11
-#: ../hacks/config/whirlwindwarp.xml.h:8 ../hacks/config/whirlygig.xml.h:31
-#: ../hacks/config/winduprobot.xml.h:22 ../hacks/config/worm.xml.h:11
-#: ../hacks/config/wormhole.xml.h:11 ../hacks/config/xanalogtv.xml.h:2
-#: ../hacks/config/xflame.xml.h:7 ../hacks/config/xjack.xml.h:6
-#: ../hacks/config/xlyap.xml.h:9 ../hacks/config/xmatrix.xml.h:21
-#: ../hacks/config/xrayswarm.xml.h:5 ../hacks/config/xspirograph.xml.h:9
-#: ../hacks/config/zoom.xml.h:15
+#: ../hacks/config/razzledazzle.xml.h:20 ../hacks/config/rd-bomb.xml.h:17
+#: ../hacks/config/rdbomb.xml.h:17 ../hacks/config/ripples.xml.h:18
+#: ../hacks/config/rocks.xml.h:17 ../hacks/config/romanboy.xml.h:41
+#: ../hacks/config/rorschach.xml.h:11 ../hacks/config/rotor.xml.h:13
+#: ../hacks/config/rotzoomer.xml.h:15 ../hacks/config/rubik.xml.h:11
+#: ../hacks/config/rubikblocks.xml.h:20 ../hacks/config/sballs.xml.h:16
+#: ../hacks/config/shadebobs.xml.h:16 ../hacks/config/sierpinski.xml.h:13
+#: ../hacks/config/sierpinski3d.xml.h:10 ../hacks/config/skytentacles.xml.h:25
+#: ../hacks/config/slidescreen.xml.h:18 ../hacks/config/slip.xml.h:13
+#: ../hacks/config/sonar.xml.h:34 ../hacks/config/speedmine.xml.h:17
+#: ../hacks/config/sphere.xml.h:8 ../hacks/config/spheremonics.xml.h:22
+#: ../hacks/config/spiral.xml.h:11 ../hacks/config/splitflap.xml.h:25
+#: ../hacks/config/splodesic.xml.h:11 ../hacks/config/spotlight.xml.h:11
+#: ../hacks/config/sproingies.xml.h:9 ../hacks/config/squiral.xml.h:17
+#: ../hacks/config/stairs.xml.h:5 ../hacks/config/starfish.xml.h:17
+#: ../hacks/config/starwars.xml.h:15 ../hacks/config/stonerview.xml.h:7
+#: ../hacks/config/strange.xml.h:23 ../hacks/config/substrate.xml.h:19
+#: ../hacks/config/superquadrics.xml.h:13 ../hacks/config/surfaces.xml.h:27
+#: ../hacks/config/swirl.xml.h:11 ../hacks/config/t3d.xml.h:15
+#: ../hacks/config/tangram.xml.h:16 ../hacks/config/tessellimage.xml.h:19
+#: ../hacks/config/testx11.xml.h:2 ../hacks/config/thornbird.xml.h:16
+#: ../hacks/config/timetunnel.xml.h:8 ../hacks/config/topblock.xml.h:24
+#: ../hacks/config/triangle.xml.h:8 ../hacks/config/tronbit.xml.h:11
+#: ../hacks/config/truchet.xml.h:6 ../hacks/config/twang.xml.h:18
+#: ../hacks/config/unicrud.xml.h:10 ../hacks/config/unknownpleasures.xml.h:17
+#: ../hacks/config/vermiculate.xml.h:5 ../hacks/config/vfeedback.xml.h:9
+#: ../hacks/config/vidwhacker.xml.h:6 ../hacks/config/vines.xml.h:8
+#: ../hacks/config/voronoi.xml.h:11 ../hacks/config/wander.xml.h:13
+#: ../hacks/config/webcollage.xml.h:11 ../hacks/config/whirlwindwarp.xml.h:8
+#: ../hacks/config/whirlygig.xml.h:31 ../hacks/config/winduprobot.xml.h:22
+#: ../hacks/config/worm.xml.h:11 ../hacks/config/wormhole.xml.h:11
+#: ../hacks/config/xanalogtv.xml.h:2 ../hacks/config/xflame.xml.h:7
+#: ../hacks/config/xjack.xml.h:6 ../hacks/config/xlyap.xml.h:9
+#: ../hacks/config/xmatrix.xml.h:21 ../hacks/config/xrayswarm.xml.h:5
+#: ../hacks/config/xspirograph.xml.h:9 ../hacks/config/zoom.xml.h:15
 msgid "Show frame rate"
 msgstr "Показывать частоту кадров"
 
 #: ../hacks/config/abstractile.xml.h:16
 msgid ""
 "Mosaic patterns of interlocking tiles. Written by Steve Sundstrom; 2004."
-msgstr ""
+msgstr "Мозаичные узоры плитки. Автор Стив Сандстром; 2004."
 
 #: ../hacks/config/anemone.xml.h:1
 msgid "Anemone"
-msgstr ""
+msgstr "Анемон"
 
 #: ../hacks/config/anemone.xml.h:5 ../hacks/config/anemotaxis.xml.h:8
 #: ../hacks/config/binaryring.xml.h:8 ../hacks/config/blaster.xml.h:7
 #: ../hacks/config/bouboule.xml.h:5 ../hacks/config/boxed.xml.h:8
 #: ../hacks/config/cityflow.xml.h:5 ../hacks/config/coral.xml.h:11
-#: ../hacks/config/crackberg.xml.h:8 ../hacks/config/cubenetic.xml.h:5
-#: ../hacks/config/cubestorm.xml.h:8 ../hacks/config/dangerball.xml.h:8
-#: ../hacks/config/eruption.xml.h:5 ../hacks/config/euler2d.xml.h:5
-#: ../hacks/config/fiberlamp.xml.h:5 ../hacks/config/flame.xml.h:8
-#: ../hacks/config/flow.xml.h:5 ../hacks/config/fluidballs.xml.h:5
-#: ../hacks/config/fuzzyflakes.xml.h:8 ../hacks/config/glcells.xml.h:8
-#: ../hacks/config/glschool.xml.h:5 ../hacks/config/goop.xml.h:8
-#: ../hacks/config/grav.xml.h:5 ../hacks/config/halftone.xml.h:5
-#: ../hacks/config/halo.xml.h:5 ../hacks/config/hydrostat.xml.h:14
-#: ../hacks/config/interaggregate.xml.h:5 ../hacks/config/interference.xml.h:11
-#: ../hacks/config/jigsaw.xml.h:8 ../hacks/config/julia.xml.h:5
-#: ../hacks/config/kaleidescope.xml.h:5 ../hacks/config/lisa.xml.h:5
-#: ../hacks/config/lmorph.xml.h:5 ../hacks/config/nerverot.xml.h:8
-#: ../hacks/config/pedal.xml.h:5 ../hacks/config/petri.xml.h:10
+#: ../hacks/config/crackberg.xml.h:8 ../hacks/config/crumbler.xml.h:8
+#: ../hacks/config/cubenetic.xml.h:5 ../hacks/config/cubestorm.xml.h:8
+#: ../hacks/config/dangerball.xml.h:8 ../hacks/config/eruption.xml.h:5
+#: ../hacks/config/euler2d.xml.h:5 ../hacks/config/fiberlamp.xml.h:5
+#: ../hacks/config/flame.xml.h:8 ../hacks/config/flow.xml.h:5
+#: ../hacks/config/fluidballs.xml.h:5 ../hacks/config/fuzzyflakes.xml.h:8
+#: ../hacks/config/glcells.xml.h:8 ../hacks/config/glschool.xml.h:5
+#: ../hacks/config/goop.xml.h:8 ../hacks/config/grav.xml.h:5
+#: ../hacks/config/halftone.xml.h:5 ../hacks/config/halo.xml.h:5
+#: ../hacks/config/hydrostat.xml.h:14 ../hacks/config/interaggregate.xml.h:5
+#: ../hacks/config/interference.xml.h:11 ../hacks/config/jigsaw.xml.h:8
+#: ../hacks/config/julia.xml.h:5 ../hacks/config/kaleidescope.xml.h:5
+#: ../hacks/config/lisa.xml.h:5 ../hacks/config/lmorph.xml.h:5
+#: ../hacks/config/nerverot.xml.h:8 ../hacks/config/pedal.xml.h:5
+#: ../hacks/config/peepers.xml.h:8 ../hacks/config/petri.xml.h:10
 #: ../hacks/config/piecewise.xml.h:5 ../hacks/config/qix.xml.h:5
 #: ../hacks/config/rocks.xml.h:5 ../hacks/config/sierpinski.xml.h:5
 #: ../hacks/config/slip.xml.h:5 ../hacks/config/spiral.xml.h:5
@@ -1254,11 +1129,9 @@ msgstr "Мало"
 #: ../hacks/config/anemone.xml.h:6 ../hacks/config/fuzzyflakes.xml.h:20
 #: ../hacks/config/hypnowheel.xml.h:13
 msgid "Arms"
-msgstr "ЧаÑ\81Ñ\82и"
+msgstr "РÑ\83ки"
 
-#.
 #. On a 2.93 gHz iMac i7, I get these rates with -delay 0:
-#.
 #. detail 3:  invisible
 #. detail 4:  barely visible
 #. detail 5:  1000+ fps, looks like noise at -delay 0, ok at -delay 20000
@@ -1270,30 +1143,29 @@ msgstr "Части"
 #. detail 13:  ~17 fps
 #. detail 14:   ~8 fps
 #. detail 15:   ~2 fps
-#.
 #. With the default -delay, CPU load only starts causing the frame rate
 #. to drop below 30 fps detail 12 or higher.
-#.
 #. #### -color [random]
 #: ../hacks/config/anemone.xml.h:7 ../hacks/config/anemotaxis.xml.h:10
 #: ../hacks/config/ant.xml.h:13 ../hacks/config/apollonian.xml.h:12
 #: ../hacks/config/attraction.xml.h:19 ../hacks/config/blaster.xml.h:9
 #: ../hacks/config/bouboule.xml.h:7 ../hacks/config/braid.xml.h:10
 #: ../hacks/config/cityflow.xml.h:7 ../hacks/config/coral.xml.h:13
-#: ../hacks/config/critical.xml.h:7 ../hacks/config/crystal.xml.h:7
-#: ../hacks/config/cubenetic.xml.h:7 ../hacks/config/cubestorm.xml.h:10
-#: ../hacks/config/cynosure.xml.h:7 ../hacks/config/deco.xml.h:7
-#: ../hacks/config/deluxe.xml.h:13 ../hacks/config/demon.xml.h:13
-#: ../hacks/config/discrete.xml.h:10 ../hacks/config/drift.xml.h:10
-#: ../hacks/config/epicycle.xml.h:7 ../hacks/config/eruption.xml.h:7
-#: ../hacks/config/euler2d.xml.h:7 ../hacks/config/fadeplot.xml.h:13
-#: ../hacks/config/fiberlamp.xml.h:7 ../hacks/config/flag.xml.h:11
-#: ../hacks/config/flame.xml.h:10 ../hacks/config/flow.xml.h:7
-#: ../hacks/config/fluidballs.xml.h:7 ../hacks/config/forest.xml.h:7
-#: ../hacks/config/fuzzyflakes.xml.h:10 ../hacks/config/galaxy.xml.h:11
-#: ../hacks/config/glcells.xml.h:10 ../hacks/config/goop.xml.h:10
-#: ../hacks/config/grav.xml.h:7 ../hacks/config/halftone.xml.h:7
-#: ../hacks/config/halo.xml.h:7 ../hacks/config/hopalong.xml.h:11
+#: ../hacks/config/critical.xml.h:7 ../hacks/config/crumbler.xml.h:10
+#: ../hacks/config/crystal.xml.h:7 ../hacks/config/cubenetic.xml.h:7
+#: ../hacks/config/cubestorm.xml.h:10 ../hacks/config/cynosure.xml.h:7
+#: ../hacks/config/deco.xml.h:7 ../hacks/config/deluxe.xml.h:13
+#: ../hacks/config/demon.xml.h:13 ../hacks/config/discrete.xml.h:10
+#: ../hacks/config/drift.xml.h:10 ../hacks/config/epicycle.xml.h:7
+#: ../hacks/config/eruption.xml.h:7 ../hacks/config/euler2d.xml.h:7
+#: ../hacks/config/fadeplot.xml.h:13 ../hacks/config/fiberlamp.xml.h:7
+#: ../hacks/config/flag.xml.h:11 ../hacks/config/flame.xml.h:10
+#: ../hacks/config/flow.xml.h:7 ../hacks/config/fluidballs.xml.h:7
+#: ../hacks/config/forest.xml.h:7 ../hacks/config/fuzzyflakes.xml.h:10
+#: ../hacks/config/galaxy.xml.h:11 ../hacks/config/glcells.xml.h:10
+#: ../hacks/config/goop.xml.h:10 ../hacks/config/grav.xml.h:7
+#: ../hacks/config/halftone.xml.h:7 ../hacks/config/halo.xml.h:7
+#: ../hacks/config/handsy.xml.h:10 ../hacks/config/hopalong.xml.h:11
 #: ../hacks/config/hydrostat.xml.h:10 ../hacks/config/ifs.xml.h:64
 #: ../hacks/config/imsmap.xml.h:13 ../hacks/config/interaggregate.xml.h:7
 #: ../hacks/config/interference.xml.h:13 ../hacks/config/jigsaw.xml.h:10
@@ -1305,9 +1177,10 @@ msgstr "Части"
 #: ../hacks/config/moire.xml.h:7 ../hacks/config/moire2.xml.h:7
 #: ../hacks/config/mountain.xml.h:10 ../hacks/config/munch.xml.h:10
 #: ../hacks/config/nerverot.xml.h:10 ../hacks/config/pedal.xml.h:7
-#: ../hacks/config/penrose.xml.h:7 ../hacks/config/petri.xml.h:12
-#: ../hacks/config/piecewise.xml.h:7 ../hacks/config/polyominoes.xml.h:11
-#: ../hacks/config/qix.xml.h:7 ../hacks/config/rd-bomb.xml.h:16
+#: ../hacks/config/peepers.xml.h:10 ../hacks/config/penrose.xml.h:7
+#: ../hacks/config/petri.xml.h:12 ../hacks/config/piecewise.xml.h:7
+#: ../hacks/config/polyominoes.xml.h:11 ../hacks/config/qix.xml.h:7
+#: ../hacks/config/razzledazzle.xml.h:10 ../hacks/config/rd-bomb.xml.h:16
 #: ../hacks/config/rdbomb.xml.h:16 ../hacks/config/rocks.xml.h:7
 #: ../hacks/config/rotor.xml.h:10 ../hacks/config/shadebobs.xml.h:10
 #: ../hacks/config/sierpinski.xml.h:7 ../hacks/config/slip.xml.h:7
@@ -1326,13 +1199,13 @@ msgid "Tentacles"
 msgstr "Щупальца"
 
 #: ../hacks/config/anemone.xml.h:9 ../hacks/config/cubestack.xml.h:8
-#: ../hacks/config/cubestorm.xml.h:11 ../hacks/config/cubetwist.xml.h:8
+#: ../hacks/config/cubestorm.xml.h:14 ../hacks/config/cubetwist.xml.h:8
 #: ../hacks/config/deluxe.xml.h:5 ../hacks/config/fadeplot.xml.h:5
 #: ../hacks/config/fuzzyflakes.xml.h:21 ../hacks/config/glknots.xml.h:19
 #: ../hacks/config/hexstrut.xml.h:11 ../hacks/config/hilbert.xml.h:15
 #: ../hacks/config/hydrostat.xml.h:16 ../hacks/config/lmorph.xml.h:11
-#: ../hacks/config/skytentacles.xml.h:8 ../hacks/config/starfish.xml.h:11
-#: ../hacks/config/thornbird.xml.h:8
+#: ../hacks/config/razzledazzle.xml.h:16 ../hacks/config/skytentacles.xml.h:8
+#: ../hacks/config/starfish.xml.h:11 ../hacks/config/thornbird.xml.h:8
 msgid "Thin"
 msgstr "Тонкая"
 
@@ -1345,13 +1218,13 @@ msgid "Thickness"
 msgstr "Толщина"
 
 #: ../hacks/config/anemone.xml.h:11 ../hacks/config/cubestack.xml.h:10
-#: ../hacks/config/cubestorm.xml.h:13 ../hacks/config/cubetwist.xml.h:10
+#: ../hacks/config/cubestorm.xml.h:16 ../hacks/config/cubetwist.xml.h:10
 #: ../hacks/config/deluxe.xml.h:7 ../hacks/config/fadeplot.xml.h:7
 #: ../hacks/config/fuzzyflakes.xml.h:23 ../hacks/config/glknots.xml.h:21
 #: ../hacks/config/hexstrut.xml.h:13 ../hacks/config/hilbert.xml.h:17
 #: ../hacks/config/hydrostat.xml.h:18 ../hacks/config/lmorph.xml.h:13
-#: ../hacks/config/skytentacles.xml.h:10 ../hacks/config/starfish.xml.h:13
-#: ../hacks/config/thornbird.xml.h:10
+#: ../hacks/config/razzledazzle.xml.h:14 ../hacks/config/skytentacles.xml.h:10
+#: ../hacks/config/starfish.xml.h:13 ../hacks/config/thornbird.xml.h:10
 msgid "Thick"
 msgstr "Толстая"
 
@@ -1370,15 +1243,15 @@ msgstr "Редко"
 
 #: ../hacks/config/anemone.xml.h:15
 msgid "Turn speed"
-msgstr "СкоÑ\80оÑ\81Ñ\82Ñ\8c Ð²Ñ\80аÑ\89ениÑ\8f"
+msgstr "СкоÑ\80оÑ\81Ñ\82Ñ\8c Ð¿Ð¾Ð²Ð¾Ñ\80оÑ\82а"
 
 #: ../hacks/config/anemone.xml.h:17
 msgid "Wiggling tentacles. Written by Gabriel Finch; 2002."
-msgstr ""
+msgstr "Шевелить щупальцами. Автор Габриэль Финч; 2002."
 
 #: ../hacks/config/anemotaxis.xml.h:1
 msgid "Anemotaxis"
-msgstr ""
+msgstr "Анемотаксис"
 
 #. #### -colorcount [64]
 #: ../hacks/config/anemotaxis.xml.h:2 ../hacks/config/ant.xml.h:2
@@ -1398,54 +1271,57 @@ msgstr ""
 #: ../hacks/config/cloudlife.xml.h:2 ../hacks/config/companioncube.xml.h:2
 #: ../hacks/config/compass.xml.h:2 ../hacks/config/coral.xml.h:2
 #: ../hacks/config/crackberg.xml.h:2 ../hacks/config/critical.xml.h:2
-#: ../hacks/config/crystal.xml.h:2 ../hacks/config/cube21.xml.h:2
-#: ../hacks/config/cubenetic.xml.h:2 ../hacks/config/cubestack.xml.h:2
-#: ../hacks/config/cubestorm.xml.h:2 ../hacks/config/cubetwist.xml.h:2
-#: ../hacks/config/cubicgrid.xml.h:2 ../hacks/config/cwaves.xml.h:2
-#: ../hacks/config/cynosure.xml.h:2 ../hacks/config/dangerball.xml.h:2
-#: ../hacks/config/decayscreen.xml.h:2 ../hacks/config/deluxe.xml.h:2
-#: ../hacks/config/demon.xml.h:2 ../hacks/config/discoball.xml.h:2
-#: ../hacks/config/discrete.xml.h:2 ../hacks/config/distort.xml.h:2
-#: ../hacks/config/dnalogo.xml.h:2 ../hacks/config/drift.xml.h:2
-#: ../hacks/config/dymaxionmap.xml.h:2 ../hacks/config/endgame.xml.h:2
-#: ../hacks/config/engine.xml.h:2 ../hacks/config/epicycle.xml.h:2
-#: ../hacks/config/eruption.xml.h:2 ../hacks/config/euler2d.xml.h:2
+#: ../hacks/config/crumbler.xml.h:2 ../hacks/config/crystal.xml.h:2
+#: ../hacks/config/cube21.xml.h:2 ../hacks/config/cubenetic.xml.h:2
+#: ../hacks/config/cubestack.xml.h:2 ../hacks/config/cubestorm.xml.h:2
+#: ../hacks/config/cubetwist.xml.h:2 ../hacks/config/cubicgrid.xml.h:2
+#: ../hacks/config/cwaves.xml.h:2 ../hacks/config/cynosure.xml.h:2
+#: ../hacks/config/dangerball.xml.h:2 ../hacks/config/decayscreen.xml.h:2
+#: ../hacks/config/deluxe.xml.h:2 ../hacks/config/demon.xml.h:2
+#: ../hacks/config/discoball.xml.h:2 ../hacks/config/discrete.xml.h:2
+#: ../hacks/config/distort.xml.h:2 ../hacks/config/dnalogo.xml.h:2
+#: ../hacks/config/drift.xml.h:2 ../hacks/config/dymaxionmap.xml.h:2
+#: ../hacks/config/endgame.xml.h:2 ../hacks/config/engine.xml.h:2
+#: ../hacks/config/epicycle.xml.h:2 ../hacks/config/eruption.xml.h:2
+#: ../hacks/config/esper.xml.h:2 ../hacks/config/euler2d.xml.h:2
 #: ../hacks/config/extrusion.xml.h:2 ../hacks/config/fadeplot.xml.h:2
-#: ../hacks/config/fiberlamp.xml.h:2 ../hacks/config/fireworkx.xml.h:2
-#: ../hacks/config/flag.xml.h:3 ../hacks/config/flame.xml.h:2
-#: ../hacks/config/flipflop.xml.h:2 ../hacks/config/flipscreen3d.xml.h:2
-#: ../hacks/config/fliptext.xml.h:2 ../hacks/config/flow.xml.h:2
-#: ../hacks/config/fluidballs.xml.h:2 ../hacks/config/flyingtoasters.xml.h:2
-#: ../hacks/config/fontglide.xml.h:2 ../hacks/config/forest.xml.h:2
-#: ../hacks/config/fuzzyflakes.xml.h:2 ../hacks/config/galaxy.xml.h:2
-#: ../hacks/config/gears.xml.h:2 ../hacks/config/geodesic.xml.h:11
-#: ../hacks/config/geodesicgears.xml.h:2 ../hacks/config/gflux.xml.h:2
-#: ../hacks/config/glblur.xml.h:2 ../hacks/config/glcells.xml.h:2
-#: ../hacks/config/gleidescope.xml.h:2 ../hacks/config/glforestfire.xml.h:2
-#: ../hacks/config/glhanoi.xml.h:2 ../hacks/config/glknots.xml.h:2
+#: ../hacks/config/fiberlamp.xml.h:2 ../hacks/config/filmleader.xml.h:2
+#: ../hacks/config/fireworkx.xml.h:2 ../hacks/config/flag.xml.h:3
+#: ../hacks/config/flame.xml.h:2 ../hacks/config/flipflop.xml.h:2
+#: ../hacks/config/flipscreen3d.xml.h:2 ../hacks/config/fliptext.xml.h:2
+#: ../hacks/config/flow.xml.h:2 ../hacks/config/fluidballs.xml.h:2
+#: ../hacks/config/flyingtoasters.xml.h:2 ../hacks/config/fontglide.xml.h:2
+#: ../hacks/config/forest.xml.h:2 ../hacks/config/fuzzyflakes.xml.h:2
+#: ../hacks/config/galaxy.xml.h:2 ../hacks/config/gears.xml.h:2
+#: ../hacks/config/geodesic.xml.h:11 ../hacks/config/geodesicgears.xml.h:2
+#: ../hacks/config/gflux.xml.h:2 ../hacks/config/glblur.xml.h:2
+#: ../hacks/config/glcells.xml.h:2 ../hacks/config/gleidescope.xml.h:2
+#: ../hacks/config/glforestfire.xml.h:2 ../hacks/config/glhanoi.xml.h:2
+#: ../hacks/config/glitchpeg.xml.h:2 ../hacks/config/glknots.xml.h:2
 #: ../hacks/config/glmatrix.xml.h:2 ../hacks/config/glplanet.xml.h:2
 #: ../hacks/config/glschool.xml.h:2 ../hacks/config/glslideshow.xml.h:2
 #: ../hacks/config/glsnake.xml.h:2 ../hacks/config/gltext.xml.h:2
 #: ../hacks/config/goop.xml.h:2 ../hacks/config/grav.xml.h:2
 #: ../hacks/config/greynetic.xml.h:2 ../hacks/config/halftone.xml.h:2
-#: ../hacks/config/halo.xml.h:2 ../hacks/config/helix.xml.h:2
-#: ../hacks/config/hexadrop.xml.h:2 ../hacks/config/hexstrut.xml.h:2
-#: ../hacks/config/hopalong.xml.h:2 ../hacks/config/hydrostat.xml.h:2
-#: ../hacks/config/hyperball.xml.h:2 ../hacks/config/hypercube.xml.h:2
-#: ../hacks/config/hypertorus.xml.h:2 ../hacks/config/hypnowheel.xml.h:14
-#: ../hacks/config/ifs.xml.h:2 ../hacks/config/imsmap.xml.h:2
-#: ../hacks/config/interaggregate.xml.h:2 ../hacks/config/interference.xml.h:2
-#: ../hacks/config/intermomentary.xml.h:2 ../hacks/config/jigglypuff.xml.h:11
-#: ../hacks/config/jigsaw.xml.h:2 ../hacks/config/juggle.xml.h:2
-#: ../hacks/config/juggler3d.xml.h:2 ../hacks/config/julia.xml.h:2
-#: ../hacks/config/kaleidescope.xml.h:2 ../hacks/config/kaleidocycle.xml.h:2
-#: ../hacks/config/klein.xml.h:42 ../hacks/config/kumppa.xml.h:2
-#: ../hacks/config/lament.xml.h:2 ../hacks/config/laser.xml.h:2
-#: ../hacks/config/lavalite.xml.h:2 ../hacks/config/lcdscrub.xml.h:2
-#: ../hacks/config/lightning.xml.h:2 ../hacks/config/lisa.xml.h:2
-#: ../hacks/config/lissie.xml.h:2 ../hacks/config/lmorph.xml.h:2
-#: ../hacks/config/lockward.xml.h:2 ../hacks/config/loop.xml.h:2
-#: ../hacks/config/m6502.xml.h:7 ../hacks/config/maze.xml.h:2
+#: ../hacks/config/halo.xml.h:2 ../hacks/config/handsy.xml.h:2
+#: ../hacks/config/helix.xml.h:2 ../hacks/config/hexadrop.xml.h:2
+#: ../hacks/config/hexstrut.xml.h:2 ../hacks/config/hopalong.xml.h:2
+#: ../hacks/config/hydrostat.xml.h:2 ../hacks/config/hyperball.xml.h:2
+#: ../hacks/config/hypercube.xml.h:2 ../hacks/config/hypertorus.xml.h:2
+#: ../hacks/config/hypnowheel.xml.h:14 ../hacks/config/ifs.xml.h:2
+#: ../hacks/config/imsmap.xml.h:2 ../hacks/config/interaggregate.xml.h:2
+#: ../hacks/config/interference.xml.h:2 ../hacks/config/intermomentary.xml.h:2
+#: ../hacks/config/jigglypuff.xml.h:11 ../hacks/config/jigsaw.xml.h:2
+#: ../hacks/config/juggle.xml.h:2 ../hacks/config/juggler3d.xml.h:2
+#: ../hacks/config/julia.xml.h:2 ../hacks/config/kaleidescope.xml.h:2
+#: ../hacks/config/kaleidocycle.xml.h:2 ../hacks/config/klein.xml.h:42
+#: ../hacks/config/kumppa.xml.h:2 ../hacks/config/lament.xml.h:2
+#: ../hacks/config/laser.xml.h:2 ../hacks/config/lavalite.xml.h:2
+#: ../hacks/config/lcdscrub.xml.h:2 ../hacks/config/lightning.xml.h:2
+#: ../hacks/config/lisa.xml.h:2 ../hacks/config/lissie.xml.h:2
+#: ../hacks/config/lmorph.xml.h:2 ../hacks/config/lockward.xml.h:2
+#: ../hacks/config/loop.xml.h:2 ../hacks/config/m6502.xml.h:7
+#: ../hacks/config/maze.xml.h:2 ../hacks/config/maze3d.xml.h:5
 #: ../hacks/config/memscroller.xml.h:2 ../hacks/config/menger.xml.h:2
 #: ../hacks/config/metaballs.xml.h:2 ../hacks/config/mirrorblob.xml.h:2
 #: ../hacks/config/mismunch.xml.h:2 ../hacks/config/moebius.xml.h:2
@@ -1453,17 +1329,18 @@ msgstr ""
 #: ../hacks/config/molecule.xml.h:2 ../hacks/config/morph3d.xml.h:2
 #: ../hacks/config/mountain.xml.h:2 ../hacks/config/munch.xml.h:2
 #: ../hacks/config/nerverot.xml.h:2 ../hacks/config/noof.xml.h:2
-#: ../hacks/config/pacman.xml.h:2 ../hacks/config/penrose.xml.h:2
-#: ../hacks/config/petri.xml.h:2 ../hacks/config/phosphor.xml.h:2
-#: ../hacks/config/photopile.xml.h:15 ../hacks/config/piecewise.xml.h:2
-#: ../hacks/config/pinion.xml.h:2 ../hacks/config/pipes.xml.h:2
-#: ../hacks/config/polyhedra.xml.h:2 ../hacks/config/polyominoes.xml.h:3
-#: ../hacks/config/polytopes.xml.h:24 ../hacks/config/pong.xml.h:10
-#: ../hacks/config/popsquares.xml.h:2 ../hacks/config/projectiveplane.xml.h:35
-#: ../hacks/config/providence.xml.h:2 ../hacks/config/pulsar.xml.h:2
-#: ../hacks/config/pyro.xml.h:11 ../hacks/config/qix.xml.h:2
-#: ../hacks/config/quasicrystal.xml.h:2 ../hacks/config/queens.xml.h:2
-#: ../hacks/config/raverhoop.xml.h:2 ../hacks/config/ripples.xml.h:2
+#: ../hacks/config/pacman.xml.h:2 ../hacks/config/peepers.xml.h:2
+#: ../hacks/config/penrose.xml.h:2 ../hacks/config/petri.xml.h:2
+#: ../hacks/config/phosphor.xml.h:2 ../hacks/config/photopile.xml.h:15
+#: ../hacks/config/piecewise.xml.h:2 ../hacks/config/pinion.xml.h:2
+#: ../hacks/config/pipes.xml.h:2 ../hacks/config/polyhedra.xml.h:2
+#: ../hacks/config/polyominoes.xml.h:3 ../hacks/config/polytopes.xml.h:24
+#: ../hacks/config/pong.xml.h:10 ../hacks/config/popsquares.xml.h:2
+#: ../hacks/config/projectiveplane.xml.h:35 ../hacks/config/providence.xml.h:2
+#: ../hacks/config/pulsar.xml.h:2 ../hacks/config/pyro.xml.h:11
+#: ../hacks/config/qix.xml.h:2 ../hacks/config/quasicrystal.xml.h:2
+#: ../hacks/config/queens.xml.h:2 ../hacks/config/raverhoop.xml.h:2
+#: ../hacks/config/razzledazzle.xml.h:2 ../hacks/config/ripples.xml.h:2
 #: ../hacks/config/rocks.xml.h:2 ../hacks/config/romanboy.xml.h:38
 #: ../hacks/config/rotor.xml.h:2 ../hacks/config/rotzoomer.xml.h:2
 #: ../hacks/config/rubik.xml.h:2 ../hacks/config/rubikblocks.xml.h:2
@@ -1485,13 +1362,14 @@ msgstr ""
 #: ../hacks/config/triangle.xml.h:2 ../hacks/config/tronbit.xml.h:2
 #: ../hacks/config/truchet.xml.h:2 ../hacks/config/twang.xml.h:2
 #: ../hacks/config/unicrud.xml.h:2 ../hacks/config/unknownpleasures.xml.h:2
-#: ../hacks/config/vigilance.xml.h:2 ../hacks/config/vines.xml.h:2
-#: ../hacks/config/wander.xml.h:2 ../hacks/config/whirlygig.xml.h:4
-#: ../hacks/config/winduprobot.xml.h:2 ../hacks/config/worm.xml.h:2
-#: ../hacks/config/wormhole.xml.h:2 ../hacks/config/xanalogtv.xml.h:3
-#: ../hacks/config/xflame.xml.h:2 ../hacks/config/xlyap.xml.h:2
-#: ../hacks/config/xmatrix.xml.h:15 ../hacks/config/xrayswarm.xml.h:2
-#: ../hacks/config/xspirograph.xml.h:2 ../hacks/config/zoom.xml.h:2
+#: ../hacks/config/vfeedback.xml.h:2 ../hacks/config/vigilance.xml.h:2
+#: ../hacks/config/vines.xml.h:2 ../hacks/config/wander.xml.h:2
+#: ../hacks/config/whirlygig.xml.h:4 ../hacks/config/winduprobot.xml.h:2
+#: ../hacks/config/worm.xml.h:2 ../hacks/config/wormhole.xml.h:2
+#: ../hacks/config/xanalogtv.xml.h:4 ../hacks/config/xflame.xml.h:2
+#: ../hacks/config/xlyap.xml.h:2 ../hacks/config/xmatrix.xml.h:15
+#: ../hacks/config/xrayswarm.xml.h:2 ../hacks/config/xspirograph.xml.h:2
+#: ../hacks/config/zoom.xml.h:2
 msgid "Low"
 msgstr "Низкая"
 
@@ -1511,17 +1389,18 @@ msgstr "Низкая"
 #: ../hacks/config/cloudlife.xml.h:3 ../hacks/config/companioncube.xml.h:3
 #: ../hacks/config/compass.xml.h:3 ../hacks/config/coral.xml.h:3
 #: ../hacks/config/crackberg.xml.h:3 ../hacks/config/critical.xml.h:3
-#: ../hacks/config/crystal.xml.h:3 ../hacks/config/cube21.xml.h:3
-#: ../hacks/config/cubenetic.xml.h:3 ../hacks/config/cubestack.xml.h:3
-#: ../hacks/config/cubestorm.xml.h:3 ../hacks/config/cubetwist.xml.h:3
-#: ../hacks/config/cubicgrid.xml.h:3 ../hacks/config/cwaves.xml.h:3
-#: ../hacks/config/cynosure.xml.h:3 ../hacks/config/dangerball.xml.h:3
-#: ../hacks/config/decayscreen.xml.h:3 ../hacks/config/deluxe.xml.h:3
-#: ../hacks/config/demon.xml.h:3 ../hacks/config/discoball.xml.h:3
-#: ../hacks/config/discrete.xml.h:3 ../hacks/config/distort.xml.h:3
-#: ../hacks/config/drift.xml.h:3 ../hacks/config/dymaxionmap.xml.h:3
-#: ../hacks/config/endgame.xml.h:3 ../hacks/config/engine.xml.h:3
-#: ../hacks/config/epicycle.xml.h:3 ../hacks/config/eruption.xml.h:3
+#: ../hacks/config/crumbler.xml.h:3 ../hacks/config/crystal.xml.h:3
+#: ../hacks/config/cube21.xml.h:3 ../hacks/config/cubenetic.xml.h:3
+#: ../hacks/config/cubestack.xml.h:3 ../hacks/config/cubestorm.xml.h:3
+#: ../hacks/config/cubetwist.xml.h:3 ../hacks/config/cubicgrid.xml.h:3
+#: ../hacks/config/cwaves.xml.h:3 ../hacks/config/cynosure.xml.h:3
+#: ../hacks/config/dangerball.xml.h:3 ../hacks/config/decayscreen.xml.h:3
+#: ../hacks/config/deluxe.xml.h:3 ../hacks/config/demon.xml.h:3
+#: ../hacks/config/discoball.xml.h:3 ../hacks/config/discrete.xml.h:3
+#: ../hacks/config/distort.xml.h:3 ../hacks/config/drift.xml.h:3
+#: ../hacks/config/dymaxionmap.xml.h:3 ../hacks/config/endgame.xml.h:3
+#: ../hacks/config/engine.xml.h:3 ../hacks/config/epicycle.xml.h:3
+#: ../hacks/config/eruption.xml.h:3 ../hacks/config/esper.xml.h:3
 #: ../hacks/config/euler2d.xml.h:3 ../hacks/config/extrusion.xml.h:3
 #: ../hacks/config/fadeplot.xml.h:3 ../hacks/config/fiberlamp.xml.h:3
 #: ../hacks/config/fireworkx.xml.h:3 ../hacks/config/flag.xml.h:4
@@ -1535,12 +1414,13 @@ msgstr "Низкая"
 #: ../hacks/config/gflux.xml.h:3 ../hacks/config/glblur.xml.h:3
 #: ../hacks/config/glcells.xml.h:3 ../hacks/config/gleidescope.xml.h:3
 #: ../hacks/config/glforestfire.xml.h:3 ../hacks/config/glhanoi.xml.h:3
-#: ../hacks/config/glknots.xml.h:3 ../hacks/config/glmatrix.xml.h:3
-#: ../hacks/config/glplanet.xml.h:3 ../hacks/config/glschool.xml.h:3
-#: ../hacks/config/glslideshow.xml.h:3 ../hacks/config/glsnake.xml.h:3
-#: ../hacks/config/gltext.xml.h:3 ../hacks/config/goop.xml.h:3
-#: ../hacks/config/grav.xml.h:3 ../hacks/config/greynetic.xml.h:3
-#: ../hacks/config/halftone.xml.h:3 ../hacks/config/halo.xml.h:3
+#: ../hacks/config/glitchpeg.xml.h:3 ../hacks/config/glknots.xml.h:3
+#: ../hacks/config/glmatrix.xml.h:3 ../hacks/config/glplanet.xml.h:3
+#: ../hacks/config/glschool.xml.h:3 ../hacks/config/glslideshow.xml.h:3
+#: ../hacks/config/glsnake.xml.h:3 ../hacks/config/gltext.xml.h:3
+#: ../hacks/config/goop.xml.h:3 ../hacks/config/grav.xml.h:3
+#: ../hacks/config/greynetic.xml.h:3 ../hacks/config/halftone.xml.h:3
+#: ../hacks/config/halo.xml.h:3 ../hacks/config/handsy.xml.h:3
 #: ../hacks/config/helix.xml.h:3 ../hacks/config/hexadrop.xml.h:3
 #: ../hacks/config/hexstrut.xml.h:3 ../hacks/config/hilbert.xml.h:9
 #: ../hacks/config/hopalong.xml.h:3 ../hacks/config/hydrostat.xml.h:3
@@ -1558,14 +1438,15 @@ msgstr "Низкая"
 #: ../hacks/config/lightning.xml.h:3 ../hacks/config/lisa.xml.h:3
 #: ../hacks/config/lissie.xml.h:3 ../hacks/config/lmorph.xml.h:3
 #: ../hacks/config/lockward.xml.h:3 ../hacks/config/loop.xml.h:3
-#: ../hacks/config/maze.xml.h:3 ../hacks/config/memscroller.xml.h:3
-#: ../hacks/config/menger.xml.h:3 ../hacks/config/metaballs.xml.h:3
-#: ../hacks/config/mirrorblob.xml.h:3 ../hacks/config/mismunch.xml.h:3
-#: ../hacks/config/moebius.xml.h:3 ../hacks/config/moebiusgears.xml.h:3
-#: ../hacks/config/moire2.xml.h:3 ../hacks/config/molecule.xml.h:3
-#: ../hacks/config/morph3d.xml.h:3 ../hacks/config/mountain.xml.h:3
-#: ../hacks/config/munch.xml.h:3 ../hacks/config/nerverot.xml.h:3
-#: ../hacks/config/noof.xml.h:3 ../hacks/config/pacman.xml.h:3
+#: ../hacks/config/maze.xml.h:3 ../hacks/config/maze3d.xml.h:6
+#: ../hacks/config/memscroller.xml.h:3 ../hacks/config/menger.xml.h:3
+#: ../hacks/config/metaballs.xml.h:3 ../hacks/config/mirrorblob.xml.h:3
+#: ../hacks/config/mismunch.xml.h:3 ../hacks/config/moebius.xml.h:3
+#: ../hacks/config/moebiusgears.xml.h:3 ../hacks/config/moire2.xml.h:3
+#: ../hacks/config/molecule.xml.h:3 ../hacks/config/morph3d.xml.h:3
+#: ../hacks/config/mountain.xml.h:3 ../hacks/config/munch.xml.h:3
+#: ../hacks/config/nerverot.xml.h:3 ../hacks/config/noof.xml.h:3
+#: ../hacks/config/pacman.xml.h:3 ../hacks/config/peepers.xml.h:3
 #: ../hacks/config/penrose.xml.h:3 ../hacks/config/petri.xml.h:3
 #: ../hacks/config/phosphor.xml.h:3 ../hacks/config/photopile.xml.h:16
 #: ../hacks/config/piecewise.xml.h:3 ../hacks/config/pinion.xml.h:3
@@ -1575,36 +1456,36 @@ msgstr "Низкая"
 #: ../hacks/config/providence.xml.h:3 ../hacks/config/pulsar.xml.h:3
 #: ../hacks/config/pyro.xml.h:3 ../hacks/config/qix.xml.h:3
 #: ../hacks/config/quasicrystal.xml.h:3 ../hacks/config/queens.xml.h:3
-#: ../hacks/config/raverhoop.xml.h:3 ../hacks/config/rd-bomb.xml.h:3
-#: ../hacks/config/rdbomb.xml.h:3 ../hacks/config/ripples.xml.h:3
-#: ../hacks/config/rocks.xml.h:3 ../hacks/config/romanboy.xml.h:39
-#: ../hacks/config/rotor.xml.h:3 ../hacks/config/rotzoomer.xml.h:3
-#: ../hacks/config/rubik.xml.h:3 ../hacks/config/rubikblocks.xml.h:3
-#: ../hacks/config/sballs.xml.h:3 ../hacks/config/shadebobs.xml.h:3
-#: ../hacks/config/sierpinski.xml.h:3 ../hacks/config/sierpinski3d.xml.h:3
-#: ../hacks/config/skytentacles.xml.h:16 ../hacks/config/slidescreen.xml.h:3
-#: ../hacks/config/slip.xml.h:3 ../hacks/config/sonar.xml.h:3
-#: ../hacks/config/speedmine.xml.h:3 ../hacks/config/sphere.xml.h:3
-#: ../hacks/config/spheremonics.xml.h:3 ../hacks/config/spiral.xml.h:3
-#: ../hacks/config/splitflap.xml.h:3 ../hacks/config/splodesic.xml.h:3
-#: ../hacks/config/spotlight.xml.h:3 ../hacks/config/sproingies.xml.h:3
-#: ../hacks/config/squiral.xml.h:3 ../hacks/config/stairs.xml.h:3
-#: ../hacks/config/starfish.xml.h:6 ../hacks/config/stonerview.xml.h:3
-#: ../hacks/config/strange.xml.h:3 ../hacks/config/substrate.xml.h:3
-#: ../hacks/config/superquadrics.xml.h:3 ../hacks/config/surfaces.xml.h:3
-#: ../hacks/config/swirl.xml.h:3 ../hacks/config/t3d.xml.h:3
-#: ../hacks/config/tangram.xml.h:3 ../hacks/config/tessellimage.xml.h:3
-#: ../hacks/config/thornbird.xml.h:3 ../hacks/config/topblock.xml.h:3
-#: ../hacks/config/triangle.xml.h:3 ../hacks/config/tronbit.xml.h:3
-#: ../hacks/config/truchet.xml.h:3 ../hacks/config/twang.xml.h:3
-#: ../hacks/config/unicrud.xml.h:3 ../hacks/config/unknownpleasures.xml.h:3
-#: ../hacks/config/vigilance.xml.h:3 ../hacks/config/vines.xml.h:3
-#: ../hacks/config/voronoi.xml.h:3 ../hacks/config/wander.xml.h:3
-#: ../hacks/config/winduprobot.xml.h:3 ../hacks/config/worm.xml.h:3
-#: ../hacks/config/wormhole.xml.h:3 ../hacks/config/xflame.xml.h:3
-#: ../hacks/config/xlyap.xml.h:3 ../hacks/config/xmatrix.xml.h:16
-#: ../hacks/config/xrayswarm.xml.h:3 ../hacks/config/xspirograph.xml.h:3
-#: ../hacks/config/zoom.xml.h:3
+#: ../hacks/config/raverhoop.xml.h:3 ../hacks/config/razzledazzle.xml.h:3
+#: ../hacks/config/rd-bomb.xml.h:3 ../hacks/config/rdbomb.xml.h:3
+#: ../hacks/config/ripples.xml.h:3 ../hacks/config/rocks.xml.h:3
+#: ../hacks/config/romanboy.xml.h:39 ../hacks/config/rotor.xml.h:3
+#: ../hacks/config/rotzoomer.xml.h:3 ../hacks/config/rubik.xml.h:3
+#: ../hacks/config/rubikblocks.xml.h:3 ../hacks/config/sballs.xml.h:3
+#: ../hacks/config/shadebobs.xml.h:3 ../hacks/config/sierpinski.xml.h:3
+#: ../hacks/config/sierpinski3d.xml.h:3 ../hacks/config/skytentacles.xml.h:16
+#: ../hacks/config/slidescreen.xml.h:3 ../hacks/config/slip.xml.h:3
+#: ../hacks/config/sonar.xml.h:3 ../hacks/config/speedmine.xml.h:3
+#: ../hacks/config/sphere.xml.h:3 ../hacks/config/spheremonics.xml.h:3
+#: ../hacks/config/spiral.xml.h:3 ../hacks/config/splitflap.xml.h:3
+#: ../hacks/config/splodesic.xml.h:3 ../hacks/config/spotlight.xml.h:3
+#: ../hacks/config/sproingies.xml.h:3 ../hacks/config/squiral.xml.h:3
+#: ../hacks/config/stairs.xml.h:3 ../hacks/config/starfish.xml.h:6
+#: ../hacks/config/stonerview.xml.h:3 ../hacks/config/strange.xml.h:3
+#: ../hacks/config/substrate.xml.h:3 ../hacks/config/superquadrics.xml.h:3
+#: ../hacks/config/surfaces.xml.h:3 ../hacks/config/swirl.xml.h:3
+#: ../hacks/config/t3d.xml.h:3 ../hacks/config/tangram.xml.h:3
+#: ../hacks/config/tessellimage.xml.h:3 ../hacks/config/thornbird.xml.h:3
+#: ../hacks/config/topblock.xml.h:3 ../hacks/config/triangle.xml.h:3
+#: ../hacks/config/tronbit.xml.h:3 ../hacks/config/truchet.xml.h:3
+#: ../hacks/config/twang.xml.h:3 ../hacks/config/unicrud.xml.h:3
+#: ../hacks/config/unknownpleasures.xml.h:3 ../hacks/config/vigilance.xml.h:3
+#: ../hacks/config/vines.xml.h:3 ../hacks/config/voronoi.xml.h:3
+#: ../hacks/config/wander.xml.h:3 ../hacks/config/winduprobot.xml.h:3
+#: ../hacks/config/worm.xml.h:3 ../hacks/config/wormhole.xml.h:3
+#: ../hacks/config/xflame.xml.h:3 ../hacks/config/xlyap.xml.h:3
+#: ../hacks/config/xmatrix.xml.h:16 ../hacks/config/xrayswarm.xml.h:3
+#: ../hacks/config/xspirograph.xml.h:3 ../hacks/config/zoom.xml.h:3
 msgid "Frame rate"
 msgstr "Частота кадров"
 
@@ -1626,54 +1507,57 @@ msgstr "Частота кадров"
 #: ../hacks/config/cloudlife.xml.h:4 ../hacks/config/companioncube.xml.h:4
 #: ../hacks/config/compass.xml.h:4 ../hacks/config/coral.xml.h:4
 #: ../hacks/config/crackberg.xml.h:4 ../hacks/config/critical.xml.h:4
-#: ../hacks/config/crystal.xml.h:4 ../hacks/config/cube21.xml.h:4
-#: ../hacks/config/cubenetic.xml.h:4 ../hacks/config/cubestack.xml.h:4
-#: ../hacks/config/cubestorm.xml.h:4 ../hacks/config/cubetwist.xml.h:4
-#: ../hacks/config/cubicgrid.xml.h:4 ../hacks/config/cwaves.xml.h:4
-#: ../hacks/config/cynosure.xml.h:4 ../hacks/config/dangerball.xml.h:4
-#: ../hacks/config/decayscreen.xml.h:4 ../hacks/config/deluxe.xml.h:4
-#: ../hacks/config/demon.xml.h:4 ../hacks/config/discoball.xml.h:4
-#: ../hacks/config/discrete.xml.h:4 ../hacks/config/distort.xml.h:4
-#: ../hacks/config/dnalogo.xml.h:4 ../hacks/config/drift.xml.h:4
-#: ../hacks/config/dymaxionmap.xml.h:4 ../hacks/config/endgame.xml.h:4
-#: ../hacks/config/engine.xml.h:4 ../hacks/config/epicycle.xml.h:4
-#: ../hacks/config/eruption.xml.h:4 ../hacks/config/euler2d.xml.h:4
+#: ../hacks/config/crumbler.xml.h:4 ../hacks/config/crystal.xml.h:4
+#: ../hacks/config/cube21.xml.h:4 ../hacks/config/cubenetic.xml.h:4
+#: ../hacks/config/cubestack.xml.h:4 ../hacks/config/cubestorm.xml.h:4
+#: ../hacks/config/cubetwist.xml.h:4 ../hacks/config/cubicgrid.xml.h:4
+#: ../hacks/config/cwaves.xml.h:4 ../hacks/config/cynosure.xml.h:4
+#: ../hacks/config/dangerball.xml.h:4 ../hacks/config/decayscreen.xml.h:4
+#: ../hacks/config/deluxe.xml.h:4 ../hacks/config/demon.xml.h:4
+#: ../hacks/config/discoball.xml.h:4 ../hacks/config/discrete.xml.h:4
+#: ../hacks/config/distort.xml.h:4 ../hacks/config/dnalogo.xml.h:4
+#: ../hacks/config/drift.xml.h:4 ../hacks/config/dymaxionmap.xml.h:4
+#: ../hacks/config/endgame.xml.h:4 ../hacks/config/engine.xml.h:4
+#: ../hacks/config/epicycle.xml.h:4 ../hacks/config/eruption.xml.h:4
+#: ../hacks/config/esper.xml.h:4 ../hacks/config/euler2d.xml.h:4
 #: ../hacks/config/extrusion.xml.h:4 ../hacks/config/fadeplot.xml.h:4
-#: ../hacks/config/fiberlamp.xml.h:4 ../hacks/config/fireworkx.xml.h:4
-#: ../hacks/config/flag.xml.h:5 ../hacks/config/flame.xml.h:4
-#: ../hacks/config/flipflop.xml.h:4 ../hacks/config/flipscreen3d.xml.h:4
-#: ../hacks/config/fliptext.xml.h:4 ../hacks/config/flow.xml.h:4
-#: ../hacks/config/fluidballs.xml.h:4 ../hacks/config/flyingtoasters.xml.h:4
-#: ../hacks/config/fontglide.xml.h:4 ../hacks/config/forest.xml.h:4
-#: ../hacks/config/fuzzyflakes.xml.h:4 ../hacks/config/galaxy.xml.h:4
-#: ../hacks/config/gears.xml.h:4 ../hacks/config/geodesic.xml.h:13
-#: ../hacks/config/geodesicgears.xml.h:4 ../hacks/config/gflux.xml.h:4
-#: ../hacks/config/glblur.xml.h:4 ../hacks/config/glcells.xml.h:4
-#: ../hacks/config/gleidescope.xml.h:4 ../hacks/config/glforestfire.xml.h:4
-#: ../hacks/config/glhanoi.xml.h:4 ../hacks/config/glknots.xml.h:4
+#: ../hacks/config/fiberlamp.xml.h:4 ../hacks/config/filmleader.xml.h:4
+#: ../hacks/config/fireworkx.xml.h:4 ../hacks/config/flag.xml.h:5
+#: ../hacks/config/flame.xml.h:4 ../hacks/config/flipflop.xml.h:4
+#: ../hacks/config/flipscreen3d.xml.h:4 ../hacks/config/fliptext.xml.h:4
+#: ../hacks/config/flow.xml.h:4 ../hacks/config/fluidballs.xml.h:4
+#: ../hacks/config/flyingtoasters.xml.h:4 ../hacks/config/fontglide.xml.h:4
+#: ../hacks/config/forest.xml.h:4 ../hacks/config/fuzzyflakes.xml.h:4
+#: ../hacks/config/galaxy.xml.h:4 ../hacks/config/gears.xml.h:4
+#: ../hacks/config/geodesic.xml.h:13 ../hacks/config/geodesicgears.xml.h:4
+#: ../hacks/config/gflux.xml.h:4 ../hacks/config/glblur.xml.h:4
+#: ../hacks/config/glcells.xml.h:4 ../hacks/config/gleidescope.xml.h:4
+#: ../hacks/config/glforestfire.xml.h:4 ../hacks/config/glhanoi.xml.h:4
+#: ../hacks/config/glitchpeg.xml.h:4 ../hacks/config/glknots.xml.h:4
 #: ../hacks/config/glmatrix.xml.h:4 ../hacks/config/glplanet.xml.h:4
 #: ../hacks/config/glschool.xml.h:4 ../hacks/config/glslideshow.xml.h:4
 #: ../hacks/config/glsnake.xml.h:4 ../hacks/config/gltext.xml.h:4
 #: ../hacks/config/goop.xml.h:4 ../hacks/config/grav.xml.h:4
 #: ../hacks/config/greynetic.xml.h:4 ../hacks/config/halftone.xml.h:4
-#: ../hacks/config/halo.xml.h:4 ../hacks/config/helix.xml.h:4
-#: ../hacks/config/hexadrop.xml.h:4 ../hacks/config/hexstrut.xml.h:4
-#: ../hacks/config/hopalong.xml.h:4 ../hacks/config/hydrostat.xml.h:4
-#: ../hacks/config/hyperball.xml.h:4 ../hacks/config/hypercube.xml.h:4
-#: ../hacks/config/hypertorus.xml.h:4 ../hacks/config/hypnowheel.xml.h:16
-#: ../hacks/config/ifs.xml.h:4 ../hacks/config/imsmap.xml.h:4
-#: ../hacks/config/interaggregate.xml.h:4 ../hacks/config/interference.xml.h:4
-#: ../hacks/config/intermomentary.xml.h:4 ../hacks/config/jigglypuff.xml.h:13
-#: ../hacks/config/jigsaw.xml.h:4 ../hacks/config/juggle.xml.h:4
-#: ../hacks/config/juggler3d.xml.h:4 ../hacks/config/julia.xml.h:4
-#: ../hacks/config/kaleidescope.xml.h:4 ../hacks/config/kaleidocycle.xml.h:4
-#: ../hacks/config/klein.xml.h:44 ../hacks/config/kumppa.xml.h:4
-#: ../hacks/config/lament.xml.h:4 ../hacks/config/laser.xml.h:4
-#: ../hacks/config/lavalite.xml.h:4 ../hacks/config/lcdscrub.xml.h:4
-#: ../hacks/config/lightning.xml.h:4 ../hacks/config/lisa.xml.h:4
-#: ../hacks/config/lissie.xml.h:4 ../hacks/config/lmorph.xml.h:4
-#: ../hacks/config/lockward.xml.h:4 ../hacks/config/loop.xml.h:4
-#: ../hacks/config/m6502.xml.h:9 ../hacks/config/maze.xml.h:4
+#: ../hacks/config/halo.xml.h:4 ../hacks/config/handsy.xml.h:4
+#: ../hacks/config/helix.xml.h:4 ../hacks/config/hexadrop.xml.h:4
+#: ../hacks/config/hexstrut.xml.h:4 ../hacks/config/hopalong.xml.h:4
+#: ../hacks/config/hydrostat.xml.h:4 ../hacks/config/hyperball.xml.h:4
+#: ../hacks/config/hypercube.xml.h:4 ../hacks/config/hypertorus.xml.h:4
+#: ../hacks/config/hypnowheel.xml.h:16 ../hacks/config/ifs.xml.h:4
+#: ../hacks/config/imsmap.xml.h:4 ../hacks/config/interaggregate.xml.h:4
+#: ../hacks/config/interference.xml.h:4 ../hacks/config/intermomentary.xml.h:4
+#: ../hacks/config/jigglypuff.xml.h:13 ../hacks/config/jigsaw.xml.h:4
+#: ../hacks/config/juggle.xml.h:4 ../hacks/config/juggler3d.xml.h:4
+#: ../hacks/config/julia.xml.h:4 ../hacks/config/kaleidescope.xml.h:4
+#: ../hacks/config/kaleidocycle.xml.h:4 ../hacks/config/klein.xml.h:44
+#: ../hacks/config/kumppa.xml.h:4 ../hacks/config/lament.xml.h:4
+#: ../hacks/config/laser.xml.h:4 ../hacks/config/lavalite.xml.h:4
+#: ../hacks/config/lcdscrub.xml.h:4 ../hacks/config/lightning.xml.h:4
+#: ../hacks/config/lisa.xml.h:4 ../hacks/config/lissie.xml.h:4
+#: ../hacks/config/lmorph.xml.h:4 ../hacks/config/lockward.xml.h:4
+#: ../hacks/config/loop.xml.h:4 ../hacks/config/m6502.xml.h:9
+#: ../hacks/config/maze.xml.h:4 ../hacks/config/maze3d.xml.h:7
 #: ../hacks/config/memscroller.xml.h:4 ../hacks/config/menger.xml.h:4
 #: ../hacks/config/metaballs.xml.h:4 ../hacks/config/mirrorblob.xml.h:4
 #: ../hacks/config/mismunch.xml.h:4 ../hacks/config/moebius.xml.h:4
@@ -1681,17 +1565,18 @@ msgstr "Частота кадров"
 #: ../hacks/config/molecule.xml.h:4 ../hacks/config/morph3d.xml.h:4
 #: ../hacks/config/mountain.xml.h:4 ../hacks/config/munch.xml.h:4
 #: ../hacks/config/nerverot.xml.h:4 ../hacks/config/noof.xml.h:4
-#: ../hacks/config/pacman.xml.h:4 ../hacks/config/penrose.xml.h:4
-#: ../hacks/config/petri.xml.h:4 ../hacks/config/phosphor.xml.h:4
-#: ../hacks/config/photopile.xml.h:17 ../hacks/config/piecewise.xml.h:4
-#: ../hacks/config/pinion.xml.h:4 ../hacks/config/pipes.xml.h:4
-#: ../hacks/config/polyhedra.xml.h:4 ../hacks/config/polyominoes.xml.h:5
-#: ../hacks/config/polytopes.xml.h:26 ../hacks/config/pong.xml.h:12
-#: ../hacks/config/popsquares.xml.h:4 ../hacks/config/projectiveplane.xml.h:37
-#: ../hacks/config/providence.xml.h:4 ../hacks/config/pulsar.xml.h:4
-#: ../hacks/config/pyro.xml.h:13 ../hacks/config/qix.xml.h:4
-#: ../hacks/config/quasicrystal.xml.h:4 ../hacks/config/queens.xml.h:4
-#: ../hacks/config/raverhoop.xml.h:4 ../hacks/config/ripples.xml.h:4
+#: ../hacks/config/pacman.xml.h:4 ../hacks/config/peepers.xml.h:4
+#: ../hacks/config/penrose.xml.h:4 ../hacks/config/petri.xml.h:4
+#: ../hacks/config/phosphor.xml.h:4 ../hacks/config/photopile.xml.h:17
+#: ../hacks/config/piecewise.xml.h:4 ../hacks/config/pinion.xml.h:4
+#: ../hacks/config/pipes.xml.h:4 ../hacks/config/polyhedra.xml.h:4
+#: ../hacks/config/polyominoes.xml.h:5 ../hacks/config/polytopes.xml.h:26
+#: ../hacks/config/pong.xml.h:12 ../hacks/config/popsquares.xml.h:4
+#: ../hacks/config/projectiveplane.xml.h:37 ../hacks/config/providence.xml.h:4
+#: ../hacks/config/pulsar.xml.h:4 ../hacks/config/pyro.xml.h:13
+#: ../hacks/config/qix.xml.h:4 ../hacks/config/quasicrystal.xml.h:4
+#: ../hacks/config/queens.xml.h:4 ../hacks/config/raverhoop.xml.h:4
+#: ../hacks/config/razzledazzle.xml.h:4 ../hacks/config/ripples.xml.h:4
 #: ../hacks/config/rocks.xml.h:4 ../hacks/config/romanboy.xml.h:40
 #: ../hacks/config/rotor.xml.h:4 ../hacks/config/rotzoomer.xml.h:4
 #: ../hacks/config/rubik.xml.h:4 ../hacks/config/rubikblocks.xml.h:4
@@ -1713,14 +1598,14 @@ msgstr "Частота кадров"
 #: ../hacks/config/topblock.xml.h:4 ../hacks/config/triangle.xml.h:4
 #: ../hacks/config/tronbit.xml.h:4 ../hacks/config/truchet.xml.h:4
 #: ../hacks/config/twang.xml.h:4 ../hacks/config/unicrud.xml.h:4
-#: ../hacks/config/unknownpleasures.xml.h:4 ../hacks/config/vigilance.xml.h:4
-#: ../hacks/config/vines.xml.h:4 ../hacks/config/wander.xml.h:4
-#: ../hacks/config/whirlygig.xml.h:6 ../hacks/config/winduprobot.xml.h:4
-#: ../hacks/config/worm.xml.h:4 ../hacks/config/wormhole.xml.h:4
-#: ../hacks/config/xanalogtv.xml.h:5 ../hacks/config/xflame.xml.h:4
-#: ../hacks/config/xlyap.xml.h:4 ../hacks/config/xmatrix.xml.h:17
-#: ../hacks/config/xrayswarm.xml.h:4 ../hacks/config/xspirograph.xml.h:4
-#: ../hacks/config/zoom.xml.h:4
+#: ../hacks/config/unknownpleasures.xml.h:4 ../hacks/config/vfeedback.xml.h:4
+#: ../hacks/config/vigilance.xml.h:4 ../hacks/config/vines.xml.h:4
+#: ../hacks/config/wander.xml.h:4 ../hacks/config/whirlygig.xml.h:6
+#: ../hacks/config/winduprobot.xml.h:4 ../hacks/config/worm.xml.h:4
+#: ../hacks/config/wormhole.xml.h:4 ../hacks/config/xanalogtv.xml.h:6
+#: ../hacks/config/xflame.xml.h:4 ../hacks/config/xlyap.xml.h:4
+#: ../hacks/config/xmatrix.xml.h:17 ../hacks/config/xrayswarm.xml.h:4
+#: ../hacks/config/xspirograph.xml.h:4 ../hacks/config/zoom.xml.h:4
 msgid "High"
 msgstr "Высокая"
 
@@ -1749,14 +1634,14 @@ msgstr "Искатели"
 #: ../hacks/config/anemotaxis.xml.h:13
 msgid ""
 "Searches for a source of odor in a turbulent atmosphere. The searcher is "
-"able to sense the odor and determine local instantaneous wind direction. The "
-"goal is to find the source in the shortest mean time. https://en.wikipedia."
-"org/wiki/Anemotaxis Written by Eugene Balkovsky; 2004."
-msgstr ""
+"able to sense the odor and determine local instantaneous wind direction. The"
+" goal is to find the source in the shortest mean time. "
+"https://en.wikipedia.org/wiki/Anemotaxis Written by Eugene Balkovsky; 2004."
+msgstr "Искатели источника запаха в турбулентной атмосфере. Искатель способен почувствовать запах и определить направление ветра. Целью является в кратчайшее время найти источник. https://en.wikipedia.org/wiki/Anemotaxis Автор Евгений Балковский; 2004."
 
 #: ../hacks/config/ant.xml.h:1
 msgid "Ant"
-msgstr ""
+msgstr "Муравей"
 
 #. #### -slow
 #: ../hacks/config/ant.xml.h:5 ../hacks/config/attraction.xml.h:21
@@ -1819,23 +1704,21 @@ msgstr "Большой"
 
 #: ../hacks/config/ant.xml.h:8
 msgid "Sharp turns"
-msgstr ""
+msgstr "Резкие повороты"
 
 #: ../hacks/config/ant.xml.h:9
 msgid "Truchet lines"
-msgstr ""
+msgstr "Линии Труше"
 
 #: ../hacks/config/ant.xml.h:10
 msgid "Draw eyes"
-msgstr ""
+msgstr "Нарисовать глаза"
 
 #: ../hacks/config/ant.xml.h:11
 msgid "Three"
-msgstr ""
+msgstr "Три"
 
-#.
 #. On a 2.93 gHz iMac i7, I get these rates with -delay 0:
-#.
 #. detail 3:  invisible
 #. detail 4:  barely visible
 #. detail 5:  1000+ fps, looks like noise at -delay 0, ok at -delay 20000
@@ -1847,10 +1730,8 @@ msgstr ""
 #. detail 13:  ~17 fps
 #. detail 14:   ~8 fps
 #. detail 15:   ~2 fps
-#.
 #. With the default -delay, CPU load only starts causing the frame rate
 #. to drop below 30 fps detail 12 or higher.
-#.
 #. #### -color [random]
 #: ../hacks/config/ant.xml.h:12 ../hacks/config/apollonian.xml.h:11
 #: ../hacks/config/attraction.xml.h:18 ../hacks/config/bouboule.xml.h:9
@@ -1886,35 +1767,35 @@ msgstr "Количество цветов"
 
 #: ../hacks/config/ant.xml.h:14
 msgid "Ants count"
-msgstr ""
+msgstr "Подсчёт муравьёв"
 
 #: ../hacks/config/ant.xml.h:15
 msgid "Ant size"
-msgstr ""
+msgstr "Размер муравья"
 
 #: ../hacks/config/ant.xml.h:16
 msgid "Random cell shape"
-msgstr ""
+msgstr "Случайные формы ячеек"
 
 #: ../hacks/config/ant.xml.h:17
 msgid "Three sided cells"
-msgstr ""
+msgstr "Трёхсторонние ячейки"
 
 #: ../hacks/config/ant.xml.h:18
 msgid "Four sided cells"
-msgstr ""
+msgstr "Четырёхсторонние ячейки"
 
 #: ../hacks/config/ant.xml.h:19
 msgid "Six sided cells"
-msgstr ""
+msgstr "Шестисторонние ячейки"
 
 #: ../hacks/config/ant.xml.h:20
 msgid "Nine sided cells"
-msgstr ""
+msgstr "Девятисторонние ячейки"
 
 #: ../hacks/config/ant.xml.h:21
 msgid "Twelve sided cells"
-msgstr ""
+msgstr "Двенадцатисторонние ячейки"
 
 #: ../hacks/config/ant.xml.h:24
 #, no-c-format
@@ -1922,14 +1803,14 @@ msgid ""
 "This screen saver was removed from the XScreenSaver distribution as of "
 "version 4.22. A cellular automaton that is really a two-dimensional Turing "
 "machine: as the heads (\"ants\") walk along the screen, they change pixel "
-"values in their path. Then, as they pass over changed pixels, their behavior "
-"is influenced. https://en.wikipedia.org/wiki/Langton%27s_ant https://en."
-"wikipedia.org/wiki/Turing_machine Written by David Bagley; 1997."
-msgstr ""
+"values in their path. Then, as they pass over changed pixels, their behavior"
+" is influenced. https://en.wikipedia.org/wiki/Langton%27s_ant "
+"https://en.wikipedia.org/wiki/Turing_machine Written by David Bagley; 1997."
+msgstr "Эта заставка была удалена из дистрибутива XScreenSaver в версии 4.22. Клеточный автомат, который представляет собой двумерную машину Тьюринга, где головы (\"муравьи\") ходят по экрану, изменяют значения пикселей на своём пути. Затем, когда они проходят через изменённые пиксели, они  влияют на их поведение. https://en.wikipedia.org/wiki/Langton%27s_ant https://en.wikipedia.org/wiki/Turing_machine Автор: Дэвид Бэгли; 1997."
 
 #: ../hacks/config/antinspect.xml.h:1
 msgid "AntInspect"
-msgstr ""
+msgstr "Муравей обследует"
 
 #: ../hacks/config/antinspect.xml.h:6
 msgid "Draw shadows"
@@ -1937,27 +1818,27 @@ msgstr "Прорисовывать тени"
 
 #: ../hacks/config/antinspect.xml.h:7
 msgid "Ants move spheres around a circle. Written by Blair Tennessy; 2004."
-msgstr ""
+msgstr "Муравьи катят сферы по кругу. Автор Блэр Теннесси; 2004."
 
 #: ../hacks/config/antmaze.xml.h:1
 msgid "AntMaze"
-msgstr ""
+msgstr "Муравьиный лабиринт"
 
 #: ../hacks/config/antmaze.xml.h:6
 msgid "Ants walk around a simple maze. Written by Blair Tennessy; 2005."
-msgstr ""
+msgstr "Муравьи гуляют в простом лабиринте. Автор Блэр Теннесси; 2005 год."
 
 #: ../hacks/config/antspotlight.xml.h:1
 msgid "AntSpotlight"
-msgstr ""
+msgstr "Муравей-фонарик"
 
 #: ../hacks/config/antspotlight.xml.h:6
 msgid "An ant walks over an image. Written by Blair Tennessy; 2003."
-msgstr ""
+msgstr "Муравей ходит по изображению. Автор Блэр Теннесси; 2003 год."
 
 #: ../hacks/config/apollonian.xml.h:1
 msgid "Apollonian"
-msgstr ""
+msgstr "Посвященный Аполлону"
 
 #: ../hacks/config/apollonian.xml.h:2 ../hacks/config/tangram.xml.h:13
 msgid "Draw labels"
@@ -1970,7 +1851,7 @@ msgstr "Включать альтернативную геометрию"
 #. don't know what -count does
 #: ../hacks/config/apollonian.xml.h:5 ../hacks/config/tessellimage.xml.h:11
 msgid "Shallow"
-msgstr "Ð\9dизкая"
+msgstr "Ð\9cелкая"
 
 #. don't know what -count does
 #: ../hacks/config/apollonian.xml.h:7 ../hacks/config/flipflop.xml.h:11
@@ -1981,7 +1862,7 @@ msgstr "Глубина"
 #. don't know what -count does
 #: ../hacks/config/apollonian.xml.h:9 ../hacks/config/tessellimage.xml.h:13
 msgid "Deep"
-msgstr "Ð\92Ñ\8bÑ\81окая"
+msgstr "Ð\93лÑ\83бокая"
 
 #. #### -color [random]
 #: ../hacks/config/apollonian.xml.h:10 ../hacks/config/attraction.xml.h:17
@@ -1995,37 +1876,38 @@ msgstr "Высокая"
 #: ../hacks/config/flame.xml.h:12 ../hacks/config/flow.xml.h:11
 #: ../hacks/config/forest.xml.h:5 ../hacks/config/galaxy.xml.h:9
 #: ../hacks/config/grav.xml.h:8 ../hacks/config/halo.xml.h:8
-#: ../hacks/config/hopalong.xml.h:9 ../hacks/config/imsmap.xml.h:11
-#: ../hacks/config/interference.xml.h:15 ../hacks/config/julia.xml.h:11
-#: ../hacks/config/laser.xml.h:9 ../hacks/config/lightning.xml.h:5
-#: ../hacks/config/lisa.xml.h:8 ../hacks/config/lissie.xml.h:8
-#: ../hacks/config/loop.xml.h:8 ../hacks/config/metaballs.xml.h:8
-#: ../hacks/config/moire.xml.h:5 ../hacks/config/moire2.xml.h:5
-#: ../hacks/config/mountain.xml.h:8 ../hacks/config/nerverot.xml.h:11
-#: ../hacks/config/penrose.xml.h:5 ../hacks/config/polyominoes.xml.h:9
-#: ../hacks/config/rd-bomb.xml.h:14 ../hacks/config/rdbomb.xml.h:14
-#: ../hacks/config/rocks.xml.h:14 ../hacks/config/rotor.xml.h:8
-#: ../hacks/config/shadebobs.xml.h:6 ../hacks/config/sierpinski.xml.h:11
-#: ../hacks/config/slip.xml.h:11 ../hacks/config/sphere.xml.h:5
-#: ../hacks/config/spiral.xml.h:9 ../hacks/config/squiral.xml.h:13
-#: ../hacks/config/starfish.xml.h:14 ../hacks/config/strange.xml.h:20
-#: ../hacks/config/swirl.xml.h:8 ../hacks/config/triangle.xml.h:5
-#: ../hacks/config/vines.xml.h:5 ../hacks/config/worm.xml.h:5
+#: ../hacks/config/handsy.xml.h:8 ../hacks/config/hopalong.xml.h:9
+#: ../hacks/config/imsmap.xml.h:11 ../hacks/config/interference.xml.h:15
+#: ../hacks/config/julia.xml.h:11 ../hacks/config/laser.xml.h:9
+#: ../hacks/config/lightning.xml.h:5 ../hacks/config/lisa.xml.h:8
+#: ../hacks/config/lissie.xml.h:8 ../hacks/config/loop.xml.h:8
+#: ../hacks/config/metaballs.xml.h:8 ../hacks/config/moire.xml.h:5
+#: ../hacks/config/moire2.xml.h:5 ../hacks/config/mountain.xml.h:8
+#: ../hacks/config/nerverot.xml.h:11 ../hacks/config/penrose.xml.h:5
+#: ../hacks/config/polyominoes.xml.h:9 ../hacks/config/rd-bomb.xml.h:14
+#: ../hacks/config/rdbomb.xml.h:14 ../hacks/config/rocks.xml.h:14
+#: ../hacks/config/rotor.xml.h:8 ../hacks/config/shadebobs.xml.h:6
+#: ../hacks/config/sierpinski.xml.h:11 ../hacks/config/slip.xml.h:11
+#: ../hacks/config/sphere.xml.h:5 ../hacks/config/spiral.xml.h:9
+#: ../hacks/config/squiral.xml.h:13 ../hacks/config/starfish.xml.h:14
+#: ../hacks/config/strange.xml.h:20 ../hacks/config/swirl.xml.h:8
+#: ../hacks/config/triangle.xml.h:5 ../hacks/config/vines.xml.h:5
+#: ../hacks/config/worm.xml.h:5
 msgid "Two"
 msgstr "Два"
 
 #: ../hacks/config/apollonian.xml.h:18
 #, no-c-format
 msgid ""
-"A fractal packing of circles with smaller circles, demonstrating Descartes's "
-"theorem. https://en.wikipedia.org/wiki/Apollonian_gasket https://en."
-"wikipedia.org/wiki/Descartes%27_theorem Written by Allan R. Wilks and David "
-"Bagley; 2002."
-msgstr ""
+"A fractal packing of circles with smaller circles, demonstrating Descartes's"
+" theorem. https://en.wikipedia.org/wiki/Apollonian_gasket "
+"https://en.wikipedia.org/wiki/Descartes%27_theorem Written by Allan R. Wilks"
+" and David Bagley; 2002."
+msgstr "Фрактальная упаковка кругов с меньшими кругами, демонстрирует теорему Декарта. https://en.wikipedia.org/wiki/Apollonian_gasket https://en.wikipedia.org/wiki/Descartes%27_theorem Автор Аллан Р. Уилкса и Дэвид Бэгли; 2002."
 
 #: ../hacks/config/apple2.xml.h:1
 msgid "Apple2"
-msgstr ""
+msgstr "Apple2"
 
 #: ../hacks/config/apple2.xml.h:2
 msgid "Choose display mode randomly"
@@ -2033,11 +1915,11 @@ msgstr "Случайный выбор режима дисплея"
 
 #: ../hacks/config/apple2.xml.h:3
 msgid "Display scrolling text"
-msgstr "Ð\94иÑ\81плей Ñ\81 Ð¿Ñ\80окÑ\80Ñ\83Ñ\82кой текста"
+msgstr "Ð\9fоказаÑ\82Ñ\8c Ð¿Ñ\80окÑ\80Ñ\83Ñ\82кÑ\83 текста"
 
 #: ../hacks/config/apple2.xml.h:4
 msgid "Display images"
-msgstr "Ð\98зобÑ\80ажениÑ\8f Ñ\8dкÑ\80ана"
+msgstr "Ð\9fоказаÑ\82Ñ\8c Ð¸Ð·Ð¾Ð±Ñ\80ажениÑ\8f"
 
 #: ../hacks/config/apple2.xml.h:5
 msgid "Run basic programs"
@@ -2054,11 +1936,9 @@ msgstr "Запуск базовых программ"
 msgid "10 seconds"
 msgstr "10 секунд"
 
-#.
 #. <number id="eulerpower" type="slider" arg="-eulerpower %"
 #. _label="Power" _low-label="Low" _high-label="High"
 #. low="0.5" high="3.0" default="1.0"/>
-#.
 #: ../hacks/config/apple2.xml.h:7 ../hacks/config/blitspin.xml.h:7
 #: ../hacks/config/braid.xml.h:6 ../hacks/config/bsod.xml.h:3
 #: ../hacks/config/bumps.xml.h:9 ../hacks/config/cynosure.xml.h:9
@@ -2066,50 +1946,56 @@ msgstr "10 секунд"
 #: ../hacks/config/distort.xml.h:6 ../hacks/config/drift.xml.h:6
 #: ../hacks/config/eruption.xml.h:20 ../hacks/config/euler2d.xml.h:26
 #: ../hacks/config/galaxy.xml.h:7 ../hacks/config/geodesicgears.xml.h:6
-#: ../hacks/config/glsnake.xml.h:6 ../hacks/config/hopalong.xml.h:6
-#: ../hacks/config/laser.xml.h:7 ../hacks/config/menger.xml.h:6
-#: ../hacks/config/metaballs.xml.h:6 ../hacks/config/mismunch.xml.h:6
-#: ../hacks/config/moire.xml.h:3 ../hacks/config/molecule.xml.h:6
-#: ../hacks/config/munch.xml.h:6 ../hacks/config/nerverot.xml.h:6
-#: ../hacks/config/pedal.xml.h:3 ../hacks/config/polyhedra.xml.h:9
-#: ../hacks/config/polyominoes.xml.h:7 ../hacks/config/ripples.xml.h:6
-#: ../hacks/config/rotzoomer.xml.h:6 ../hacks/config/shadebobs.xml.h:14
-#: ../hacks/config/sierpinski3d.xml.h:6 ../hacks/config/slidescreen.xml.h:9
-#: ../hacks/config/spheremonics.xml.h:6 ../hacks/config/spotlight.xml.h:6
-#: ../hacks/config/starfish.xml.h:9 ../hacks/config/substrate.xml.h:6
-#: ../hacks/config/superquadrics.xml.h:10 ../hacks/config/surfaces.xml.h:6
-#: ../hacks/config/tessellimage.xml.h:9 ../hacks/config/twang.xml.h:6
-#: ../hacks/config/vermiculate.xml.h:3 ../hacks/config/vidwhacker.xml.h:3
-#: ../hacks/config/wander.xml.h:7 ../hacks/config/zoom.xml.h:6
+#: ../hacks/config/glitchpeg.xml.h:6 ../hacks/config/glsnake.xml.h:6
+#: ../hacks/config/hopalong.xml.h:6 ../hacks/config/laser.xml.h:7
+#: ../hacks/config/menger.xml.h:6 ../hacks/config/metaballs.xml.h:6
+#: ../hacks/config/mismunch.xml.h:6 ../hacks/config/moire.xml.h:3
+#: ../hacks/config/molecule.xml.h:6 ../hacks/config/munch.xml.h:6
+#: ../hacks/config/nerverot.xml.h:6 ../hacks/config/pedal.xml.h:3
+#: ../hacks/config/polyhedra.xml.h:9 ../hacks/config/polyominoes.xml.h:7
+#: ../hacks/config/ripples.xml.h:6 ../hacks/config/rotzoomer.xml.h:6
+#: ../hacks/config/shadebobs.xml.h:14 ../hacks/config/sierpinski3d.xml.h:6
+#: ../hacks/config/slidescreen.xml.h:9 ../hacks/config/spheremonics.xml.h:6
+#: ../hacks/config/spotlight.xml.h:6 ../hacks/config/starfish.xml.h:9
+#: ../hacks/config/substrate.xml.h:6 ../hacks/config/superquadrics.xml.h:10
+#: ../hacks/config/surfaces.xml.h:6 ../hacks/config/tessellimage.xml.h:9
+#: ../hacks/config/twang.xml.h:6 ../hacks/config/vermiculate.xml.h:3
+#: ../hacks/config/vidwhacker.xml.h:3 ../hacks/config/wander.xml.h:7
+#: ../hacks/config/zoom.xml.h:6
 msgid "Duration"
 msgstr "Продолжительность"
 
 #: ../hacks/config/apple2.xml.h:8 ../hacks/config/blitspin.xml.h:8
 #: ../hacks/config/bumps.xml.h:10 ../hacks/config/decayscreen.xml.h:7
-#: ../hacks/config/distort.xml.h:7 ../hacks/config/ripples.xml.h:7
-#: ../hacks/config/rotzoomer.xml.h:7 ../hacks/config/slidescreen.xml.h:10
-#: ../hacks/config/spotlight.xml.h:7 ../hacks/config/tessellimage.xml.h:10
-#: ../hacks/config/twang.xml.h:7 ../hacks/config/zoom.xml.h:7
+#: ../hacks/config/distort.xml.h:7 ../hacks/config/glitchpeg.xml.h:7
+#: ../hacks/config/ripples.xml.h:7 ../hacks/config/rotzoomer.xml.h:7
+#: ../hacks/config/slidescreen.xml.h:10 ../hacks/config/spotlight.xml.h:7
+#: ../hacks/config/tessellimage.xml.h:10 ../hacks/config/twang.xml.h:7
+#: ../hacks/config/zoom.xml.h:7
 msgid "10 minutes"
 msgstr "10 минут"
 
-#: ../hacks/config/apple2.xml.h:11 ../hacks/config/m6502.xml.h:8
-#: ../hacks/config/xanalogtv.xml.h:4
+#: ../hacks/config/apple2.xml.h:11 ../hacks/config/filmleader.xml.h:3
+#: ../hacks/config/m6502.xml.h:8 ../hacks/config/vfeedback.xml.h:3
+#: ../hacks/config/xanalogtv.xml.h:5
 msgid "Color Knob"
 msgstr "Цвет пикселя"
 
-#: ../hacks/config/apple2.xml.h:13 ../hacks/config/m6502.xml.h:10
-#: ../hacks/config/xanalogtv.xml.h:6
+#: ../hacks/config/apple2.xml.h:13 ../hacks/config/filmleader.xml.h:5
+#: ../hacks/config/m6502.xml.h:10 ../hacks/config/vfeedback.xml.h:5
+#: ../hacks/config/xanalogtv.xml.h:7
 msgid "Tint Knob"
 msgstr "Оттенок пикселя"
 
-#: ../hacks/config/apple2.xml.h:14 ../hacks/config/m6502.xml.h:11
-#: ../hacks/config/pong.xml.h:11 ../hacks/config/xanalogtv.xml.h:7
+#: ../hacks/config/apple2.xml.h:14 ../hacks/config/filmleader.xml.h:7
+#: ../hacks/config/m6502.xml.h:14 ../hacks/config/pong.xml.h:11
+#: ../hacks/config/vfeedback.xml.h:7 ../hacks/config/xanalogtv.xml.h:8
 msgid "Brightness Knob"
 msgstr "Яркость пикселя"
 
-#: ../hacks/config/apple2.xml.h:15 ../hacks/config/m6502.xml.h:12
-#: ../hacks/config/pong.xml.h:13 ../hacks/config/xanalogtv.xml.h:8
+#: ../hacks/config/apple2.xml.h:15 ../hacks/config/filmleader.xml.h:8
+#: ../hacks/config/m6502.xml.h:15 ../hacks/config/pong.xml.h:13
+#: ../hacks/config/vfeedback.xml.h:8 ../hacks/config/xanalogtv.xml.h:9
 msgid "Contrast Knob"
 msgstr "Контраст пикселя"
 
@@ -2123,13 +2009,14 @@ msgid ""
 "and displays them within the limitations of the Apple ][ display hardware. "
 "(Six available colors in hi-res mode!) On MacOS and Linux, this program is "
 "also a fully-functional VT100 emulator! Run it as an application instead of "
-"as a screen saver and you can use it as a terminal. https://en.wikipedia.org/"
-"wiki/Apple_II_series Written by Trevor Blackwell and Jamie Zawinski; 2003."
-msgstr ""
+"as a screen saver and you can use it as a terminal. "
+"https://en.wikipedia.org/wiki/Apple_II_series Written by Trevor Blackwell "
+"and Jamie Zawinski; 2003."
+msgstr "Компания Apple][+ компьютерное моделирование, во всей своей красе 1979. Он также воспроизводит внешний вид дисплея на цветной телевизор. В «базовом режиме программирования\", в моделировании типов пользователей, в базовой программе, и запускает его. В \"текстовом режиме\", он отображает вывод программы, или содержимое файла, или URL. В \"режиме слайд-шоу\", он выбирает случайные изображения и отображает их в пределах ограничений Apple][аппаратных средств отображения. (Шесть доступных цветов в Hi-Res режиме!) На MacOS и Linux, эта программа имеет также полнофункциональный эмулятор VT100! Запустите его как приложение вместо того, чтобы пользоваться им в качестве экранной заставки, и вы сможете использовать его в качестве терминала. https://en.wikipedia.org/wiki/Apple_II_series Автор Блэквелл и Джейми Завински; 2003."
 
 #: ../hacks/config/atlantis.xml.h:1
 msgid "Atlantis"
-msgstr ""
+msgstr "Атлантида"
 
 #: ../hacks/config/atlantis.xml.h:6
 msgid "Whale speed"
@@ -2141,7 +2028,7 @@ msgstr "Пугливо"
 
 #: ../hacks/config/atlantis.xml.h:9
 msgid "Shark proximity"
-msgstr "Ð\9fоведение акулы"
+msgstr "Ð\91лизоÑ\81Ñ\82Ñ\8c акулы"
 
 #: ../hacks/config/atlantis.xml.h:10
 msgid "Agressive"
@@ -2166,7 +2053,7 @@ msgstr "Количество акул"
 #: ../hacks/config/lisa.xml.h:15 ../hacks/config/lissie.xml.h:13
 #: ../hacks/config/skytentacles.xml.h:4
 msgid "20"
-msgstr ""
+msgstr "20"
 
 #: ../hacks/config/atlantis.xml.h:14
 msgid "Shimmering water"
@@ -2190,44 +2077,45 @@ msgstr "Градиентный фон"
 #: ../hacks/config/boing.xml.h:13 ../hacks/config/bouncingcow.xml.h:11
 #: ../hacks/config/boxed.xml.h:24 ../hacks/config/cage.xml.h:5
 #: ../hacks/config/cityflow.xml.h:16 ../hacks/config/companioncube.xml.h:13
-#: ../hacks/config/crackberg.xml.h:17 ../hacks/config/cube21.xml.h:25
-#: ../hacks/config/cubenetic.xml.h:25 ../hacks/config/cubestack.xml.h:15
-#: ../hacks/config/cubestorm.xml.h:16 ../hacks/config/cubetwist.xml.h:17
-#: ../hacks/config/dangerball.xml.h:13 ../hacks/config/discoball.xml.h:13
-#: ../hacks/config/dnalogo.xml.h:9 ../hacks/config/dymaxionmap.xml.h:13
-#: ../hacks/config/extrusion.xml.h:16 ../hacks/config/flipflop.xml.h:13
-#: ../hacks/config/flyingtoasters.xml.h:13 ../hacks/config/gears.xml.h:13
-#: ../hacks/config/geodesic.xml.h:6 ../hacks/config/geodesicgears.xml.h:10
-#: ../hacks/config/glcells.xml.h:33 ../hacks/config/glforestfire.xml.h:15
-#: ../hacks/config/glhanoi.xml.h:15 ../hacks/config/glknots.xml.h:23
-#: ../hacks/config/glmatrix.xml.h:19 ../hacks/config/glplanet.xml.h:12
-#: ../hacks/config/glschool.xml.h:13 ../hacks/config/glsnake.xml.h:17
-#: ../hacks/config/gltext.xml.h:18 ../hacks/config/hexstrut.xml.h:16
+#: ../hacks/config/crackberg.xml.h:17 ../hacks/config/crumbler.xml.h:14
+#: ../hacks/config/cube21.xml.h:25 ../hacks/config/cubenetic.xml.h:25
+#: ../hacks/config/cubestack.xml.h:15 ../hacks/config/cubestorm.xml.h:19
+#: ../hacks/config/cubetwist.xml.h:17 ../hacks/config/dangerball.xml.h:13
+#: ../hacks/config/discoball.xml.h:13 ../hacks/config/dnalogo.xml.h:8
+#: ../hacks/config/dymaxionmap.xml.h:15 ../hacks/config/extrusion.xml.h:16
+#: ../hacks/config/flipflop.xml.h:13 ../hacks/config/flyingtoasters.xml.h:13
+#: ../hacks/config/gears.xml.h:13 ../hacks/config/geodesic.xml.h:6
+#: ../hacks/config/geodesicgears.xml.h:10 ../hacks/config/glcells.xml.h:33
+#: ../hacks/config/glforestfire.xml.h:15 ../hacks/config/glhanoi.xml.h:15
+#: ../hacks/config/glknots.xml.h:23 ../hacks/config/glmatrix.xml.h:19
+#: ../hacks/config/glplanet.xml.h:12 ../hacks/config/glschool.xml.h:13
+#: ../hacks/config/glsnake.xml.h:17 ../hacks/config/gltext.xml.h:18
+#: ../hacks/config/handsy.xml.h:22 ../hacks/config/hexstrut.xml.h:16
 #: ../hacks/config/hilbert.xml.h:21 ../hacks/config/hydrostat.xml.h:28
 #: ../hacks/config/hypertorus.xml.h:6 ../hacks/config/jigglypuff.xml.h:9
 #: ../hacks/config/kaleidocycle.xml.h:20 ../hacks/config/lament.xml.h:6
 #: ../hacks/config/lavalite.xml.h:15 ../hacks/config/menger.xml.h:19
 #: ../hacks/config/mirrorblob.xml.h:26 ../hacks/config/moebiusgears.xml.h:13
-#: ../hacks/config/molecule.xml.h:11 ../hacks/config/pinion.xml.h:15
-#: ../hacks/config/pipes.xml.h:21 ../hacks/config/polyhedra.xml.h:166
-#: ../hacks/config/providence.xml.h:6 ../hacks/config/queens.xml.h:5
-#: ../hacks/config/rubikblocks.xml.h:19 ../hacks/config/sballs.xml.h:15
-#: ../hacks/config/sierpinski3d.xml.h:9 ../hacks/config/speedmine.xml.h:16
-#: ../hacks/config/spheremonics.xml.h:21 ../hacks/config/splitflap.xml.h:24
-#: ../hacks/config/sproingies.xml.h:8 ../hacks/config/stonerview.xml.h:5
-#: ../hacks/config/superquadrics.xml.h:12 ../hacks/config/tangram.xml.h:14
-#: ../hacks/config/topblock.xml.h:23 ../hacks/config/tronbit.xml.h:10
-#: ../hacks/config/unknownpleasures.xml.h:13
+#: ../hacks/config/molecule.xml.h:11 ../hacks/config/peepers.xml.h:16
+#: ../hacks/config/pinion.xml.h:15 ../hacks/config/pipes.xml.h:21
+#: ../hacks/config/polyhedra.xml.h:166 ../hacks/config/providence.xml.h:6
+#: ../hacks/config/queens.xml.h:5 ../hacks/config/rubikblocks.xml.h:19
+#: ../hacks/config/sballs.xml.h:15 ../hacks/config/sierpinski3d.xml.h:9
+#: ../hacks/config/speedmine.xml.h:16 ../hacks/config/spheremonics.xml.h:21
+#: ../hacks/config/splitflap.xml.h:24 ../hacks/config/sproingies.xml.h:8
+#: ../hacks/config/stonerview.xml.h:5 ../hacks/config/superquadrics.xml.h:12
+#: ../hacks/config/tangram.xml.h:14 ../hacks/config/topblock.xml.h:23
+#: ../hacks/config/tronbit.xml.h:10 ../hacks/config/unknownpleasures.xml.h:16
 msgid "Wireframe"
 msgstr "Каркасное изображение"
 
 #: ../hacks/config/atlantis.xml.h:20
 msgid "Sharks, dolphins and whales. Written by Mark Kilgard; 1998."
-msgstr ""
+msgstr "Акулы, дельфины и киты. Автор Марк Килгард; 1998."
 
 #: ../hacks/config/attraction.xml.h:1
 msgid "Attraction"
-msgstr ""
+msgstr "Тяготение"
 
 #: ../hacks/config/attraction.xml.h:2 ../hacks/config/juggle.xml.h:13
 #: ../hacks/config/juggler3d.xml.h:13
@@ -2236,8 +2124,8 @@ msgstr "Мячи"
 
 #: ../hacks/config/attraction.xml.h:3 ../hacks/config/deluxe.xml.h:6
 #: ../hacks/config/lmorph.xml.h:12 ../hacks/config/pedal.xml.h:6
-#: ../hacks/config/starfish.xml.h:12 ../hacks/config/surfaces.xml.h:23
-#: ../hacks/config/whirlygig.xml.h:3
+#: ../hacks/config/razzledazzle.xml.h:15 ../hacks/config/starfish.xml.h:12
+#: ../hacks/config/surfaces.xml.h:23 ../hacks/config/whirlygig.xml.h:3
 msgid "Lines"
 msgstr "Линии"
 
@@ -2245,7 +2133,7 @@ msgstr "Линии"
 msgid "Tails"
 msgstr "Хвосты"
 
-#: ../hacks/config/attraction.xml.h:5
+#: ../hacks/config/attraction.xml.h:5 ../hacks/config/crumbler.xml.h:9
 msgid "Polygons"
 msgstr "Многоугольники"
 
@@ -2267,38 +2155,36 @@ msgstr "Игнорировать границы экрана"
 
 #: ../hacks/config/attraction.xml.h:10
 msgid "Ball count"
-msgstr "Ð\9aолиÑ\87еÑ\81Ñ\82во мячей"
+msgstr "Ð\9fодÑ\81Ñ\87Ñ\91Ñ\82 мячей"
 
 #: ../hacks/config/attraction.xml.h:12
 msgid "Environmental viscosity"
 msgstr "Вязкость окружения"
 
-#.
 #. <number id="eulerpower" type="slider" arg="-eulerpower %"
 #. _label="Power" _low-label="Low" _high-label="High"
 #. low="0.5" high="3.0" default="1.0"/>
-#.
 #: ../hacks/config/attraction.xml.h:14 ../hacks/config/binaryring.xml.h:5
 #: ../hacks/config/blocktube.xml.h:5 ../hacks/config/braid.xml.h:5
 #: ../hacks/config/celtic.xml.h:5 ../hacks/config/cube21.xml.h:21
-#: ../hacks/config/cynosure.xml.h:8 ../hacks/config/drift.xml.h:5
-#: ../hacks/config/eruption.xml.h:19 ../hacks/config/euler2d.xml.h:13
-#: ../hacks/config/fiberlamp.xml.h:8 ../hacks/config/flow.xml.h:13
-#: ../hacks/config/galaxy.xml.h:6 ../hacks/config/glcells.xml.h:5
-#: ../hacks/config/hydrostat.xml.h:19 ../hacks/config/juggle.xml.h:8
-#: ../hacks/config/juggler3d.xml.h:8 ../hacks/config/laser.xml.h:6
-#: ../hacks/config/menger.xml.h:5 ../hacks/config/metaballs.xml.h:5
-#: ../hacks/config/mismunch.xml.h:5 ../hacks/config/munch.xml.h:5
-#: ../hacks/config/nerverot.xml.h:5 ../hacks/config/petri.xml.h:22
-#: ../hacks/config/photopile.xml.h:18 ../hacks/config/pipes.xml.h:8
-#: ../hacks/config/polyominoes.xml.h:6 ../hacks/config/rotor.xml.h:5
-#: ../hacks/config/rubikblocks.xml.h:15 ../hacks/config/shadebobs.xml.h:13
-#: ../hacks/config/sierpinski3d.xml.h:5 ../hacks/config/skytentacles.xml.h:5
-#: ../hacks/config/slidescreen.xml.h:5 ../hacks/config/sonar.xml.h:24
-#: ../hacks/config/spheremonics.xml.h:5 ../hacks/config/substrate.xml.h:5
-#: ../hacks/config/superquadrics.xml.h:9 ../hacks/config/surfaces.xml.h:5
-#: ../hacks/config/vermiculate.xml.h:2 ../hacks/config/wander.xml.h:6
-#: ../hacks/config/whirlwindwarp.xml.h:5
+#: ../hacks/config/cubestorm.xml.h:11 ../hacks/config/cynosure.xml.h:8
+#: ../hacks/config/drift.xml.h:5 ../hacks/config/eruption.xml.h:19
+#: ../hacks/config/euler2d.xml.h:13 ../hacks/config/fiberlamp.xml.h:8
+#: ../hacks/config/flow.xml.h:13 ../hacks/config/galaxy.xml.h:6
+#: ../hacks/config/glcells.xml.h:5 ../hacks/config/hydrostat.xml.h:19
+#: ../hacks/config/juggle.xml.h:8 ../hacks/config/juggler3d.xml.h:8
+#: ../hacks/config/laser.xml.h:6 ../hacks/config/menger.xml.h:5
+#: ../hacks/config/metaballs.xml.h:5 ../hacks/config/mismunch.xml.h:5
+#: ../hacks/config/munch.xml.h:5 ../hacks/config/nerverot.xml.h:5
+#: ../hacks/config/petri.xml.h:22 ../hacks/config/photopile.xml.h:18
+#: ../hacks/config/pipes.xml.h:8 ../hacks/config/polyominoes.xml.h:6
+#: ../hacks/config/rotor.xml.h:5 ../hacks/config/rubikblocks.xml.h:15
+#: ../hacks/config/shadebobs.xml.h:13 ../hacks/config/sierpinski3d.xml.h:5
+#: ../hacks/config/skytentacles.xml.h:5 ../hacks/config/slidescreen.xml.h:5
+#: ../hacks/config/sonar.xml.h:24 ../hacks/config/spheremonics.xml.h:5
+#: ../hacks/config/substrate.xml.h:5 ../hacks/config/superquadrics.xml.h:9
+#: ../hacks/config/surfaces.xml.h:5 ../hacks/config/vermiculate.xml.h:2
+#: ../hacks/config/wander.xml.h:6 ../hacks/config/whirlwindwarp.xml.h:5
 msgid "Short"
 msgstr "Короткая"
 
@@ -2308,40 +2194,38 @@ msgstr "Короткая"
 msgid "Trail length"
 msgstr "Длина следа"
 
-#.
 #. <number id="eulerpower" type="slider" arg="-eulerpower %"
 #. _label="Power" _low-label="Low" _high-label="High"
 #. low="0.5" high="3.0" default="1.0"/>
-#.
 #: ../hacks/config/attraction.xml.h:16 ../hacks/config/binaryring.xml.h:7
 #: ../hacks/config/blocktube.xml.h:7 ../hacks/config/braid.xml.h:7
 #: ../hacks/config/celtic.xml.h:7 ../hacks/config/cube21.xml.h:23
-#: ../hacks/config/cynosure.xml.h:10 ../hacks/config/drift.xml.h:7
-#: ../hacks/config/eruption.xml.h:21 ../hacks/config/euler2d.xml.h:20
-#: ../hacks/config/fiberlamp.xml.h:10 ../hacks/config/flow.xml.h:15
-#: ../hacks/config/fontglide.xml.h:10 ../hacks/config/galaxy.xml.h:8
-#: ../hacks/config/glcells.xml.h:7 ../hacks/config/hydrostat.xml.h:21
-#: ../hacks/config/juggle.xml.h:10 ../hacks/config/juggler3d.xml.h:10
-#: ../hacks/config/laser.xml.h:8 ../hacks/config/menger.xml.h:7
-#: ../hacks/config/metaballs.xml.h:7 ../hacks/config/mismunch.xml.h:7
-#: ../hacks/config/munch.xml.h:7 ../hacks/config/nerverot.xml.h:7
-#: ../hacks/config/petri.xml.h:24 ../hacks/config/photopile.xml.h:20
-#: ../hacks/config/pipes.xml.h:10 ../hacks/config/polyominoes.xml.h:8
-#: ../hacks/config/raverhoop.xml.h:17 ../hacks/config/rotor.xml.h:7
-#: ../hacks/config/rubikblocks.xml.h:17 ../hacks/config/shadebobs.xml.h:15
-#: ../hacks/config/sierpinski3d.xml.h:7 ../hacks/config/skytentacles.xml.h:7
-#: ../hacks/config/slidescreen.xml.h:7 ../hacks/config/sonar.xml.h:26
-#: ../hacks/config/spheremonics.xml.h:7 ../hacks/config/substrate.xml.h:7
-#: ../hacks/config/superquadrics.xml.h:11 ../hacks/config/surfaces.xml.h:7
-#: ../hacks/config/tangram.xml.h:7 ../hacks/config/vermiculate.xml.h:4
-#: ../hacks/config/wander.xml.h:8 ../hacks/config/whirlwindwarp.xml.h:7
-#: ../hacks/config/xlyap.xml.h:7
+#: ../hacks/config/cubestorm.xml.h:13 ../hacks/config/cynosure.xml.h:10
+#: ../hacks/config/drift.xml.h:7 ../hacks/config/eruption.xml.h:21
+#: ../hacks/config/euler2d.xml.h:20 ../hacks/config/fiberlamp.xml.h:10
+#: ../hacks/config/flow.xml.h:15 ../hacks/config/fontglide.xml.h:10
+#: ../hacks/config/galaxy.xml.h:8 ../hacks/config/glcells.xml.h:7
+#: ../hacks/config/hydrostat.xml.h:21 ../hacks/config/juggle.xml.h:10
+#: ../hacks/config/juggler3d.xml.h:10 ../hacks/config/laser.xml.h:8
+#: ../hacks/config/menger.xml.h:7 ../hacks/config/metaballs.xml.h:7
+#: ../hacks/config/mismunch.xml.h:7 ../hacks/config/munch.xml.h:7
+#: ../hacks/config/nerverot.xml.h:7 ../hacks/config/petri.xml.h:24
+#: ../hacks/config/photopile.xml.h:20 ../hacks/config/pipes.xml.h:10
+#: ../hacks/config/polyominoes.xml.h:8 ../hacks/config/raverhoop.xml.h:17
+#: ../hacks/config/rotor.xml.h:7 ../hacks/config/rubikblocks.xml.h:17
+#: ../hacks/config/shadebobs.xml.h:15 ../hacks/config/sierpinski3d.xml.h:7
+#: ../hacks/config/skytentacles.xml.h:7 ../hacks/config/slidescreen.xml.h:7
+#: ../hacks/config/sonar.xml.h:26 ../hacks/config/spheremonics.xml.h:7
+#: ../hacks/config/substrate.xml.h:7 ../hacks/config/superquadrics.xml.h:11
+#: ../hacks/config/surfaces.xml.h:7 ../hacks/config/tangram.xml.h:7
+#: ../hacks/config/vermiculate.xml.h:4 ../hacks/config/wander.xml.h:8
+#: ../hacks/config/whirlwindwarp.xml.h:7 ../hacks/config/xlyap.xml.h:7
 msgid "Long"
 msgstr "Длинная"
 
 #: ../hacks/config/attraction.xml.h:20
 msgid "Ball mass"
-msgstr "РазмеÑ\80 мяча"
+msgstr "Ð\9cаÑ\81Ñ\81а мяча"
 
 #: ../hacks/config/attraction.xml.h:22
 msgid "Repulsion threshold"
@@ -2366,20 +2250,20 @@ msgstr "Внутрь"
 #: ../hacks/config/attraction.xml.h:33
 msgid ""
 "Points attract each other up to a certain distance, and then begin to repel "
-"each other. The attraction/repulsion is proportional to the distance between "
-"any two particles, similar to the strong and weak nuclear forces. Written by "
-"Jamie Zawinski and John Pezaris; 1992."
-msgstr ""
+"each other. The attraction/repulsion is proportional to the distance between"
+" any two particles, similar to the strong and weak nuclear forces. Written "
+"by Jamie Zawinski and John Pezaris; 1992."
+msgstr "Точки притягивают друг друга до определённого предела, а затем начинают отталкиваться друг от друга. Притяжение/отталкивание пропорционально расстоянию между любыми двумя частицами, похожими на сильные и слабые ядерные силы. Автор Джейми Завински и Джон Пезарис; 1992 год."
 
 #: ../hacks/config/atunnel.xml.h:1
 msgid "Atunnel"
-msgstr ""
+msgstr "Гипнотический туннель"
 
 #: ../hacks/config/atunnel.xml.h:5 ../hacks/config/blocktube.xml.h:9
 #: ../hacks/config/cubenetic.xml.h:24 ../hacks/config/glmatrix.xml.h:18
 #: ../hacks/config/lament.xml.h:5 ../hacks/config/sballs.xml.h:14
 msgid "Textured"
-msgstr "Текстуры"
+msgstr "Текстурированный"
 
 #: ../hacks/config/atunnel.xml.h:6 ../hacks/config/boing.xml.h:11
 #: ../hacks/config/crackberg.xml.h:12
@@ -2390,15 +2274,15 @@ msgstr "Освещение"
 msgid ""
 "Zooming through a textured tunnel. Written by Eric Lassauge and Roman "
 "Podobedov; 2003."
-msgstr ""
+msgstr "Сквозь текстурированный туннель. Автор Эрик Лассуж и Роман Подобедов; 2003."
 
 #: ../hacks/config/barcode.xml.h:1
 msgid "Barcode"
-msgstr ""
+msgstr "Штрих-код"
 
 #: ../hacks/config/barcode.xml.h:5
 msgid "Scrolling barcodes"
-msgstr "Ð\94вижÑ\83щиеся штрих-коды"
+msgstr "Ð\9fÑ\80окÑ\80Ñ\83Ñ\87иваÑ\8eщиеся штрих-коды"
 
 #: ../hacks/config/barcode.xml.h:6
 msgid "Barcode grid"
@@ -2415,14 +2299,15 @@ msgstr "Часы в виде штрих-кода (24 часа)"
 #: ../hacks/config/barcode.xml.h:10
 msgid ""
 "Colorful scrolling barcodes. CONSUME! The barcodes follow the UPC-A, UPC-E, "
-"EAN-8 or EAN-13 standards. https://en.wikipedia.org/wiki/"
-"Universal_Product_Code https://en.wikipedia.org/wiki/European_Article_Number "
-"Written by Dan Bornstein and Jamie Zawinski; 2003."
-msgstr ""
+"EAN-8 or EAN-13 standards. "
+"https://en.wikipedia.org/wiki/Universal_Product_Code "
+"https://en.wikipedia.org/wiki/European_Article_Number Written by Dan "
+"Bornstein and Jamie Zawinski; 2003."
+msgstr "Красочные прокрутки штрих-кодов. КУШАТЬ ПОДАНО! Штрих-коды стандартов UPC-A, UPC-E, EAN-8 или EAN-13. https://en.wikipedia.org/wiki/Universal_Product_Code https://en.wikipedia.org/wiki/European_Article_Number; Авторы Дэн Борнстейн и Джейми Завински; 2003."
 
 #: ../hacks/config/binaryring.xml.h:1
 msgid "BinaryRing"
-msgstr ""
+msgstr "Бинарное кольцо"
 
 #: ../hacks/config/binaryring.xml.h:3
 msgid "Growth delay"
@@ -2447,18 +2332,18 @@ msgstr "Много"
 
 #: ../hacks/config/binaryring.xml.h:11
 msgid "Fade with colors"
-msgstr "Ð\9fеÑ\80еÑ\85од Ñ\81 цветами"
+msgstr "Ð\97аÑ\82Ñ\83Ñ\85аÑ\82Ñ\8c цветами"
 
 #: ../hacks/config/binaryring.xml.h:12
 msgid ""
 "A system of path tracing particles evolves continuously from an initial "
 "creation, alternating dark and light colors. Written by J. Tarbell and "
 "Emilio Del Tessandoro; 2014."
-msgstr ""
+msgstr "Система отслеживания развития путей частиц; чередующихся тёмных и светлых тонов цвета. Авторы Дж. Тарбелл и Эмилио Дел Тессандоро; 2014 год."
 
 #: ../hacks/config/blaster.xml.h:1
 msgid "Blaster"
-msgstr ""
+msgstr "Взрыватель"
 
 #: ../hacks/config/blaster.xml.h:5
 msgid "Robots"
@@ -2468,20 +2353,20 @@ msgstr "Роботы"
 msgid "Lasers"
 msgstr "Лазеры"
 
-#: ../hacks/config/blaster.xml.h:8 ../hacks/config/dymaxionmap.xml.h:12
+#: ../hacks/config/blaster.xml.h:8 ../hacks/config/dymaxionmap.xml.h:11
 #: ../hacks/config/glplanet.xml.h:11
 msgid "Stars"
-msgstr "Звезды"
+msgstr "Звёзды"
 
 #: ../hacks/config/blaster.xml.h:12
 msgid ""
-"Flying space-combat robots (cleverly disguised as colored circles) do battle "
-"in front of a moving star field. Written by Jonathan Lin; 1999."
-msgstr ""
+"Flying space-combat robots (cleverly disguised as colored circles) do battle"
+" in front of a moving star field. Written by Jonathan Lin; 1999."
+msgstr "Пространство летающих боевых роботов (ловко замаскированных под цветными кругами) ведущими бой в космическом пространстве. Автор Джонатан Лин; 1999 год."
 
 #: ../hacks/config/blinkbox.xml.h:1
 msgid "BlinkBox"
-msgstr ""
+msgstr "Мерцающий ящик"
 
 #: ../hacks/config/blinkbox.xml.h:6
 msgid "Box size"
@@ -2503,15 +2388,15 @@ msgstr "Схлопывание"
 msgid ""
 "A motion-blurred ball bounces inside a box whose tiles only become visible "
 "upon impact. Written by Jeremy English; 2003."
-msgstr ""
+msgstr "Размытое движение мяча  внутри ящика, плитки становятся видимыми только при ударе. Автор Джереми Инглиш; 2003."
 
 #: ../hacks/config/blitspin.xml.h:1
 msgid "BlitSpin"
-msgstr ""
+msgstr "Выкрутасы"
 
 #: ../hacks/config/blitspin.xml.h:3
 msgid "Fuzzy rotation speed"
-msgstr "Скорость неопределенного поворота"
+msgstr "Скорость неопределённого поворота"
 
 #: ../hacks/config/blitspin.xml.h:5
 msgid "90 degree rotation speed"
@@ -2525,11 +2410,11 @@ msgid ""
 "except that all sub-quadrants of a given size are rotated in parallel. As "
 "you watch it, the image appears to dissolve into static and then "
 "reconstitute itself, but rotated. Written by Jamie Zawinski; 1992."
-msgstr ""
+msgstr "Многократно поворачивает растровое изображение на 90 градусов с помощью логических операций: растровое изображение делится на квадранты, а квадранты смещаются по часовой стрелке. Затем то же самое будет сделано снова, с постепенно уменьшающимися квадрантами, за исключением  суб-квадрантов заданного размера, вращающихся параллельно. Изображение появляется, преобразуется в статическое, а затем восстанавливается, но поворачивается. Автор: Джейми Завински; 1992."
 
 #: ../hacks/config/blocktube.xml.h:1
 msgid "BlockTube"
-msgstr ""
+msgstr "Труба блоков"
 
 #: ../hacks/config/blocktube.xml.h:6
 msgid "Color hold time"
@@ -2543,11 +2428,11 @@ msgstr "Время изменения цвета"
 msgid ""
 "A swirling, falling tunnel of reflective slabs. They fade from hue to hue. "
 "Written by Lars R. Damerow; 2003."
-msgstr ""
+msgstr "Закрученный туннель из отражательных плит. Они исчезают из оттенка в оттенок. Автор: Ларс Р. Дамеров; 2003."
 
 #: ../hacks/config/boing.xml.h:1
 msgid "Boing"
-msgstr ""
+msgstr "Боинг"
 
 #: ../hacks/config/boing.xml.h:2 ../hacks/config/boxed.xml.h:11
 #: ../hacks/config/pinion.xml.h:9 ../hacks/config/sonar.xml.h:21
@@ -2589,15 +2474,16 @@ msgstr "Растровые строки"
 msgid ""
 "A clone of the first graphics demo for the Amiga 1000, which was written by "
 "Dale Luck and RJ Mical during a break at the 1984 Consumer Electronics Show "
-"(or so the legend goes.) This looks like the original Amiga demo if you turn "
-"off \"smoothing\" and \"lighting\" and turn on \"scanlines\", and is "
-"somewhat more modern otherwise. https://en.wikipedia.org/wiki/"
-"Amiga#Boing_Ball Written by Jamie Zawinski; 2005."
-msgstr ""
+"(or so the legend goes.) This looks like the original Amiga demo if you turn"
+" off \"smoothing\" and \"lighting\" and turn on \"scanlines\", and is "
+"somewhat more modern otherwise. "
+"https://en.wikipedia.org/wiki/Amiga#Boing_Ball Written by Jamie Zawinski; "
+"2005."
+msgstr "Клон первых графических демо для Amiga 1000, который был написан Дейл Лаком и ЭрДжи Микалом во время перерыва в 1984 выставки бытовой электроники (так гласит легенда.) Это выглядит, как оригинальный демо Amiga, если вы выключите \"сглаживание\" и \"освещение\", а также - несколько более современные, \"растровые строки\". https://en.wikipedia.org/wiki/Amiga#Boing_Ball Автор: Джейми Завински; 2005."
 
 #: ../hacks/config/bouboule.xml.h:1
 msgid "Bouboule"
-msgstr ""
+msgstr "Пышный"
 
 #: ../hacks/config/bouboule.xml.h:6
 msgid "Number of spots"
@@ -2611,11 +2497,11 @@ msgstr "Разделять красное/синее 3D"
 msgid ""
 "A deforming balloon with varying-sized spots painted on its invisible "
 "surface. Written by Jeremie Petit; 1997."
-msgstr ""
+msgstr "Деформации воздушного шара с разными размерами пятен, нарисованными на его невидимой поверхности. Автор: Жереми Петит; 1997."
 
 #: ../hacks/config/bouncingcow.xml.h:1
 msgid "BouncingCow"
-msgstr ""
+msgstr "Прыгающая корова"
 
 #: ../hacks/config/bouncingcow.xml.h:6
 msgid "Bounce speed"
@@ -2637,11 +2523,11 @@ msgstr "Стадо"
 msgid ""
 "A Cow. A Trampoline. Together, they fight crime. Written by Jamie Zawinski; "
 "2003."
-msgstr ""
+msgstr "Корова. Батут. Вместе они борются с преступностью. Автор: Джейми Завински; 2003."
 
 #: ../hacks/config/boxed.xml.h:1
 msgid "Boxed"
-msgstr ""
+msgstr "В коробке"
 
 #: ../hacks/config/boxed.xml.h:9 ../hacks/config/fluidballs.xml.h:6
 msgid "Number of balls"
@@ -2653,7 +2539,7 @@ msgstr "Размер мяча"
 
 #: ../hacks/config/boxed.xml.h:14 ../hacks/config/hopalong.xml.h:14
 msgid "Popcorn"
-msgstr "Поп-корн"
+msgstr "Попкорн"
 
 #: ../hacks/config/boxed.xml.h:15
 msgid "Explosion force"
@@ -2681,13 +2567,13 @@ msgstr "Полный"
 
 #: ../hacks/config/boxed.xml.h:25
 msgid ""
-"A box full of 3D bouncing balls that explode. Written by Sander van Grieken; "
-"2002."
-msgstr ""
+"A box full of 3D bouncing balls that explode. Written by Sander van Grieken;"
+" 2002."
+msgstr "Коробка полна трёхмерными прыгающими шариками, которые ещё и взрываются. Автор Сандер ван Гриекен; 2002."
 
 #: ../hacks/config/boxfit.xml.h:1
 msgid "BoxFit"
-msgstr ""
+msgstr "Заполнить коробками"
 
 #: ../hacks/config/boxfit.xml.h:5 ../hacks/config/cityflow.xml.h:6
 #: ../hacks/config/cubenetic.xml.h:6
@@ -2720,11 +2606,11 @@ msgstr "Только круги"
 
 #: ../hacks/config/boxfit.xml.h:12
 msgid "Color gradient"
-msgstr "Ð\93Ñ\80адиенÑ\82 Ñ\86веÑ\82а"
+msgstr "ЦвеÑ\82ной Ð³Ñ\80адиенÑ\82"
 
 #: ../hacks/config/boxfit.xml.h:13
 msgid "Grab images"
-msgstr "Захватывать изображения с рабочего стола"
+msgstr "Захватывать изображения"
 
 #: ../hacks/config/boxfit.xml.h:14
 msgid "Peek at underlying images"
@@ -2737,11 +2623,11 @@ msgid ""
 "image. The objects grow until they touch, then stop. When the screen is "
 "full, they shrink away and the process restarts. Written by Jamie Zawinski; "
 "2005."
-msgstr ""
+msgstr "Квесты экрана с растущими квадратами или кругами; окрашены в соответствии с горизонтальным или вертикальным градиентом, либо в соответствии с цветами загруженного изображения. Объекты растут, пока они не коснуться  друг друга. Когда экран заполняется - включается процесс перезагрузки. Автор Джейми Завински; 2005 год."
 
 #: ../hacks/config/braid.xml.h:1
 msgid "Braid"
-msgstr ""
+msgstr "Оплётка"
 
 #: ../hacks/config/braid.xml.h:11
 msgid "Number of rings"
@@ -2754,178 +2640,190 @@ msgstr "Толщина линии"
 
 #: ../hacks/config/braid.xml.h:14
 msgid "Inter-braided concentric circles. Written by John Neil; 1997."
-msgstr ""
+msgstr "Плетение узора концентрическими кругами. Автор Джон Нил; 1997."
 
 #: ../hacks/config/bsod.xml.h:1
 msgid "BSOD"
-msgstr ""
+msgstr "BSOD/Синий экран смерти"
 
 #: ../hacks/config/bsod.xml.h:2 ../hacks/config/carousel.xml.h:8
-#: ../hacks/config/geodesicgears.xml.h:5 ../hacks/config/m6502.xml.h:2
+#: ../hacks/config/geodesicgears.xml.h:5 ../hacks/config/m6502.xml.h:4
 #: ../hacks/config/molecule.xml.h:5
 msgid "5 seconds"
 msgstr "5 секунд"
 
 #: ../hacks/config/bsod.xml.h:4 ../hacks/config/geodesicgears.xml.h:7
-#: ../hacks/config/m6502.xml.h:4 ../hacks/config/molecule.xml.h:7
+#: ../hacks/config/m6502.xml.h:6 ../hacks/config/molecule.xml.h:7
 #: ../hacks/config/vidwhacker.xml.h:4
 msgid "2 minutes"
 msgstr "2 минуты"
 
 #: ../hacks/config/bsod.xml.h:6
 msgid "Windows 3.1"
-msgstr ""
+msgstr "Windows 3.1"
 
 #: ../hacks/config/bsod.xml.h:7
 msgid "Windows NT"
-msgstr ""
+msgstr "Windows NT"
 
 #: ../hacks/config/bsod.xml.h:8
-msgid "Windows 2000"
-msgstr ""
+msgid "Windows 2000  "
+msgstr "Windows 2000  "
 
 #: ../hacks/config/bsod.xml.h:9
-msgid "Windows 10"
-msgstr ""
+msgid "Windows 10    "
+msgstr "Windows 10    "
 
 #: ../hacks/config/bsod.xml.h:10
 msgid "MS-DOS"
-msgstr ""
+msgstr "MS-DOS"
 
 #: ../hacks/config/bsod.xml.h:11
 msgid "AmigaDOS"
-msgstr ""
+msgstr "AmigaDOS"
 
 #: ../hacks/config/bsod.xml.h:12
 msgid "GLaDOS"
-msgstr ""
+msgstr "GLaDOS"
 
 #: ../hacks/config/bsod.xml.h:13
 msgid "Android"
-msgstr ""
+msgstr "Андроид"
 
 #: ../hacks/config/bsod.xml.h:14
 msgid "Apple ]["
-msgstr ""
+msgstr "Apple ]["
 
 #: ../hacks/config/bsod.xml.h:15
-msgid "VMware"
-msgstr ""
+msgid "Ransomware"
+msgstr "Ransomware"
 
 #: ../hacks/config/bsod.xml.h:16
 msgid "NVidia"
-msgstr ""
+msgstr "NVidia"
 
 #: ../hacks/config/bsod.xml.h:17
 msgid "OS/2"
-msgstr ""
+msgstr "OS/2"
 
 #: ../hacks/config/bsod.xml.h:18
 msgid "Sad Mac"
-msgstr ""
+msgstr "Sad Mac"
 
 #: ../hacks/config/bsod.xml.h:19
 msgid "Mac bomb"
-msgstr ""
+msgstr "Mac bomb"
 
 #: ../hacks/config/bsod.xml.h:20
-msgid "MacsBug"
-msgstr ""
+msgid "VMware"
+msgstr "VMware"
 
 #: ../hacks/config/bsod.xml.h:21
-msgid "Atari"
-msgstr ""
+msgid "MacsBug"
+msgstr "MacsBug"
 
 #: ../hacks/config/bsod.xml.h:22
-msgid "MacOS X"
-msgstr ""
+msgid "Atari"
+msgstr "Atari"
 
 #: ../hacks/config/bsod.xml.h:23
-msgid "OS/390"
-msgstr ""
+msgid "MacOS X"
+msgstr "MacOS X"
 
 #: ../hacks/config/bsod.xml.h:24
-msgid "VMS"
-msgstr ""
+msgid "OS/390"
+msgstr "OS/390"
 
 #: ../hacks/config/bsod.xml.h:25
-msgid "HVX/GCOS6"
-msgstr ""
+msgid "Encom"
+msgstr "Encom"
 
 #: ../hacks/config/bsod.xml.h:26
-msgid "NCD X Terminal  "
-msgstr ""
+msgid "VMS"
+msgstr "VMS"
 
 #: ../hacks/config/bsod.xml.h:27
-msgid "ATM"
-msgstr ""
+msgid "HVX/GCOS6"
+msgstr "HVX/GCOS6"
 
 #: ../hacks/config/bsod.xml.h:28
-msgid "BSD"
-msgstr ""
+msgid "NCD X Terminal  "
+msgstr "NCD X Терминал "
 
 #: ../hacks/config/bsod.xml.h:29
-msgid "Linux (fsck)"
-msgstr ""
+msgid "ATM"
+msgstr "ATM"
 
 #: ../hacks/config/bsod.xml.h:30
-msgid "Linux (sparc)"
-msgstr ""
+msgid "DVD"
+msgstr "DVD"
 
 #: ../hacks/config/bsod.xml.h:31
-msgid "Linux (hppa)"
-msgstr ""
+msgid "BSD"
+msgstr "BSD"
 
 #: ../hacks/config/bsod.xml.h:32
-msgid "Solaris"
-msgstr ""
+msgid "Linux (fsck)"
+msgstr "Linux (fsck)"
 
 #: ../hacks/config/bsod.xml.h:33
-msgid "SCO"
-msgstr ""
+msgid "Linux (sparc)"
+msgstr "Linux (sparc)"
 
 #: ../hacks/config/bsod.xml.h:34
-msgid "HPUX"
-msgstr ""
+msgid "Linux (hppa)"
+msgstr "Linux (hppa)"
 
 #: ../hacks/config/bsod.xml.h:35
+msgid "Solaris"
+msgstr "Solaris"
+
+#: ../hacks/config/bsod.xml.h:36
+msgid "SCO"
+msgstr "SCO"
+
+#: ../hacks/config/bsod.xml.h:37
+msgid "HPUX"
+msgstr "HPUX"
+
+#: ../hacks/config/bsod.xml.h:38
 msgid "Tru64"
-msgstr ""
+msgstr "Tru64"
 
-#.
 #. <hgroup>
 #. <vgroup>
 #. <number id="tvcolor" type="slider" arg="-tv-color %"
 #. _label="Color Knob" _low-label="Low" _high-label="High"
-#. low="0" high="1000" default="70"/>
+#. low="0" high="400" default="70"/>
 #. <number id="tvtint" type="slider" arg="-tv-tint %"
 #. _label="Tint Knob" _low-label="Low" _high-label="High"
-#. low="0" high="100" default="5"/>
+#. low="0" high="360" default="5"/>
 #. </vgroup>
 #. <vgroup>
 #. <number id="tvbrightness" type="slider" arg="-tv-brightness %"
 #. _label="Brightness Knob" _low-label="Low" _high-label="High"
-#. low="0" high="200" default="150"/>
+#. low="-75.0" high="100.0" default="3.0"/>
 #. <number id="tvcontrast" type="slider" arg="-tv-contrast %"
 #. _label="Contrast Knob" _low-label="Low" _high-label="High"
-#. low="0" high="1500" default="1000"/>
+#. low="0" high="500" default="150"/>
 #. </vgroup>
 #. </hgroup>
-#.
-#: ../hacks/config/bsod.xml.h:57
+#: ../hacks/config/bsod.xml.h:60
 #, no-c-format
 msgid ""
 "BSOD stands for \"Blue Screen of Death\". The finest in personal computer "
-"emulation, BSOD simulates popular screen savers from a number of less robust "
-"operating systems. https://en.wikipedia.org/wiki/Blue_Screen_of_Death "
-"https://en.wikipedia.org/wiki/Screen_of_death https://en.wikipedia.org/wiki/"
-"Guru_Meditation https://en.wikipedia.org/wiki/Row_of_Bombs https://en."
-"wikipedia.org/wiki/Bomb_%28symbol%29 Written by Jamie Zawinski; 1998."
-msgstr ""
+"emulation, BSOD simulates popular screen savers from a number of less robust"
+" operating systems. https://en.wikipedia.org/wiki/Blue_Screen_of_Death "
+"https://en.wikipedia.org/wiki/Screen_of_death "
+"https://en.wikipedia.org/wiki/Guru_Meditation "
+"https://en.wikipedia.org/wiki/Row_of_Bombs "
+"https://en.wikipedia.org/wiki/Bomb_%28symbol%29 Written by Jamie Zawinski; "
+"1998."
+msgstr "BSOD означает \"синий экран смерти\". Тончайшая в персональном компьютере эмуляция.  BSOD имитирует популярные экранные заставки из ряда менее мощных операционных систем. https://en.wikipedia.org/wiki/Blue_Screen_of_Death https://en.wikipedia.org/wiki/Screen_of_death https://en.wikipedia.org/wiki/Guru_Meditation https://en.wikipedia.org/wiki / Row_of_Bombs https://en.wikipedia.org/wiki/Bomb_%28symbol%29 Автор Джейми Завински; 1998."
 
 #: ../hacks/config/bubble3d.xml.h:1
 msgid "Bubble3D"
-msgstr ""
+msgstr "3D пузыри"
 
 #: ../hacks/config/bubble3d.xml.h:5
 msgid "Transparent bubbles"
@@ -2945,7 +2843,7 @@ msgstr "Янтарный"
 #: ../hacks/config/bubble3d.xml.h:8 ../hacks/config/fuzzyflakes.xml.h:16
 #: ../hacks/config/phosphor.xml.h:9
 msgid "Green"
-msgstr "Зеленый"
+msgstr "Зелёный"
 
 #: ../hacks/config/bubble3d.xml.h:9 ../hacks/config/fuzzyflakes.xml.h:18
 msgid "Blue"
@@ -2960,35 +2858,35 @@ msgstr "Белый"
 msgid ""
 "Rising, undulating 3D bubbles, with transparency and specular reflections. "
 "Written by Richard Jones; 1998."
-msgstr ""
+msgstr "Растущие, волнообразные 3D пузыри; с прозрачной и зеркальной поверхностью. Автор Ричард Джонс; 1998."
 
 #: ../hacks/config/bubbles.xml.h:1
 msgid "Bubbles"
-msgstr ""
+msgstr "Пузыри"
 
 #: ../hacks/config/bubbles.xml.h:5
 msgid "Draw circles instead of bubble images"
-msgstr ""
+msgstr "Рисовать круги вместо изображений пузырей"
 
 #: ../hacks/config/bubbles.xml.h:6
 msgid "Don't hide bubbles when they pop"
-msgstr ""
+msgstr "Не скрывать пузыри, когда они лопаются"
 
 #: ../hacks/config/bubbles.xml.h:7
 msgid "Leave trails"
-msgstr ""
+msgstr "Оставить следы"
 
 #: ../hacks/config/bubbles.xml.h:8
 msgid "Bubbles rise"
-msgstr ""
+msgstr "Растущие пузыри"
 
 #: ../hacks/config/bubbles.xml.h:9
 msgid "Bubbles float"
-msgstr ""
+msgstr "Плавающие пузыри"
 
 #: ../hacks/config/bubbles.xml.h:10
 msgid "Bubbles fall"
-msgstr ""
+msgstr "Падающие пузыри"
 
 #: ../hacks/config/bubbles.xml.h:12
 msgid ""
@@ -2997,32 +2895,32 @@ msgid ""
 "water boils: small bubbles appear, and as they get closer to each other, "
 "they combine to form larger bubbles, which eventually pop. Written by James "
 "Macnicol; 1996."
-msgstr ""
+msgstr "Эта заставка была удалена из дистрибутива XScreenSaver в версии 5.08. Она имитирует образование пузырьков; т.е. когда вода закипит - появляются мелкие пузырьки, ближайшие друг к другу сливаются и образуются большие пузыри, которые в конце концов лопаются. Автор Джеймс Макникол; 1996 год."
 
 #: ../hacks/config/bumps.xml.h:1 ../hacks/config/mirrorblob.xml.h:15
 msgid "Bumps"
-msgstr ""
+msgstr "Выпуклости"
 
 #: ../hacks/config/bumps.xml.h:12
 msgid ""
 "A spotlight roams across an embossed version of a loaded image. Written by "
 "Shane Smit; 1999."
-msgstr ""
+msgstr "Прожектор (световое пятно) бродит по рельефной версии загруженного изображения. Автор Шейн Смит; 1999 год."
 
 #: ../hacks/config/cage.xml.h:1
 msgid "Cage"
-msgstr ""
+msgstr "Сруб"
 
 #: ../hacks/config/cage.xml.h:7
 msgid ""
-"Escher's \"Impossible Cage\", a 3d analog of a moebius strip, and rotates it "
-"in three dimensions. https://en.wikipedia.org/wiki/Maurits_Cornelis_Escher "
+"Escher's \"Impossible Cage\", a 3d analog of a moebius strip, and rotates it"
+" in three dimensions. https://en.wikipedia.org/wiki/Maurits_Cornelis_Escher "
 "Written by Marcelo Vianna; 1998."
-msgstr ""
+msgstr "\"Невероятный сруб\" Эшера, 3D-аналог ленты Мёбиуса; её вращание  в трёх измерениях. https://en.wikipedia.org/wiki/Maurits_Cornelis_Escher Автор Марсело Вианна; 1998."
 
 #: ../hacks/config/carousel.xml.h:1
 msgid "Carousel"
-msgstr ""
+msgstr "Карусель"
 
 #: ../hacks/config/carousel.xml.h:6 ../hacks/config/ccurve.xml.h:6
 #: ../hacks/config/cubestack.xml.h:6 ../hacks/config/cubetwist.xml.h:6
@@ -3068,8 +2966,8 @@ msgstr "Не наклонять"
 msgid "Zoom in/out"
 msgstr "Увеличивать/уменьшать"
 
-#: ../hacks/config/carousel.xml.h:17 ../hacks/config/glslideshow.xml.h:19
-#: ../hacks/config/photopile.xml.h:21
+#: ../hacks/config/carousel.xml.h:17 ../hacks/config/esper.xml.h:8
+#: ../hacks/config/glslideshow.xml.h:19 ../hacks/config/photopile.xml.h:21
 msgid "Show file names"
 msgstr "Показывать имена файлов"
 
@@ -3077,13 +2975,13 @@ msgstr "Показывать имена файлов"
 msgid ""
 "Loads several random images, and displays them flying in a circular "
 "formation. The formation changes speed and direction randomly, and images "
-"periodically drop out to be replaced by new ones. Written by Jamie Zawinski; "
-"2005."
-msgstr ""
+"periodically drop out to be replaced by new ones. Written by Jamie Zawinski;"
+" 2005."
+msgstr "Загрузка нескольких случайных изображений, отображение их полёта в круговом пласте. Образование изменяет скорость и направление случайным образом; изображения периодически заменяются новыми. Автор: Джейми Завински; 2005 год."
 
 #: ../hacks/config/ccurve.xml.h:1
 msgid "CCurve"
-msgstr ""
+msgstr "С-кривая"
 
 #: ../hacks/config/ccurve.xml.h:3
 msgid "Change image every"
@@ -3098,8 +2996,9 @@ msgstr "30 секунд"
 #: ../hacks/config/ccurve.xml.h:9 ../hacks/config/coral.xml.h:9
 #: ../hacks/config/imsmap.xml.h:9 ../hacks/config/kumppa.xml.h:5
 #: ../hacks/config/qix.xml.h:9 ../hacks/config/quasicrystal.xml.h:8
-#: ../hacks/config/squiral.xml.h:11 ../hacks/config/superquadrics.xml.h:8
-#: ../hacks/config/wander.xml.h:5 ../hacks/config/xmatrix.xml.h:19
+#: ../hacks/config/razzledazzle.xml.h:12 ../hacks/config/squiral.xml.h:11
+#: ../hacks/config/superquadrics.xml.h:8 ../hacks/config/wander.xml.h:5
+#: ../hacks/config/xmatrix.xml.h:19
 msgid "Density"
 msgstr "Плотность"
 
@@ -3107,11 +3006,11 @@ msgstr "Плотность"
 msgid ""
 "Generates self-similar linear fractals, including the classic \"C Curve\". "
 "https://en.wikipedia.org/wiki/Levy_C_curve Written by Rick Campbell; 1999."
-msgstr ""
+msgstr "Создаёт подобие линейных фракталов, в том числе классической \"C-кривой\". https://en.wikipedia.org/wiki/Levy_C_curve Автор Рик Кэмпбелл; 1999 год."
 
 #: ../hacks/config/celtic.xml.h:1
 msgid "Celtic"
-msgstr ""
+msgstr "Кельтские узлы"
 
 #: ../hacks/config/celtic.xml.h:8
 msgid "Draw graph"
@@ -3119,14 +3018,15 @@ msgstr "Прорисовывать граф"
 
 #: ../hacks/config/celtic.xml.h:10
 msgid ""
-"Repeatedly draws random Celtic cross-stitch patterns. https://en.wikipedia."
-"org/wiki/Celtic_knot https://en.wikipedia.org/wiki/Knots_and_graphs Written "
-"by Max Froumentin; 2005."
-msgstr ""
+"Repeatedly draws random Celtic cross-stitch patterns. "
+"https://en.wikipedia.org/wiki/Celtic_knot "
+"https://en.wikipedia.org/wiki/Knots_and_graphs Written by Max Froumentin; "
+"2005."
+msgstr "Многократно рисует случайные кельтские узоры, вышивки крестом. https://en.wikipedia.org/wiki/Celtic_knot https://en.wikipedia.org/wiki/Knots_and_graphs Автор Макс Фраументин; 2005 год."
 
 #: ../hacks/config/circuit.xml.h:1
 msgid "Circuit"
-msgstr ""
+msgstr "Радиодеталь"
 
 #: ../hacks/config/circuit.xml.h:5 ../hacks/config/hydrostat.xml.h:8
 #: ../hacks/config/mismunch.xml.h:8 ../hacks/config/mountain.xml.h:5
@@ -3146,19 +3046,19 @@ msgid "Rotation speed"
 msgstr "Скорость вращения"
 
 #: ../hacks/config/circuit.xml.h:11 ../hacks/config/companioncube.xml.h:11
-#: ../hacks/config/cube21.xml.h:19 ../hacks/config/cubestorm.xml.h:15
-#: ../hacks/config/cubetwist.xml.h:16 ../hacks/config/dangerball.xml.h:12
-#: ../hacks/config/discoball.xml.h:12 ../hacks/config/energystream.xml.h:6
-#: ../hacks/config/engine.xml.h:18 ../hacks/config/flipflop.xml.h:6
-#: ../hacks/config/gears.xml.h:12 ../hacks/config/geodesic.xml.h:9
-#: ../hacks/config/geodesicgears.xml.h:12 ../hacks/config/hexstrut.xml.h:15
-#: ../hacks/config/hilbert.xml.h:19 ../hacks/config/moebiusgears.xml.h:11
-#: ../hacks/config/polyhedra.xml.h:164 ../hacks/config/raverhoop.xml.h:19
-#: ../hacks/config/rubikblocks.xml.h:13 ../hacks/config/splodesic.xml.h:10
-#: ../hacks/config/surfaces.xml.h:26 ../hacks/config/tronbit.xml.h:8
-#: ../hacks/config/unicrud.xml.h:9
+#: ../hacks/config/crumbler.xml.h:13 ../hacks/config/cube21.xml.h:19
+#: ../hacks/config/cubestorm.xml.h:18 ../hacks/config/cubetwist.xml.h:16
+#: ../hacks/config/dangerball.xml.h:12 ../hacks/config/discoball.xml.h:12
+#: ../hacks/config/energystream.xml.h:6 ../hacks/config/engine.xml.h:18
+#: ../hacks/config/flipflop.xml.h:6 ../hacks/config/gears.xml.h:12
+#: ../hacks/config/geodesic.xml.h:9 ../hacks/config/geodesicgears.xml.h:12
+#: ../hacks/config/hexstrut.xml.h:15 ../hacks/config/hilbert.xml.h:19
+#: ../hacks/config/moebiusgears.xml.h:11 ../hacks/config/polyhedra.xml.h:164
+#: ../hacks/config/raverhoop.xml.h:19 ../hacks/config/rubikblocks.xml.h:13
+#: ../hacks/config/splodesic.xml.h:10 ../hacks/config/surfaces.xml.h:26
+#: ../hacks/config/tronbit.xml.h:8 ../hacks/config/unicrud.xml.h:9
 msgid "Spin"
-msgstr "Ð\92Ñ\80аÑ\89ение"
+msgstr "Ð\9aÑ\80Ñ\83Ñ\87ение"
 
 #: ../hacks/config/circuit.xml.h:12
 msgid "Flat coloring"
@@ -3170,11 +3070,11 @@ msgstr "Направленное освещение"
 
 #: ../hacks/config/circuit.xml.h:15
 msgid "Electronic components float around. Written by Ben Buxton; 2001."
-msgstr ""
+msgstr "Плавающие электронные компоненты. Автор Бен Бакстон; 2001 год."
 
 #: ../hacks/config/cityflow.xml.h:1
 msgid "Cityflow"
-msgstr ""
+msgstr "Городской поток"
 
 #: ../hacks/config/cityflow.xml.h:8
 msgid "Skew"
@@ -3195,13 +3095,13 @@ msgstr "Сложность волны"
 
 #: ../hacks/config/cityflow.xml.h:18
 msgid ""
-"Waves move across a sea of boxes. The city swells. The walls are closing in. "
-"Written by Jamie Zawinski; 2014."
-msgstr ""
+"Waves move across a sea of boxes. The city swells. The walls are closing in."
+" Written by Jamie Zawinski; 2014."
+msgstr "Волны движутся по морю коробок. Город раздувается. Стены закрываются. Автор Джейми Завински. 2014."
 
 #: ../hacks/config/cloudlife.xml.h:1
 msgid "CloudLife"
-msgstr ""
+msgstr "Жизнь облака"
 
 #: ../hacks/config/cloudlife.xml.h:5
 msgid "Young"
@@ -3228,17 +3128,19 @@ msgstr "Размер ячейки"
 #, no-c-format
 msgid ""
 "Generates cloud-like formations based on a variant of Conway's Life. The "
-"difference is that cells have a maximum age, after which they count as 3 for "
-"populating the next generation. This makes long-lived formations explode "
-"instead of just sitting there. https://en.wikipedia.org/wiki/Conway"
-"%27s_Game_of_Life Written by Don Marti; 2003."
-msgstr ""
+"difference is that cells have a maximum age, after which they count as 3 for"
+" populating the next generation. This makes long-lived formations explode "
+"instead of just sitting there. "
+"https://en.wikipedia.org/wiki/Conway%27s_Game_of_Life Written by Don Marti; "
+"2003."
+msgstr "Генерирует облачные образования на основе варианта \"жизни\" Конвея. Разница заключается в том, что клетки имеют максимальный возраст, после чего им на смену приходит следующее поколение. Долгоживущие образования взрываются вместо того, чтобы просто исчезнуть. https://en.wikipedia.org/wiki/Conway%27s_Game_of_Life Автор Дон Марти; 2003."
 
 #: ../hacks/config/companioncube.xml.h:1
 msgid "CompanionCube"
-msgstr ""
+msgstr "Куб-компаньон"
 
 #: ../hacks/config/companioncube.xml.h:6 ../hacks/config/distort.xml.h:17
+#: ../hacks/config/peepers.xml.h:11
 msgid "Bounce"
 msgstr "Прыжок"
 
@@ -3251,23 +3153,24 @@ msgstr "Прыжок"
 #: ../hacks/config/raverhoop.xml.h:5 ../hacks/config/skytentacles.xml.h:2
 #: ../hacks/config/strange.xml.h:9
 msgid "1"
-msgstr ""
+msgstr "1"
 
 #: ../hacks/config/companioncube.xml.h:9
 msgid "Number of cubes"
 msgstr "Количество кубов"
 
 #. #### -no-optimize
-#: ../hacks/config/companioncube.xml.h:12 ../hacks/config/cube21.xml.h:20
-#: ../hacks/config/cubenetic.xml.h:8 ../hacks/config/cubestack.xml.h:14
-#: ../hacks/config/cubestorm.xml.h:14 ../hacks/config/cubetwist.xml.h:15
-#: ../hacks/config/dangerball.xml.h:11 ../hacks/config/discoball.xml.h:11
-#: ../hacks/config/dymaxionmap.xml.h:10 ../hacks/config/energystream.xml.h:5
-#: ../hacks/config/engine.xml.h:17 ../hacks/config/gears.xml.h:11
-#: ../hacks/config/geodesic.xml.h:8 ../hacks/config/geodesicgears.xml.h:11
-#: ../hacks/config/glblur.xml.h:8 ../hacks/config/glforestfire.xml.h:11
-#: ../hacks/config/glknots.xml.h:22 ../hacks/config/glplanet.xml.h:8
-#: ../hacks/config/gltext.xml.h:9 ../hacks/config/hexstrut.xml.h:14
+#: ../hacks/config/companioncube.xml.h:12 ../hacks/config/crumbler.xml.h:12
+#: ../hacks/config/cube21.xml.h:20 ../hacks/config/cubenetic.xml.h:8
+#: ../hacks/config/cubestack.xml.h:14 ../hacks/config/cubestorm.xml.h:17
+#: ../hacks/config/cubetwist.xml.h:15 ../hacks/config/dangerball.xml.h:11
+#: ../hacks/config/discoball.xml.h:11 ../hacks/config/dymaxionmap.xml.h:13
+#: ../hacks/config/energystream.xml.h:5 ../hacks/config/engine.xml.h:17
+#: ../hacks/config/gears.xml.h:11 ../hacks/config/geodesic.xml.h:8
+#: ../hacks/config/geodesicgears.xml.h:11 ../hacks/config/glblur.xml.h:8
+#: ../hacks/config/glforestfire.xml.h:11 ../hacks/config/glknots.xml.h:22
+#: ../hacks/config/glplanet.xml.h:8 ../hacks/config/gltext.xml.h:9
+#: ../hacks/config/handsy.xml.h:11 ../hacks/config/hexstrut.xml.h:14
 #: ../hacks/config/hilbert.xml.h:18 ../hacks/config/hypnowheel.xml.h:6
 #: ../hacks/config/kaleidocycle.xml.h:19 ../hacks/config/lavalite.xml.h:14
 #: ../hacks/config/menger.xml.h:10 ../hacks/config/moebiusgears.xml.h:10
@@ -3278,40 +3181,40 @@ msgstr "Количество кубов"
 #: ../hacks/config/tronbit.xml.h:9 ../hacks/config/unicrud.xml.h:8
 #: ../hacks/config/wander.xml.h:1
 msgid "Wander"
-msgstr "Ð\9fеÑ\80емеÑ\89ение"
+msgstr "Ð\91лÑ\83ждание"
 
 #: ../hacks/config/companioncube.xml.h:16
 #, no-c-format
 msgid ""
 "The symptoms most commonly produced by Enrichment Center testing are "
-"superstition, perceiving inanimate objects as alive, and hallucinations. The "
-"Enrichment Center reminds you that the weighted companion cube will never "
+"superstition, perceiving inanimate objects as alive, and hallucinations. The"
+" Enrichment Center reminds you that the weighted companion cube will never "
 "threaten to stab you and, in fact, cannot speak. In the event that the "
 "Weighted Companion Cube does speak, the Enrichment Center urges you to "
 "disregard its advice. https://en.wikipedia.org/wiki/Portal_%28video_game%29 "
 "Written by Jamie Zawinski; 2011."
-msgstr ""
+msgstr "Тестирования Центра по обогащению показывают, что данные симптомы чаще всего  вызываются галлюцинациями и являются суевериями: восприятие неодушевленных предметов как живых и т.д.  Центр по обогащению напоминает вам, что компаньон- куб никогда не собирается ударить вас и, по сути, не может говорить. В том случае, если взвешенный куб-компаньон действительно заговорит, Центр по обогащению  рекомендует вам игнорировать его советы. https://en.wikipedia.org/wiki/Portal_%28video_game%29 Автор: Джейми Завински; 2011."
 
 #: ../hacks/config/compass.xml.h:1
 msgid "Compass"
-msgstr ""
+msgstr "Компас"
 
 #: ../hacks/config/compass.xml.h:6
 msgid ""
 "A compass, with all elements spinning about randomly, for that \"lost and "
 "nauseous\" feeling. Written by Jamie Zawinski; 1999."
-msgstr ""
+msgstr "Компас, со всеми, вращающимися в случайном порядке элементами; \"потерянное и тошнотворное\" чувство. Автор: Джейми Завински; 1999."
 
 #: ../hacks/config/coral.xml.h:1
 msgid "Coral"
-msgstr ""
+msgstr "Коралл"
 
 #: ../hacks/config/coral.xml.h:5 ../hacks/config/deco.xml.h:2
-#: ../hacks/config/epicycle.xml.h:8 ../hacks/config/glslideshow.xml.h:13
-#: ../hacks/config/helix.xml.h:5 ../hacks/config/moire.xml.h:2
-#: ../hacks/config/pedal.xml.h:2 ../hacks/config/polyhedra.xml.h:8
-#: ../hacks/config/rorschach.xml.h:8 ../hacks/config/starfish.xml.h:8
-#: ../hacks/config/xspirograph.xml.h:5
+#: ../hacks/config/epicycle.xml.h:8 ../hacks/config/glitchpeg.xml.h:5
+#: ../hacks/config/glslideshow.xml.h:13 ../hacks/config/helix.xml.h:5
+#: ../hacks/config/moire.xml.h:2 ../hacks/config/pedal.xml.h:2
+#: ../hacks/config/polyhedra.xml.h:8 ../hacks/config/rorschach.xml.h:8
+#: ../hacks/config/starfish.xml.h:8 ../hacks/config/xspirograph.xml.h:5
 msgid "1 second"
 msgstr "1 секунда"
 
@@ -3320,33 +3223,34 @@ msgstr "1 секунда"
 #: ../hacks/config/glmatrix.xml.h:5 ../hacks/config/imsmap.xml.h:8
 #: ../hacks/config/lavalite.xml.h:5 ../hacks/config/pyro.xml.h:5
 #: ../hacks/config/qix.xml.h:8 ../hacks/config/raverhoop.xml.h:8
-#: ../hacks/config/squiral.xml.h:10 ../hacks/config/xmatrix.xml.h:18
+#: ../hacks/config/razzledazzle.xml.h:11 ../hacks/config/squiral.xml.h:10
+#: ../hacks/config/xmatrix.xml.h:18
 msgid "Sparse"
-msgstr "Редко"
+msgstr "РазбÑ\80оÑ\81анно"
 
 #: ../hacks/config/coral.xml.h:10 ../hacks/config/fireworkx.xml.h:5
 #: ../hacks/config/gflux.xml.h:10 ../hacks/config/glblur.xml.h:7
 #: ../hacks/config/glmatrix.xml.h:7 ../hacks/config/imsmap.xml.h:10
 #: ../hacks/config/lavalite.xml.h:7 ../hacks/config/pyro.xml.h:7
 #: ../hacks/config/qix.xml.h:10 ../hacks/config/raverhoop.xml.h:10
-#: ../hacks/config/squiral.xml.h:12
+#: ../hacks/config/razzledazzle.xml.h:13 ../hacks/config/squiral.xml.h:12
 msgid "Dense"
 msgstr "Плотно"
 
 #: ../hacks/config/coral.xml.h:12 ../hacks/config/glcells.xml.h:29
 #: ../hacks/config/squiral.xml.h:6
 msgid "Seeds"
-msgstr "Зерна"
+msgstr "Зёрна"
 
 #: ../hacks/config/coral.xml.h:15
 msgid ""
-"Simulates coral growth, albeit somewhat slowly. Written by Frederick Roeber; "
-"1997."
-msgstr ""
+"Simulates coral growth, albeit somewhat slowly. Written by Frederick Roeber;"
+" 1997."
+msgstr "Имитация роста кораллов, хотя немного и медленно. Автор Фредерик Роебер; 1997 год."
 
 #: ../hacks/config/crackberg.xml.h:1
 msgid "Crackberg"
-msgstr ""
+msgstr "Блуждание"
 
 #: ../hacks/config/crackberg.xml.h:5
 msgid "Mouse hole"
@@ -3362,7 +3266,7 @@ msgstr "Орлиное гнездо"
 
 #: ../hacks/config/crackberg.xml.h:9
 msgid "Subdivisions"
-msgstr "Разделения"
+msgstr "Ð\9fодÑ\80азделения"
 
 #: ../hacks/config/crackberg.xml.h:10
 msgid "Hurt me"
@@ -3400,7 +3304,7 @@ msgstr "Окрашивание (земля)"
 
 #: ../hacks/config/crackberg.xml.h:21
 msgid "Icy coloration"
-msgstr "Окрашивание (лед)"
+msgstr "Окрашивание (лёд)"
 
 #: ../hacks/config/crackberg.xml.h:22
 msgid "Swampy coloration"
@@ -3412,14 +3316,14 @@ msgstr "Окрашивание (извержение)"
 
 #: ../hacks/config/crackberg.xml.h:24
 msgid ""
-"Flies through height maps, optionally animating the creation and destruction "
-"of generated tiles; tiles `grow' into place. Written by Matus Telgarsky; "
+"Flies through height maps, optionally animating the creation and destruction"
+" of generated tiles; tiles `grow' into place. Written by Matus Telgarsky; "
 "2005."
-msgstr ""
+msgstr "Пролетая через карты высот, при необходимости можно анимировать создание и уничтожение плиток; плитки могут `расти'. Автор: Матус Телгарский; 2005."
 
 #: ../hacks/config/critical.xml.h:1
 msgid "Critical"
-msgstr ""
+msgstr "Критический"
 
 #: ../hacks/config/critical.xml.h:9
 msgid ""
@@ -3427,11 +3331,27 @@ msgid ""
 "version 5.08. Draws a system of self-organizing lines. It starts out as "
 "random squiggles, but after a few iterations, order begins to appear. "
 "Written by Martin Pool; 1999."
-msgstr ""
+msgstr "Эта заставка была удалена из дистрибутива XScreenSaver версии 5.08. Рисует систему самоорганизующихся линий. Она начинается как случайные закорючки, но после нескольких итераций, начинает появляться порядок. Автор Мартин Пул; 1999."
+
+#: ../hacks/config/crumbler.xml.h:1
+msgid "Crumbler"
+msgstr "Крошитель"
+
+#: ../hacks/config/crumbler.xml.h:11
+msgid "Fractures"
+msgstr "Переломы"
+
+#: ../hacks/config/crumbler.xml.h:16
+msgid ""
+"Randomly subdivides a ball into voronoi chunks, then further subdivides one "
+"of the remaining pieces. https://en.wikipedia.org/wiki/Voronoi_diagram "
+"https://en.wikipedia.org/wiki/Convex_hull "
+"https://en.wikipedia.org/wiki/Quickhull Written by Jamie Zawinski; 2018."
+msgstr "Случайно разделяет шар на куски Вороного, затем дополнительно делит одну из оставшихся фигур. https://en.wikipedia.org/wiki/Voronoi_diagram https://en.wikipedia.org/wiki/Convex_hull https://en.wikipedia.org/wiki/Quickhull Автор: Джейми Завински; 2018."
 
 #: ../hacks/config/crystal.xml.h:1
 msgid "Crystal"
-msgstr ""
+msgstr "Кристалл"
 
 #. #### -shift (color cycling)
 #: ../hacks/config/crystal.xml.h:9
@@ -3461,13 +3381,13 @@ msgstr "В центре экрана"
 #: ../hacks/config/crystal.xml.h:16
 msgid ""
 "Moving polygons, similar to a kaleidoscope. See also the \"Kaleidescope\" "
-"and \"GLeidescope\" screen savers. https://en.wikipedia.org/wiki/"
-"Kaleidoscope Written by Jouk Jansen; 1998."
-msgstr ""
+"and \"GLeidescope\" screen savers. "
+"https://en.wikipedia.org/wiki/Kaleidoscope Written by Jouk Jansen; 1998."
+msgstr "Перемещаемые многоугольники, похожие на калейдоскоп. Смотрите также хранители экрана \"Калейдоскоп\" и \"GL-лейдоскоп\". https://en.wikipedia.org/wiki/Kaleidoscope Автор Жук Янсен; 1998."
 
 #: ../hacks/config/cube21.xml.h:1
 msgid "Cube21"
-msgstr ""
+msgstr "Кубик21"
 
 #: ../hacks/config/cube21.xml.h:6 ../hacks/config/rubikblocks.xml.h:6
 msgid "Cube size"
@@ -3514,102 +3434,110 @@ msgstr "Контуры"
 #: ../hacks/config/cube21.xml.h:28
 #, no-c-format
 msgid ""
-"The \"Cube 21\" Rubik-like puzzle, also known as \"Square-1\". The rotations "
-"are chosen randomly. See also the \"Rubik\", \"RubikBlocks\" and \"GLSnake\" "
-"screen savers. https://en.wikipedia.org/wiki/Square_One_%28puzzle%29 Written "
-"by Vasek Potocek; 2005."
-msgstr ""
+"The \"Cube 21\" Rubik-like puzzle, also known as \"Square-1\". The rotations"
+" are chosen randomly. See also the \"Rubik\", \"RubikBlocks\" and "
+"\"GLSnake\" screen savers. "
+"https://en.wikipedia.org/wiki/Square_One_%28puzzle%29 Written by Vasek "
+"Potocek; 2005."
+msgstr "\"Куб 21\" Рубик-подобная головоломка, также известная как \"Квадрат-1\". Повороты выбираются случайным образом. Смотрите также хранители экрана \"Рубик\", \"Блоки Рубика\" и \"GL-змейка\". https://en.wikipedia.org/wiki/Square_One_%28puzzle%29 Автор Васек Поточек; 2005 год."
 
 #: ../hacks/config/cubenetic.xml.h:1
 msgid "Cubenetic"
-msgstr ""
+msgstr "Кубизм"
 
 #: ../hacks/config/cubenetic.xml.h:9 ../hacks/config/glblur.xml.h:9
 #: ../hacks/config/glknots.xml.h:8 ../hacks/config/gltext.xml.h:10
-#: ../hacks/config/kaleidocycle.xml.h:11 ../hacks/config/menger.xml.h:11
-#: ../hacks/config/molecule.xml.h:17 ../hacks/config/spheremonics.xml.h:10
-#: ../hacks/config/splitflap.xml.h:15
+#: ../hacks/config/handsy.xml.h:12 ../hacks/config/kaleidocycle.xml.h:11
+#: ../hacks/config/menger.xml.h:11 ../hacks/config/molecule.xml.h:17
+#: ../hacks/config/spheremonics.xml.h:10 ../hacks/config/splitflap.xml.h:15
 msgid "Don't rotate"
 msgstr "Не вращать"
 
 #: ../hacks/config/cubenetic.xml.h:10 ../hacks/config/glblur.xml.h:10
 #: ../hacks/config/glknots.xml.h:9 ../hacks/config/gltext.xml.h:11
-#: ../hacks/config/kaleidocycle.xml.h:12 ../hacks/config/lavalite.xml.h:23
-#: ../hacks/config/menger.xml.h:12 ../hacks/config/molecule.xml.h:18
-#: ../hacks/config/spheremonics.xml.h:11 ../hacks/config/splitflap.xml.h:16
+#: ../hacks/config/handsy.xml.h:13 ../hacks/config/kaleidocycle.xml.h:12
+#: ../hacks/config/lavalite.xml.h:23 ../hacks/config/menger.xml.h:12
+#: ../hacks/config/molecule.xml.h:18 ../hacks/config/spheremonics.xml.h:11
+#: ../hacks/config/splitflap.xml.h:16
 msgid "Rotate around X axis"
 msgstr "Вращать вокруг оси X"
 
 #: ../hacks/config/cubenetic.xml.h:11 ../hacks/config/glblur.xml.h:11
 #: ../hacks/config/glknots.xml.h:10 ../hacks/config/gltext.xml.h:12
-#: ../hacks/config/kaleidocycle.xml.h:13 ../hacks/config/lavalite.xml.h:24
-#: ../hacks/config/menger.xml.h:13 ../hacks/config/molecule.xml.h:19
-#: ../hacks/config/spheremonics.xml.h:12 ../hacks/config/splitflap.xml.h:17
+#: ../hacks/config/handsy.xml.h:14 ../hacks/config/kaleidocycle.xml.h:13
+#: ../hacks/config/lavalite.xml.h:24 ../hacks/config/menger.xml.h:13
+#: ../hacks/config/molecule.xml.h:19 ../hacks/config/spheremonics.xml.h:12
+#: ../hacks/config/splitflap.xml.h:17
 msgid "Rotate around Y axis"
 msgstr "Вращать вокруг оси Y"
 
 #: ../hacks/config/cubenetic.xml.h:12 ../hacks/config/glblur.xml.h:12
 #: ../hacks/config/glknots.xml.h:11 ../hacks/config/gltext.xml.h:13
-#: ../hacks/config/kaleidocycle.xml.h:14 ../hacks/config/lavalite.xml.h:25
-#: ../hacks/config/menger.xml.h:14 ../hacks/config/molecule.xml.h:20
-#: ../hacks/config/spheremonics.xml.h:13 ../hacks/config/splitflap.xml.h:18
+#: ../hacks/config/handsy.xml.h:15 ../hacks/config/kaleidocycle.xml.h:14
+#: ../hacks/config/lavalite.xml.h:25 ../hacks/config/menger.xml.h:14
+#: ../hacks/config/molecule.xml.h:20 ../hacks/config/spheremonics.xml.h:13
+#: ../hacks/config/splitflap.xml.h:18
 msgid "Rotate around Z axis"
 msgstr "Вращать вокруг оси Z"
 
 #: ../hacks/config/cubenetic.xml.h:13 ../hacks/config/glblur.xml.h:13
 #: ../hacks/config/glknots.xml.h:12 ../hacks/config/gltext.xml.h:14
-#: ../hacks/config/kaleidocycle.xml.h:15 ../hacks/config/lavalite.xml.h:26
-#: ../hacks/config/menger.xml.h:15 ../hacks/config/molecule.xml.h:21
-#: ../hacks/config/spheremonics.xml.h:14 ../hacks/config/splitflap.xml.h:19
+#: ../hacks/config/handsy.xml.h:16 ../hacks/config/kaleidocycle.xml.h:15
+#: ../hacks/config/lavalite.xml.h:26 ../hacks/config/menger.xml.h:15
+#: ../hacks/config/molecule.xml.h:21 ../hacks/config/spheremonics.xml.h:14
+#: ../hacks/config/splitflap.xml.h:19
 msgid "Rotate around X and Y axes"
 msgstr "Вращать вокруг осей X и Y"
 
 #: ../hacks/config/cubenetic.xml.h:14 ../hacks/config/glblur.xml.h:14
 #: ../hacks/config/glknots.xml.h:13 ../hacks/config/gltext.xml.h:15
-#: ../hacks/config/kaleidocycle.xml.h:16 ../hacks/config/lavalite.xml.h:27
-#: ../hacks/config/menger.xml.h:16 ../hacks/config/molecule.xml.h:22
-#: ../hacks/config/spheremonics.xml.h:15 ../hacks/config/splitflap.xml.h:20
+#: ../hacks/config/handsy.xml.h:17 ../hacks/config/kaleidocycle.xml.h:16
+#: ../hacks/config/lavalite.xml.h:27 ../hacks/config/menger.xml.h:16
+#: ../hacks/config/molecule.xml.h:22 ../hacks/config/spheremonics.xml.h:15
+#: ../hacks/config/splitflap.xml.h:20
 msgid "Rotate around X and Z axes"
 msgstr "Вращать вокруг осей X и Z"
 
 #: ../hacks/config/cubenetic.xml.h:15 ../hacks/config/glblur.xml.h:15
 #: ../hacks/config/glknots.xml.h:14 ../hacks/config/gltext.xml.h:16
-#: ../hacks/config/kaleidocycle.xml.h:17 ../hacks/config/lavalite.xml.h:28
-#: ../hacks/config/menger.xml.h:17 ../hacks/config/molecule.xml.h:23
-#: ../hacks/config/spheremonics.xml.h:16 ../hacks/config/splitflap.xml.h:21
+#: ../hacks/config/handsy.xml.h:18 ../hacks/config/kaleidocycle.xml.h:17
+#: ../hacks/config/lavalite.xml.h:28 ../hacks/config/menger.xml.h:17
+#: ../hacks/config/molecule.xml.h:23 ../hacks/config/spheremonics.xml.h:16
+#: ../hacks/config/splitflap.xml.h:21
 msgid "Rotate around Y and Z axes"
 msgstr "Вращать вокруг осей Y и Z"
 
 #: ../hacks/config/cubenetic.xml.h:16 ../hacks/config/glblur.xml.h:16
 #: ../hacks/config/glknots.xml.h:15 ../hacks/config/gltext.xml.h:17
-#: ../hacks/config/kaleidocycle.xml.h:18 ../hacks/config/lavalite.xml.h:29
-#: ../hacks/config/menger.xml.h:18 ../hacks/config/molecule.xml.h:24
-#: ../hacks/config/spheremonics.xml.h:17 ../hacks/config/splitflap.xml.h:22
+#: ../hacks/config/handsy.xml.h:19 ../hacks/config/kaleidocycle.xml.h:18
+#: ../hacks/config/lavalite.xml.h:29 ../hacks/config/menger.xml.h:18
+#: ../hacks/config/molecule.xml.h:24 ../hacks/config/spheremonics.xml.h:17
+#: ../hacks/config/splitflap.xml.h:22
 msgid "Rotate around all three axes"
-msgstr "Вращать вокруг всех трех осей"
+msgstr "Вращать вокруг всех трёх осей"
 
 #: ../hacks/config/cubenetic.xml.h:18
 msgid "Surface pattern speed"
-msgstr "Скорость паттерна поверхности"
+msgstr "Скорость узора поверхности"
 
 #: ../hacks/config/cubenetic.xml.h:21
 msgid "Surface pattern overlap"
-msgstr "Разброс паттерна поверхности"
+msgstr "Разброс узора поверхности"
 
 #: ../hacks/config/cubenetic.xml.h:23
 msgid "Surface pattern complexity"
-msgstr "Сложность паттерна поверхности"
+msgstr "Сложность узора поверхности"
 
 #: ../hacks/config/cubenetic.xml.h:27
 msgid ""
 "A cubist Lavalite, sort of. A pulsating set of overlapping boxes with ever-"
 "changing blobby patterns undulating across their surfaces. Written by Jamie "
 "Zawinski; 2002."
-msgstr ""
+msgstr "Кубистическая лавовая лампа. Пульсирующий набор коробок с постоянно меняющимися волнообразными узорами сгустков по их поверхностям. Автор Джейми Завински; 2002 год."
 
 #: ../hacks/config/cubestack.xml.h:1
 msgid "CubeStack"
-msgstr ""
+msgstr "Стопка кубиков"
 
 #: ../hacks/config/cubestack.xml.h:11 ../hacks/config/hypertorus.xml.h:8
 #: ../hacks/config/qix.xml.h:21 ../hacks/config/webcollage.xml.h:8
@@ -3618,7 +3546,7 @@ msgstr "Прозрачный"
 
 #: ../hacks/config/cubestack.xml.h:12
 msgid "Opacity"
-msgstr "ПРозрачность"
+msgstr "Прозрачность"
 
 #: ../hacks/config/cubestack.xml.h:13 ../hacks/config/mirrorblob.xml.h:19
 #: ../hacks/config/webcollage.xml.h:10
@@ -3627,31 +3555,36 @@ msgstr "Непрозрачный"
 
 #: ../hacks/config/cubestack.xml.h:17
 msgid ""
-"An endless stack of unfolding, translucent cubes. Written by Jamie Zawinski; "
-"2016."
-msgstr ""
+"An endless stack of unfolding, translucent cubes. Written by Jamie Zawinski;"
+" 2016."
+msgstr "Бесконечная стопка разворачивающихся полупрозрачных кубиков. Автор Джейми Завински; 2016."
 
 #: ../hacks/config/cubestorm.xml.h:1
 msgid "CubeStorm"
-msgstr ""
+msgstr "Кубический вихрь"
 
 #: ../hacks/config/cubestorm.xml.h:9
 msgid "Cubes"
 msgstr "Кубы"
 
-#: ../hacks/config/cubestorm.xml.h:12
+#: ../hacks/config/cubestorm.xml.h:12 ../hacks/config/rotor.xml.h:6
+#: ../hacks/config/skytentacles.xml.h:6 ../hacks/config/wander.xml.h:9
+msgid "Length"
+msgstr "Длина"
+
+#: ../hacks/config/cubestorm.xml.h:15
 msgid "Struts"
-msgstr "РаÑ\81поÑ\80ки"
+msgstr "СÑ\82ойки"
 
-#: ../hacks/config/cubestorm.xml.h:18
+#: ../hacks/config/cubestorm.xml.h:21
 msgid ""
-"Boxes change shape and intersect each other, filling space. Written by Jamie "
-"Zawinski; 2003."
-msgstr ""
+"Boxes change shape and intersect each other, filling space. Written by Jamie"
+" Zawinski; 2003."
+msgstr "Коробки, изменяя форму, пересекаются друг с другом, заполняя пространство. Автор Джейми Завински; 2003."
 
 #: ../hacks/config/cubetwist.xml.h:1
 msgid "CubeTwist"
-msgstr ""
+msgstr "Вложенные кубики"
 
 #: ../hacks/config/cubetwist.xml.h:11 ../hacks/config/glsnake.xml.h:8
 msgid "Tight"
@@ -3669,11 +3602,11 @@ msgstr "Широкое"
 msgid ""
 "A series of nested cubes rotate and slide recursively. Written by Jamie "
 "Zawinski; 2016."
-msgstr ""
+msgstr "Серия вложенных кубиков вращается и скользит рекурсивно. Автор Джейми Завински; 2016."
 
 #: ../hacks/config/cubicgrid.xml.h:1
 msgid "CubicGrid"
-msgstr ""
+msgstr "Кубическая сеть"
 
 #: ../hacks/config/cubicgrid.xml.h:8
 msgid "Close"
@@ -3689,11 +3622,11 @@ msgstr "Большие точки"
 
 #: ../hacks/config/cubicgrid.xml.h:13
 msgid "A rotating lattice of colored points. Written by Vasek Potocek; 2007."
-msgstr ""
+msgstr "Вращающаяся решетка цветных точек. Автор Васек Поточек; 2007 год."
 
 #: ../hacks/config/cwaves.xml.h:1
 msgid "CWaves"
-msgstr ""
+msgstr "С-волны"
 
 #: ../hacks/config/cwaves.xml.h:5 ../hacks/config/flame.xml.h:11
 #: ../hacks/config/jigglypuff.xml.h:21 ../hacks/config/tessellimage.xml.h:12
@@ -3702,7 +3635,7 @@ msgstr "Сложность"
 
 #: ../hacks/config/cwaves.xml.h:6
 msgid "Rough"
-msgstr "Жесткий"
+msgstr "Жёсткий"
 
 #: ../hacks/config/cwaves.xml.h:7
 msgid "Color transitions"
@@ -3718,21 +3651,21 @@ msgstr "Мягкий"
 msgid ""
 "A field of sinusoidal colors languidly scrolls. It's relaxing. Written by "
 "Jamie Zawinski; 2007."
-msgstr ""
+msgstr "Поле синусоидальных цветов вяло прокручивается. Это расслабляет. Автор Джейми Завински; 2007."
 
 #: ../hacks/config/cynosure.xml.h:1
 msgid "Cynosure"
-msgstr ""
+msgstr "Центр внимания"
 
 #: ../hacks/config/cynosure.xml.h:12
 msgid ""
 "Random dropshadowed rectangles pop onto the screen in lockstep. Written by "
 "Ozymandias G. Desiderata, Jamie Zawinski, and Stephen Linhart; 1998."
-msgstr ""
+msgstr "Случайное падение тени прямоугольниками на экран. Автор: Озимандиас Г. Десидеката, Джейми Завински, и Стивен Линхартом; 1998."
 
 #: ../hacks/config/dangerball.xml.h:1
 msgid "DangerBall"
-msgstr ""
+msgstr "Опасный шар"
 
 #: ../hacks/config/dangerball.xml.h:6
 msgid "Spike growth"
@@ -3748,11 +3681,11 @@ msgstr "Ой!"
 
 #: ../hacks/config/dangerball.xml.h:15
 msgid "A spiky ball. Ouch! Written by Jamie Zawinski; 2001."
-msgstr ""
+msgstr "Колючий мяч. Ой! Автор Джейми Завински; 2001 год."
 
 #: ../hacks/config/decayscreen.xml.h:1
 msgid "DecayScreen"
-msgstr ""
+msgstr "Разрушение экрана"
 
 #: ../hacks/config/decayscreen.xml.h:8
 msgid "Random melt style"
@@ -3812,18 +3745,18 @@ msgstr "Равномерное растворение"
 
 #: ../hacks/config/decayscreen.xml.h:22
 msgid "Fuzzy melt"
-msgstr "Ð\9cедленное растворение"
+msgstr "Ð\9dеÑ\87Ñ\91Ñ\82кое растворение"
 
 #: ../hacks/config/decayscreen.xml.h:24
 msgid ""
 "Melts an image in various ways. Warning, if the effect continues after the "
 "screen saver is off, seek medical attention. Written by David Wald, Vivek "
 "Khera, Jamie Zawinski, and Vince Levey; 1993."
-msgstr ""
+msgstr "Плавление различными методами. Предупреждение, если эффект продолжается и после выключения заставки, обратитесь к врачу. Автор Дэвид Уолд, Вивек Кхера, Джейми Завински, и Винс Леви; 1993 год."
 
 #: ../hacks/config/deco.xml.h:1
 msgid "Deco"
-msgstr ""
+msgstr "Деку"
 
 #: ../hacks/config/deco.xml.h:8
 msgid "Minimum width"
@@ -3854,11 +3787,11 @@ msgid ""
 "Subdivides and colors rectangles randomly, for a Mondrian-esque effect. "
 "https://en.wikipedia.org/wiki/Piet_Mondrian#Paris_1919.E2.80.931938 Written "
 "by Jamie Zawinski and Michael Bayne; 1997."
-msgstr ""
+msgstr "Разделяет цвета прямоугольников случайным образом, для Мондриана-подобного эффекта. https://en.wikipedia.org/wiki/Piet_Mondrian#Paris_1919.E2.80.931938 Автор Джейми Завински и Майкл Бейн; 1997."
 
 #: ../hacks/config/deluxe.xml.h:1
 msgid "Deluxe"
-msgstr ""
+msgstr "Роскошный"
 
 #: ../hacks/config/deluxe.xml.h:9
 msgid "Shapes"
@@ -3871,17 +3804,17 @@ msgstr "Прозрачность"
 
 #: ../hacks/config/deluxe.xml.h:17
 msgid "Pulsing stars, circles, and lines. Written by Jamie Zawinski; 1999."
-msgstr ""
+msgstr "Пульсирующие звёзды, круги и линии. Автор Джейми Завински; 1999 год."
 
 #: ../hacks/config/demon.xml.h:1
 msgid "Demon"
-msgstr ""
+msgstr "Демон"
 
 #: ../hacks/config/demon.xml.h:5 ../hacks/config/gears.xml.h:8
 #: ../hacks/config/glhanoi.xml.h:5 ../hacks/config/interference.xml.h:18
 #: ../hacks/config/voronoi.xml.h:8
 msgid "0"
-msgstr ""
+msgstr "0"
 
 #: ../hacks/config/demon.xml.h:6
 msgid "States"
@@ -3891,31 +3824,32 @@ msgstr "Состояния"
 #, no-c-format
 msgid ""
 "A cellular automaton that starts with a random field, and organizes it into "
-"stripes and spirals. https://en.wikipedia.org/wiki/Maxwell%27s_demon Written "
-"by David Bagley; 1999."
-msgstr ""
+"stripes and spirals. https://en.wikipedia.org/wiki/Maxwell%27s_demon Written"
+" by David Bagley; 1999."
+msgstr "Клеточный автомат, который начинается случайным полем, и делит его на полосы и спирали. https://en.wikipedia.org/wiki/Maxwell%27s_demon Автор Дэвид Бэгли; 1999 год."
 
 #: ../hacks/config/discoball.xml.h:1
 msgid "Discoball"
-msgstr ""
+msgstr "Диско-шар"
 
 #: ../hacks/config/discoball.xml.h:15
-msgid "A dusty, dented disco ball. Woop woop. Written by Jamie Zawinski; 2016."
-msgstr ""
+msgid ""
+"A dusty, dented disco ball. Woop woop. Written by Jamie Zawinski; 2016."
+msgstr "Пыльный, помятый диско-шар. Вууп-вууп. Автор Джейми Завински; 2016."
 
 #: ../hacks/config/discrete.xml.h:1
 msgid "Discrete"
-msgstr ""
+msgstr "Дискретный"
 
 #: ../hacks/config/discrete.xml.h:12
 msgid ""
 "Discrete map fractal systems, including variants of Hopalong, Julia, and "
 "others. Written by Tim Auckland; 1998."
-msgstr ""
+msgstr "Дискретная карта фрактальных систем, в том числе вариантов Хопалонг и других. Автор Тим Окленд; 1998."
 
 #: ../hacks/config/distort.xml.h:1
 msgid "Distort"
-msgstr ""
+msgstr "Искажение"
 
 #. #### -slow
 #: ../hacks/config/distort.xml.h:11
@@ -3940,11 +3874,11 @@ msgstr "Отражение"
 
 #: ../hacks/config/distort.xml.h:19
 msgid "Magnify"
-msgstr "УвелиÑ\87ение"
+msgstr "Ð\9bÑ\83па"
 
 #: ../hacks/config/distort.xml.h:20
 msgid "Black hole"
-msgstr "Черная дыра"
+msgstr "Чёрная дыра"
 
 #: ../hacks/config/distort.xml.h:21
 msgid "Vortex"
@@ -3954,76 +3888,95 @@ msgstr "Вихрь"
 msgid ""
 "Wandering lenses distort the screen image in various ways. Written by Jonas "
 "Munsin; 1998."
-msgstr ""
+msgstr "Блуждающие линзы искажают изображение на экране разными способами. Автор Джонас Мунсин; 1998 год."
 
 #: ../hacks/config/dnalogo.xml.h:1
 msgid "DNA Logo"
-msgstr ""
+msgstr "Логотип DNA"
 
 #: ../hacks/config/dnalogo.xml.h:3
 msgid "Frame Rate"
-msgstr ""
+msgstr "Частота кадров"
 
 #: ../hacks/config/dnalogo.xml.h:5
 msgid "DNA Lounge logo"
-msgstr ""
+msgstr "Логотип зала DNA"
 
 #: ../hacks/config/dnalogo.xml.h:6
 msgid "DNA Pizza logo"
-msgstr ""
+msgstr "Логотип пиццы DNA"
 
 #: ../hacks/config/dnalogo.xml.h:7
 msgid "DNA Lounge and DNA Pizza logos"
-msgstr ""
-
-#: ../hacks/config/dnalogo.xml.h:8
-msgid "Codeword logo"
-msgstr ""
+msgstr "Логотипы зала и пиццы DNA"
 
-#: ../hacks/config/dnalogo.xml.h:11
+#: ../hacks/config/dnalogo.xml.h:10
 msgid ""
-"DNA Lounge Restaurant -- Bar -- Nightclub -- Cafe -- Est. 1985. 375 Eleventh "
-"Street San Francisco, CA 94103 Codeword Restaurant -- Bar -- Nightclub -- "
-"Cafe -- Est. 2015. 917 Folsom Street San Francisco, CA 94107 https://www."
-"dnalounge.com/ http://www.dnapizza.com/ https://www.codeword-sf.com/ Written "
-"by Jamie Zawinski; 2001."
-msgstr ""
+"DNA Lounge Restaurant -- Bar -- Nightclub -- Cafe -- Est. 1985. 375 Eleventh"
+" Street San Francisco, CA 94103 Codeword Restaurant -- Bar -- Nightclub -- "
+"Cafe -- Est. 2015. 917 Folsom Street San Francisco, CA 94107 "
+"https://www.dnalounge.com/ http://www.dnapizza.com/ https://www.codeword-"
+"sf.com/ Written by Jamie Zawinski; 2001."
+msgstr "DNA Зал Ресторан - Бар - Ночной клуб - Кафе - Восток.1985. Сан-Франциско, Калифорния, Одиннадцатая улица, 375, 94103; Кодовый ресторан -- Бар -- Ночной клуб -- Кафе -- Восток.2015. Сан-Франциско, Калифорния, улица Фолса, 917, 94107 https://www.dnalounge.com/ http://www.dnapizza.com/ https://www.codeword-sf.com/ Автор Джейми Завински; 2001 год."
 
 #: ../hacks/config/drift.xml.h:1
 msgid "Drift"
-msgstr ""
+msgstr "Дрейф"
 
 #: ../hacks/config/drift.xml.h:12
 msgid ""
 "Drifting recursive fractal cosmic flames. Written by Scott Draves; 1997."
-msgstr ""
+msgstr "Дрейфование рекурсивного фрактального космического пламени. Автор Скотт Дрейвес; 1997."
 
 #: ../hacks/config/dymaxionmap.xml.h:1
 msgid "DymaxionMap"
-msgstr ""
+msgstr "Карта Димаксиона"
+
+#: ../hacks/config/dymaxionmap.xml.h:8
+msgid "Flat map"
+msgstr "Плоская карта"
 
-#. #### -no-texture
 #: ../hacks/config/dymaxionmap.xml.h:9
-msgid "Image file"
-msgstr "Файл изображения"
+msgid "Satellite map"
+msgstr "Спутниковая карта"
+
+#: ../hacks/config/dymaxionmap.xml.h:10
+msgid "Day / night smoothness"
+msgstr "Гладкость дня / ночи"
 
-#: ../hacks/config/dymaxionmap.xml.h:11 ../hacks/config/glplanet.xml.h:10
+#: ../hacks/config/dymaxionmap.xml.h:12
+msgid "Lat / Long"
+msgstr "Широта / долгота"
+
+#: ../hacks/config/dymaxionmap.xml.h:14 ../hacks/config/glplanet.xml.h:10
 #: ../hacks/config/moebiusgears.xml.h:12
 msgid "Roll"
-msgstr "Ð\9fовоÑ\80аÑ\87иваÑ\82Ñ\8c"
+msgstr "Ð\9aаÑ\82иÑ\82Ñ\8cÑ\81Ñ\8f"
 
-#: ../hacks/config/dymaxionmap.xml.h:15
+#: ../hacks/config/dymaxionmap.xml.h:18
+#, no-c-format
 msgid ""
 "Buckminster Fuller's map of the Earth projected onto the surface of an "
 "unfolded icosahedron. It depicts the Earth's continents as one island, or "
-"nearly contiguous land masses. https://en.wikipedia.org/wiki/Dymaxion_map "
-"https://en.wikipedia.org/wiki/Buckminster_Fuller Written by Jamie Zawinski; "
-"2016."
-msgstr ""
+"nearly contiguous land masses. This screen saver animates the progression of"
+" the dusk terminator across the flattened globe. It includes both satellite "
+"and flat-colored map imagery, and can load and convert other "
+"Equirectangular-projected maps. \"Dymaxion Map\" and \"The Fuller Projection"
+" Map\" are trademarks of The Buckminster Fuller Institute. The original "
+"Dymaxion Map image is copyright 1982 by The Buckminster Fuller Institute. "
+"(This program does not use their imagery, only similar trigonometry.) The "
+"Dymaxion Map was covered by now-expired US Patent 2,393,676 (Richard "
+"Buckminster Fuller, 1946). https://en.wikipedia.org/wiki/Dymaxion_map "
+"https://en.wikipedia.org/wiki/Buckminster_Fuller "
+"https://en.wikipedia.org/wiki/List_of_map_projections "
+"https://en.wikipedia.org/wiki/Cahill%E2%80%93Keyes_projection "
+"https://en.wikipedia.org/wiki/Waterman_butterfly_projection Written by Jamie"
+" Zawinski; 2016."
+msgstr "Карта Земли Бакминстера Фуллера проецируется на поверхность развёрнутого икосаэдра. На нём изображены континенты Земли как один остров или почти смежные массивы суши. Эта заставка анимирует продвижение сумеречного терминатора по сплющенному земному шару. Она включает в себя как спутниковые, так и плоские изображения карт, и может загружать и преобразовывать другие карты с прямой проекцией. «Карта Димаксиона» и «Карта проекции Фуллера» являются товарными знаками Института Бакминстера Фуллера. Оригинальное изображение Карты Димаксиона является собственностью Института Бакминстера Фуллера, 1982 год. (Эта программа не использует их изображения, только похожую тригонометрию.) Карта Димаксиона была защищена патентом США №2393676, срок действия которого истёк (Ричард Бакминстер Фуллер, 1946). https://en.wikipedia.org/wiki/Dymaxion_map https://en.wikipedia.org/wiki/Buckminster_Fuller https://en.wikipedia.org/wiki/List_of_map_projections https://en.wikipedia.org/wiki/Cahill%E2%80%93Keyes_projection https://en.wikipedia.org/wiki/Waterman_butterfly_projection Автор Джейми Завински; 2016."
 
 #: ../hacks/config/endgame.xml.h:1
 msgid "Endgame"
-msgstr ""
+msgstr "Эндшпиль"
 
 #: ../hacks/config/endgame.xml.h:5
 msgid "Low resolution chess pieces"
@@ -4032,24 +3985,24 @@ msgstr "Шахматные фигуры в низком разрешении"
 #: ../hacks/config/endgame.xml.h:7
 msgid ""
 "Black slips out of three mating nets, but the fourth one holds him tight! A "
-"brilliant composition! See also the \"Queens\" screen saver. https://en."
-"wikipedia.org/wiki/Chess_endgame Written by Blair Tennessy and Jamie "
-"Zawinski; 2002."
-msgstr ""
+"brilliant composition! See also the \"Queens\" screen saver. "
+"https://en.wikipedia.org/wiki/Chess_endgame Written by Blair Tennessy and "
+"Jamie Zawinski; 2002."
+msgstr "Чёрный король выскальзывает из трёх сопряжённых сетей, но четвёртая держит его крепко! Блестящая комбинация! Смотрите также хранитель экрана \"Ферзи\". https://en.wikipedia.org/wiki/Chess_endgame Автор Блэр Теннесси и Джейми Завински; 2002."
 
 #: ../hacks/config/energystream.xml.h:1
 msgid "EnergyStream"
-msgstr ""
+msgstr "Энергетический поток"
 
 #: ../hacks/config/energystream.xml.h:8
 msgid ""
 "A flow of particles which form an energy stream. Written by Eugene "
 "Sandulenko and Konrad \"Yoghurt\" Zagorowicz; 2016."
-msgstr ""
+msgstr "Поток частиц, которые образуют поток энергии. Автор Евгений Сандуленко и Конрад \"Йогурт\" Загорович; 2016."
 
 #: ../hacks/config/engine.xml.h:1
 msgid "Engine"
-msgstr ""
+msgstr "Двигатель"
 
 #: ../hacks/config/engine.xml.h:5
 msgid "Random engine"
@@ -4057,11 +4010,11 @@ msgstr "Случайный двигатель"
 
 #: ../hacks/config/engine.xml.h:6
 msgid "Honda Insight (3 cylinders)"
-msgstr "Honda Insight (3 цилиндра)"
+msgstr "Honda Insight/Хонда Инсайт (3 цилиндра)"
 
 #: ../hacks/config/engine.xml.h:7
 msgid "BMW M3 (4 cylinders)"
-msgstr "BMW M3 (4 цилиндра)"
+msgstr "BMW/БМВ M3 (4 цилиндра)"
 
 #: ../hacks/config/engine.xml.h:8
 msgid "VW Beetle (4 cylinders, flat)"
@@ -4069,11 +4022,11 @@ msgstr "VW Beetle (4 цилиндра, расположенных горизон
 
 #: ../hacks/config/engine.xml.h:9
 msgid "Audi Quattro (5 cylinders)"
-msgstr "Audi Quattro (5 цилиндров)"
+msgstr "Audi Quattro/Ауди Кватро (5 цилиндров)"
 
 #: ../hacks/config/engine.xml.h:10
 msgid "BMW M5 (6 cylinders)"
-msgstr "BMW M5 (6 цилиндров)"
+msgstr "BMW/БМВ M5 (6 цилиндров)"
 
 #: ../hacks/config/engine.xml.h:11
 msgid "Subaru XT (6 cylinders, V)"
@@ -4101,14 +4054,14 @@ msgstr "Показывать название двигателя"
 
 #: ../hacks/config/engine.xml.h:20
 msgid ""
-"Internal combusion engines. https://en.wikipedia.org/wiki/"
-"Internal_combustion_engine#Operation Written by Ben Buxton, Ed Beroset and "
-"Jamie Zawinski; 2001."
-msgstr ""
+"Internal combusion engines. "
+"https://en.wikipedia.org/wiki/Internal_combustion_engine#Operation Written "
+"by Ben Buxton, Ed Beroset and Jamie Zawinski; 2001."
+msgstr "Двигатели внутреннего сгорания. https://en.wikipedia.org/wiki/Internal_combustion_engine#Operation Автор Бен Бакстон, Эд Беросет и Джейми Завински; 2001 год."
 
 #: ../hacks/config/epicycle.xml.h:1
 msgid "Epicycle"
-msgstr ""
+msgstr "Эпицикл"
 
 #: ../hacks/config/epicycle.xml.h:12
 msgid "Harmonics"
@@ -4116,15 +4069,16 @@ msgstr "Гармоники"
 
 #: ../hacks/config/epicycle.xml.h:15
 msgid ""
-"A pre-heliocentric model of planetary motion. This draws the path traced out "
-"by a point on the edge of a circle. That circle rotates around a point on "
-"the rim of another circle, and so on, several times. https://en.wikipedia."
-"org/wiki/Deferent_and_epicycle Written by James Youngman; 1998."
-msgstr ""
+"A pre-heliocentric model of planetary motion. This draws the path traced out"
+" by a point on the edge of a circle. That circle rotates around a point on "
+"the rim of another circle, and so on, several times. "
+"https://en.wikipedia.org/wiki/Deferent_and_epicycle Written by James "
+"Youngman; 1998."
+msgstr "Гелиоцентрическая модель движения планет. Показывает путь, проходимый точкой по краю круга. Этот круг вращается вокруг точки на ободе другого круга, и так далее,  несколько раз. https://en.wikipedia.org/wiki/Deferent_and_epicycle Автор Джеймс Янгмэн; 1998."
 
 #: ../hacks/config/eruption.xml.h:1
 msgid "Eruption"
-msgstr ""
+msgstr "Извержение"
 
 #: ../hacks/config/eruption.xml.h:8
 msgid "Little"
@@ -4132,7 +4086,7 @@ msgstr "Мало"
 
 #: ../hacks/config/eruption.xml.h:11
 msgid "Cooling factor"
-msgstr "ФакÑ\82оÑ\80 охлаждения"
+msgstr "Ð\9aоÑ\8dÑ\84Ñ\84иÑ\86иенÑ\82 охлаждения"
 
 #: ../hacks/config/eruption.xml.h:13
 msgid "Pleasant"
@@ -4164,11 +4118,26 @@ msgstr "Положительная"
 msgid ""
 "Exploding fireworks. See also the \"Fireworkx\", \"XFlame\" and \"Pyro\" "
 "screen savers. Written by W.P. van Paassen; 2003."
-msgstr ""
+msgstr "Взрыв фейерверков. Смотрите также  хранители экрана: \"Фейерверк\", \"Х-пламя\" и \"Пирозапал\". Автор В.П. ван Паассен; 2003 год."
+
+#: ../hacks/config/esper.xml.h:1
+msgid "Esper"
+msgstr "Эспер"
+
+#: ../hacks/config/esper.xml.h:10
+msgid ""
+"\"Enhance 224 to 176. Pull out track right. Center in pull back. Pull back. "
+"Wait a minute. Go right. Stop. Enhance 57 19. Track 45 left. Gimme a "
+"hardcopy right there.\" The Esper Machine was a voice-controlled forensic "
+"device used by LAPD in 2019, as documented in the 1982 film, Blade Runner. "
+"It was capable of enhancing photographs to an extreme degree, including "
+"reconstructing different viewpoints within the space from the reflections on"
+" various objects in the photograph. Written by Jamie Zawinski; 2017."
+msgstr "«Повысьте число от 224 до 176. Вытяните дорожку вправо. Сосредоточьтесь сзади. Потяните назад. Подождите минуту. Идите направо. Стоп. Повысьте 57 19. Проследуйте 45 влево. Машина Эспера представляла собой судебно-медицинское устройство с голосовым управлением, которое LAPD использовало в 2019 году, как это зафиксировано в фильме 1982 года «Бегущий по лезвию». Она была способна улучшить фотографии в экстремальной степени, в том числе реконструировать различные точки обзора в пространстве по отражениям от различных объектов на фотографии. Автор Джейми Завински; 2017."
 
 #: ../hacks/config/euler2d.xml.h:1
 msgid "Euler2D"
-msgstr ""
+msgstr "Эйлер 2D"
 
 #: ../hacks/config/euler2d.xml.h:6 ../hacks/config/whirlwindwarp.xml.h:3
 msgid "Particles"
@@ -4177,14 +4146,15 @@ msgstr "Частицы"
 #: ../hacks/config/euler2d.xml.h:31
 #, no-c-format
 msgid ""
-"Simulates two dimensional incompressible inviscid fluid flow. https://en."
-"wikipedia.org/wiki/Euler_equations_%28fluid_dynamics%29 https://en.wikipedia."
-"org/wiki/Inviscid_flow Written by Stephen Montgomery-Smith; 2002."
-msgstr ""
+"Simulates two dimensional incompressible inviscid fluid flow. "
+"https://en.wikipedia.org/wiki/Euler_equations_%28fluid_dynamics%29 "
+"https://en.wikipedia.org/wiki/Inviscid_flow Written by Stephen Montgomery-"
+"Smith; 2002."
+msgstr "Имитируется двумерный несжимаемый поток невязкой жидкости. https://en.wikipedia.org/wiki/Euler_equations_%28fluid_dynamics%29 https://en.wikipedia.org/wiki/Inviscid_flow Автор Стивен Монтгомери-Смит; 2002 год."
 
 #: ../hacks/config/extrusion.xml.h:1
 msgid "Extrusion"
-msgstr ""
+msgstr "Экструзия"
 
 #: ../hacks/config/extrusion.xml.h:5 ../hacks/config/morph3d.xml.h:5
 #: ../hacks/config/polytopes.xml.h:5
@@ -4205,7 +4175,7 @@ msgstr "Спираль 4"
 
 #: ../hacks/config/extrusion.xml.h:9
 msgid "Join offset"
-msgstr "Смещение"
+msgstr "Смещение присоединения"
 
 #: ../hacks/config/extrusion.xml.h:10
 msgid "Screw"
@@ -4229,13 +4199,13 @@ msgstr "Использовать освещение"
 
 #: ../hacks/config/extrusion.xml.h:18
 msgid ""
-"Various extruded shapes twist and turn inside out. Written by Linas Vepstas, "
-"David Konerding, and Jamie Zawinski; 1999."
-msgstr ""
+"Various extruded shapes twist and turn inside out. Written by Linas Vepstas,"
+" David Konerding, and Jamie Zawinski; 1999."
+msgstr "Различные формы прессуются, закручиваются и выворачиваются наизнанку. Автор Линас Вепстас, Дэвид Конердинг и Джейми Завински; 1999 год."
 
 #: ../hacks/config/fadeplot.xml.h:1
 msgid "FadePlot"
-msgstr ""
+msgstr "Сюжет увядания"
 
 #: ../hacks/config/fadeplot.xml.h:9 ../hacks/config/lcdscrub.xml.h:6
 #: ../hacks/config/spiral.xml.h:8
@@ -4246,11 +4216,11 @@ msgstr "Циклы"
 msgid ""
 "A waving ribbon follows a sinusoidal path. Written by Bas van Gaalen and "
 "Charles Vidal; 1997."
-msgstr ""
+msgstr "Развевающиеся ленты следуют синусоидальному пути. Автор: Бас ван Гаален и Чарльз Видал; 1997."
 
 #: ../hacks/config/fiberlamp.xml.h:1
 msgid "Fiberlamp"
-msgstr ""
+msgstr "Оптиковолоконная лампа"
 
 #: ../hacks/config/fiberlamp.xml.h:6
 msgid "Fibers"
@@ -4262,11 +4232,27 @@ msgstr "Время между ударами"
 
 #: ../hacks/config/fiberlamp.xml.h:12
 msgid "A fiber-optic lamp. Groovy. Written by Tim Auckland; 2005."
-msgstr ""
+msgstr "Оптиковолоконная лампа. Прикольная. Автор Тим Окленд; 2005 год."
+
+#: ../hacks/config/filmleader.xml.h:1
+msgid "FilmLeader"
+msgstr "Кинематографический лидер"
+
+#: ../hacks/config/filmleader.xml.h:6 ../hacks/config/pong.xml.h:6
+#: ../hacks/config/unknownpleasures.xml.h:13 ../hacks/config/vfeedback.xml.h:6
+msgid "Noise"
+msgstr "Шум"
+
+#: ../hacks/config/filmleader.xml.h:10
+msgid ""
+"Displays a looping countdown based on the SMPTE Universal Film leader on a "
+"simulation of an old analog television. "
+"https://en.wikipedia.org/wiki/Film_leader Written by Jamie Zawinski; 2018."
+msgstr "Отображает обратный отсчёт цикла на основе универсального кинематографического лидера SMPTE при моделировании старого аналогового телевидения. https://en.wikipedia.org/wiki/Film_leader Автор Джейми Завински; 2018."
 
 #: ../hacks/config/fireworkx.xml.h:1
 msgid "Fireworkx"
-msgstr ""
+msgstr "Фейерверк"
 
 #: ../hacks/config/fireworkx.xml.h:6 ../hacks/config/lavalite.xml.h:6
 msgid "Activity"
@@ -4284,15 +4270,15 @@ msgstr "Запускать фейерверки вверх"
 msgid ""
 "Exploding fireworks. See also the \"Eruption\", \"XFlame\" and \"Pyro\" "
 "screen savers. Written by Rony B Chandran; 2004."
-msgstr ""
+msgstr "Взрыв фейерверков. Смотрите также хранители экрана \"Извержение\", \"Х-пламя\" и \"Пирозапал\". Автор Рони Б Чандран; 2004."
 
 #: ../hacks/config/flag.xml.h:1
 msgid "Flag"
-msgstr ""
+msgstr "Флаг"
 
 #: ../hacks/config/flag.xml.h:2
 msgid "Text for flag"
-msgstr ""
+msgstr "Текст для флага"
 
 #: ../hacks/config/flag.xml.h:14
 msgid ""
@@ -4301,11 +4287,11 @@ msgid ""
 "around the screen. The flag can contain arbitrary text and images. By "
 "default, it displays either the current system name and OS type, or a "
 "picture of \"Bob\". Written by Charles Vidal and Jamie Zawinski; 1997."
-msgstr ""
+msgstr "Эта заставка была удалена из дистрибутива XScreenSaver версии 5.08. Рисует развевающийся цветной флаг, который извивается вокруг экрана. Флаг может содержать произвольный текст и изображения. По умолчанию, он отображает либо текущее системное имя и тип ОС, либо изображение Боба. Автор Чарльз Видал и Джейми Завински; 1997."
 
 #: ../hacks/config/flame.xml.h:1
 msgid "Flame"
-msgstr ""
+msgstr "Пламя"
 
 #: ../hacks/config/flame.xml.h:9
 msgid "Number of fractals"
@@ -4313,11 +4299,11 @@ msgstr "Количество фракталов"
 
 #: ../hacks/config/flame.xml.h:15
 msgid "Iterative fractals. Written by Scott Draves; 1993."
-msgstr ""
+msgstr "Итерационные фракталы. Автор Скотт Дрейвес; 1993 год."
 
 #: ../hacks/config/flipflop.xml.h:1
 msgid "FlipFlop"
-msgstr ""
+msgstr "Резкий поворот"
 
 #: ../hacks/config/flipflop.xml.h:5
 msgid "Stopped"
@@ -4347,11 +4333,11 @@ msgstr "Загружать изображение"
 msgid ""
 "Colored tiles swap with each other. Written by Kevin Ogden and Sergio "
 "Gutierrez; 2003."
-msgstr ""
+msgstr "Цветные плитки меняются друг с другом. Автор Кевин Огден и Серхио Гутьеррес; 2003 год."
 
 #: ../hacks/config/flipscreen3d.xml.h:1
 msgid "FlipScreen3D"
-msgstr ""
+msgstr "3D кувырок экрана"
 
 #: ../hacks/config/flipscreen3d.xml.h:5 ../hacks/config/gleidescope.xml.h:12
 #: ../hacks/config/glplanet.xml.h:9 ../hacks/config/ifs.xml.h:67
@@ -4362,11 +4348,11 @@ msgstr "Поворачивать"
 #: ../hacks/config/flipscreen3d.xml.h:7
 msgid ""
 "Spins and deforms an image. Written by Ben Buxton and Jamie Zawinski; 2001."
-msgstr ""
+msgstr "Закручивает и деформирует изображение. Автор Бен Бакстон и Джейми Завински; 2001 год."
 
 #: ../hacks/config/fliptext.xml.h:1
 msgid "FlipText"
-msgstr ""
+msgstr "Кувыркающийся текст"
 
 #: ../hacks/config/fliptext.xml.h:8
 msgid "Random text alignment"
@@ -4386,7 +4372,7 @@ msgstr "Выравнивание по правому краю"
 
 #: ../hacks/config/fliptext.xml.h:12 ../hacks/config/starwars.xml.h:17
 msgid "Font point size"
-msgstr "Размер шрифта"
+msgstr "Размер шрифта точки"
 
 #: ../hacks/config/fliptext.xml.h:13
 msgid "Text columns"
@@ -4400,11 +4386,11 @@ msgstr "Строки текста"
 msgid ""
 "Successive pages of text flip in and out in a soothing 3D pattern. Written "
 "by Jamie Zawinski; 2005."
-msgstr ""
+msgstr "Кувыркание текста и выход в успокаивающий 3D узор. Автор: Джейми Завински; 2005."
 
 #: ../hacks/config/flow.xml.h:1
 msgid "Flow"
-msgstr ""
+msgstr "Поток"
 
 #: ../hacks/config/flow.xml.h:6 ../hacks/config/galaxy.xml.h:5
 #: ../hacks/config/glforestfire.xml.h:6 ../hacks/config/julia.xml.h:6
@@ -4450,15 +4436,15 @@ msgid ""
 "Birkhoff and Duffing, and can discover entirely new attractors by itself. "
 "https://en.wikipedia.org/wiki/Attractor#Strange_attractor Written by Tim "
 "Auckland; 1998."
-msgstr ""
+msgstr "Странные аттракторы формируются в 3D потоки дифференциального фазового пространства. Особенности популярных аттракторов, описанные Лоренцом, Ресслером, Биркгофом и Дюффингом, могут открыть совершенно новые аттракторы. https://en.wikipedia.org/wiki/Attractor#Strange_attractor Автор: Тим Окленд; 1998."
 
 #: ../hacks/config/fluidballs.xml.h:1
 msgid "FluidBalls"
-msgstr ""
+msgstr "Текучие шарики"
 
 #: ../hacks/config/fluidballs.xml.h:11
 msgid "      Freefall"
-msgstr "Свободное падение"
+msgstr "      Свободное падение"
 
 #: ../hacks/config/fluidballs.xml.h:13
 msgid "Jupiter"
@@ -4482,7 +4468,7 @@ msgstr "Глина"
 
 #: ../hacks/config/fluidballs.xml.h:18 ../hacks/config/twang.xml.h:11
 msgid "Friction"
-msgstr "Ð\92заимодейÑ\81Ñ\82вие"
+msgstr "ТÑ\80ение"
 
 #: ../hacks/config/fluidballs.xml.h:19
 msgid "Rubber"
@@ -4500,14 +4486,14 @@ msgstr "Трясти коробку"
 msgid ""
 "Models the physics of bouncing balls, or of particles in a gas or fluid, "
 "depending on the settings. If \"Shake Box\" is selected, then every now and "
-"then, the box will be rotated, changing which direction is down (in order to "
-"keep the settled balls in motion.) Written by Peter Birtles and Jamie "
+"then, the box will be rotated, changing which direction is down (in order to"
+" keep the settled balls in motion.) Written by Peter Birtles and Jamie "
 "Zawinski; 2002."
-msgstr ""
+msgstr "В зависимости от настроек представлена физическая модель прыгающих шариков, или частиц в газе, или жидкости, . Если выбран режим \"Встряхнуть ящик\", то каждый раз ящик будет переворачиваться, меняя направление верх-вниз (для того, чтобы сохранить шары в движении). Авторы: Питер Бертлз и Джейми Завински; 2002 год."
 
 #: ../hacks/config/flurry.xml.h:1
 msgid "Flurry"
-msgstr ""
+msgstr "Шквал"
 
 #: ../hacks/config/flurry.xml.h:3
 msgid "Classic"
@@ -4515,7 +4501,7 @@ msgstr "Классический"
 
 #: ../hacks/config/flurry.xml.h:4
 msgid "RGB"
-msgstr ""
+msgstr "RGB"
 
 #: ../hacks/config/flurry.xml.h:5
 msgid "Fire"
@@ -4537,15 +4523,15 @@ msgstr "Безумный"
 msgid ""
 "A colourful star(fish)like flurry of particles. Written by Calum Robinson "
 "and Tobias Sargeant; 2002."
-msgstr ""
+msgstr "Красочная звезда (рыба), похожая на поток частиц. Автор Калум Робинсон и Тобиас Сарджант; 2002."
 
 #: ../hacks/config/flyingtoasters.xml.h:1
 msgid "FlyingToasters"
-msgstr ""
+msgstr "Летающие тостеры"
 
 #: ../hacks/config/flyingtoasters.xml.h:6
 msgid "Air speed"
-msgstr "Скорость"
+msgstr "Скорость воздуха"
 
 #: ../hacks/config/flyingtoasters.xml.h:9
 msgid "Number of toasters"
@@ -4557,7 +4543,7 @@ msgstr "Рой"
 
 #: ../hacks/config/flyingtoasters.xml.h:11
 msgid "Number of slices"
-msgstr "Количество кусков хлеба"
+msgstr "Количество срезов"
 
 #: ../hacks/config/flyingtoasters.xml.h:12 ../hacks/config/jigglypuff.xml.h:6
 #: ../hacks/config/winduprobot.xml.h:20
@@ -4567,24 +4553,24 @@ msgstr "Хром"
 #: ../hacks/config/flyingtoasters.xml.h:16
 #, no-c-format
 msgid ""
-"A fleet of 3d space-age jet-powered flying toasters (and toast!) Inspired by "
-"the ancient Berkeley Systems After Dark flying toasters. https://en."
-"wikipedia.org/wiki/After_Dark_%28software%29#Flying_Toasters Written by "
-"Jamie Zawinski and Devon Dossett; 2003."
-msgstr ""
+"A fleet of 3d space-age jet-powered flying toasters (and toast!) Inspired by"
+" the ancient Berkeley Systems After Dark flying toasters. "
+"https://en.wikipedia.org/wiki/After_Dark_%28software%29#Flying_Toasters "
+"Written by Jamie Zawinski and Devon Dossett; 2003."
+msgstr "Флот 3d космической эры реактивных летающих тостеров (и тостов!). https://en.wikipedia.org/wiki/After_Dark_%28software%29#Flying_Toasters. Авторы: Джейми Завински и Девон Доссетт; 2003."
 
 #: ../hacks/config/fontglide.xml.h:1
 msgid "FontGlide"
-msgstr ""
+msgstr "Скольжение шрифта"
 
 #: ../hacks/config/fontglide.xml.h:8 ../hacks/config/raverhoop.xml.h:15
 #: ../hacks/config/tangram.xml.h:5 ../hacks/config/xlyap.xml.h:5
 msgid "Brief"
-msgstr "Короткая"
+msgstr "Кратко"
 
 #: ../hacks/config/fontglide.xml.h:9
 msgid "Page linger"
-msgstr "Ð\94лина страницы"
+msgstr "Ð\97адеÑ\80жка страницы"
 
 #: ../hacks/config/fontglide.xml.h:11
 msgid "Pages of text"
@@ -4596,7 +4582,7 @@ msgstr "Горизонтальная прокрутка текста"
 
 #: ../hacks/config/fontglide.xml.h:13
 msgid "Random display style"
-msgstr "СлÑ\83Ñ\87алÑ\8cный стиль отображения"
+msgstr "СлÑ\83Ñ\87айный стиль отображения"
 
 #: ../hacks/config/fontglide.xml.h:14
 msgid "Font border thickness"
@@ -4608,24 +4594,24 @@ msgstr "Следы испарения"
 
 #: ../hacks/config/fontglide.xml.h:17
 msgid ""
-"Puts text on the screen using large characters that glide in from the edges, "
-"assemble, then disperse. Alternately, it can simply scroll whole sentences "
+"Puts text on the screen using large characters that glide in from the edges,"
+" assemble, then disperse. Alternately, it can simply scroll whole sentences "
 "from right to left. Written by Jamie Zawinski; 2003."
-msgstr ""
+msgstr "Помещает текст на экран, используя большие символы, которые скользят от краёв, собираются, а потом расходятся. С другой стороны, можно просто прокручивать целые предложения справа налево. Автор: Джейми Завински; 2003."
 
 #: ../hacks/config/forest.xml.h:1 ../hacks/config/glforestfire.xml.h:10
 msgid "Forest"
-msgstr ""
+msgstr "Лес"
 
 #: ../hacks/config/forest.xml.h:9
 msgid ""
 "This screen saver was removed from the XScreenSaver distribution as of "
 "version 5.08. Fractal trees. Written by Peter Baumung; 1997."
-msgstr ""
+msgstr "Эта заставка была удалена из дистрибутива XScreenSaver версии 5.08. Фрактальные деревья. Автор Питер Баумунг; 1997 год."
 
 #: ../hacks/config/fuzzyflakes.xml.h:1
 msgid "FuzzyFlakes"
-msgstr ""
+msgstr "Пушистые хлопья"
 
 #: ../hacks/config/fuzzyflakes.xml.h:9 ../hacks/config/hypnowheel.xml.h:10
 #: ../hacks/config/xspirograph.xml.h:8
@@ -4646,7 +4632,7 @@ msgstr "Розовый"
 
 #: ../hacks/config/fuzzyflakes.xml.h:15
 msgid "Yellow"
-msgstr "Желтый"
+msgstr "Жёлтый"
 
 #: ../hacks/config/fuzzyflakes.xml.h:17
 msgid "Cyan"
@@ -4662,13 +4648,13 @@ msgstr "Толщина границ"
 
 #: ../hacks/config/fuzzyflakes.xml.h:28
 msgid ""
-"Falling colored snowflake/flower shapes. https://en.wikipedia.org/wiki/"
-"Snowflake Written by Barry Dmytro; 2004."
-msgstr ""
+"Falling colored snowflake/flower shapes. "
+"https://en.wikipedia.org/wiki/Snowflake Written by Barry Dmytro; 2004."
+msgstr "Падение цветных снежинок/цветов. https://en.wikipedia.org/wiki/Snowflake Автор Барри Дмитро; 2004."
 
 #: ../hacks/config/galaxy.xml.h:1
 msgid "Galaxy"
-msgstr ""
+msgstr "Галактика"
 
 #: ../hacks/config/galaxy.xml.h:12
 msgid "Rotate viewpoint"
@@ -4678,26 +4664,27 @@ msgstr "Поворачивать точку обзора"
 msgid ""
 "Spinning galaxies collide. Written by Uli Siegmund, Harald Backert, and "
 "Hubert Feyrer; 1997."
-msgstr ""
+msgstr "Вращающиеся галактики сталкиваются. Автор: Ули Зигмунд, Гарольд Бейкер, и Хьюберт Фейрер; 1997."
 
 #: ../hacks/config/gears.xml.h:1
 msgid "Gears"
-msgstr ""
+msgstr "Шестерёнки"
 
 #: ../hacks/config/gears.xml.h:9
 msgid "Gear count"
-msgstr "Количество шестеренок"
+msgstr "Количество шестерёнок"
 
 #: ../hacks/config/gears.xml.h:15
 msgid ""
 "Interlocking gears. See also the \"Pinion\" and \"MoebiusGears\" screen "
-"savers. https://en.wikipedia.org/wiki/Involute_gear https://en.wikipedia.org/"
-"wiki/Epicyclic_gearing Written by Jamie Zawinski; 2007."
-msgstr ""
+"savers. https://en.wikipedia.org/wiki/Involute_gear "
+"https://en.wikipedia.org/wiki/Epicyclic_gearing Written by Jamie Zawinski; "
+"2007."
+msgstr "Переплетение шестерёнок. Смотрите также хранители экрана: \"Круглая шестерёнка\" и \"Шестерёнки Мебиуса\". https://en.wikipedia.org/wiki/Involute_gear https://en.wikipedia.org/wiki/Epicyclic_gearing Автор Джейми Завински; 2007 год."
 
 #: ../hacks/config/geodesic.xml.h:1
 msgid "Geodesic"
-msgstr ""
+msgstr "Геодезический"
 
 #: ../hacks/config/geodesic.xml.h:2
 msgid "Mesh faces"
@@ -4709,11 +4696,11 @@ msgstr "Сплошная поверхность"
 
 #: ../hacks/config/geodesic.xml.h:4
 msgid "Stellated faces"
-msgstr "Звездообразная поверхность"
+msgstr "Звёздообразная поверхность"
 
 #: ../hacks/config/geodesic.xml.h:5
 msgid "Inverse Stellated"
-msgstr "Вывернутая звездообразная поверхность"
+msgstr "Вывернутая звёздообразная поверхность"
 
 #: ../hacks/config/geodesic.xml.h:7
 msgid "Random face style"
@@ -4722,7 +4709,7 @@ msgstr "Случайный стиль поверхности"
 #: ../hacks/config/geodesic.xml.h:19 ../hacks/config/kaleidocycle.xml.h:5
 #: ../hacks/config/strange.xml.h:11
 msgid "8"
-msgstr ""
+msgstr "8"
 
 #: ../hacks/config/geodesic.xml.h:20
 msgid ""
@@ -4730,35 +4717,37 @@ msgid ""
 "sphere is an icosohedron whose equilateral faces are sub-divided into non-"
 "equilateral triangles to more closely approximate a sphere. The animation "
 "shows the equilateral triangles subdivided into four coplanar equilateral "
-"triangles; and then inflated outward, causing the sub-triangles to no longer "
-"be equilateral, but to more closely approximate the surface of a sphere. "
-"https://en.wikipedia.org/wiki/Geodesic_dome https://en.wikipedia.org/wiki/"
-"Buckminster_Fuller Written by Jamie Zawinski; 2013."
-msgstr ""
+"triangles; and then inflated outward, causing the sub-triangles to no longer"
+" be equilateral, but to more closely approximate the surface of a sphere. "
+"https://en.wikipedia.org/wiki/Geodesic_dome "
+"https://en.wikipedia.org/wiki/Buckminster_Fuller Written by Jamie Zawinski; "
+"2013."
+msgstr "Геодезическая сфера является икосаэдром, чьи равносторонние грани подразделяются на неравносторонние треугольники, более приближающие сферу. Анимация показывает как равносторонний треугольник разделяется на четыре копланарных равносторонних, а затем раздувается наружу, в результате чего субтреугольники становятся больше не равносторонними, но более близко расположенными к поверхности сферы. https://en.wikipedia.org/wiki/Geodesic_dome https://en.wikipedia.org/wiki/Buckminster_Fuller Автор: Джейми Завински; 2013."
 
 #: ../hacks/config/geodesicgears.xml.h:1
 msgid "GeodesicGears"
-msgstr ""
+msgstr "Геодезические шестерёнки"
 
 #: ../hacks/config/geodesicgears.xml.h:8
 msgid "Describe gears"
-msgstr "Описание шестеренок"
+msgstr "Описание шестерёнок"
 
 #: ../hacks/config/geodesicgears.xml.h:9
 msgid "Number gears"
-msgstr "Количество шестеренок"
+msgstr "Количество шестерёнок"
 
 #: ../hacks/config/geodesicgears.xml.h:14
 msgid ""
-"A set of meshed gears arranged on the surface of a sphere. https://en."
-"wikipedia.org/wiki/Geodesic_dome https://en.wikipedia.org/wiki/Involute_gear "
+"A set of meshed gears arranged on the surface of a sphere. "
+"https://en.wikipedia.org/wiki/Geodesic_dome "
+"https://en.wikipedia.org/wiki/Involute_gear "
 "https://en.wikipedia.org/wiki/Buckminster_Fuller Written by Jamie Zawinski; "
 "2014."
-msgstr ""
+msgstr "Набор зацепленных зубчатых шестерёнок, расположенных на поверхности сферы. https://en.wikipedia.org/wiki/Geodesic_dome https://en.wikipedia.org/wiki/Involute_gear https://en.wikipedia.org/wiki/Buckminster_Fuller Автор Джейми Завински; 2014."
 
 #: ../hacks/config/gflux.xml.h:1
 msgid "GFlux"
-msgstr ""
+msgstr "G-поток"
 
 #: ../hacks/config/gflux.xml.h:9
 msgid "Mesh density"
@@ -4772,11 +4761,11 @@ msgstr "Волны"
 #: ../hacks/config/hilbert.xml.h:14 ../hacks/config/lavalite.xml.h:10
 #: ../hacks/config/strange.xml.h:19
 msgid "10"
-msgstr ""
+msgstr "10"
 
 #: ../hacks/config/gflux.xml.h:14
 msgid "Wire mesh"
-msgstr "ЯÑ\87ейки"
+msgstr "Ð\9fÑ\80оволоÑ\87наÑ\8f Ñ\81еÑ\82ка"
 
 #: ../hacks/config/gflux.xml.h:15
 msgid "Flat lighting"
@@ -4792,11 +4781,11 @@ msgstr "Изображение"
 
 #: ../hacks/config/gflux.xml.h:20
 msgid "Undulating waves on a rotating grid. Written by Josiah Pease; 2000."
-msgstr ""
+msgstr "Волны на вращающейся сетке. Автор Джозайи Пиз; 2000."
 
 #: ../hacks/config/glblur.xml.h:1
 msgid "GLBlur"
-msgstr ""
+msgstr "GL-размытие"
 
 #: ../hacks/config/glblur.xml.h:6
 msgid "Blur smoothness"
@@ -4810,11 +4799,11 @@ msgid ""
 "onto the frame buffer. As such, it's quite GPU-intensive: if you don't have "
 "a very good graphics card, it will hurt your machine bad. Written by Jamie "
 "Zawinski; 2002."
-msgstr ""
+msgstr "Эффекты от следов движущегося объекта. Это делается путём визуализации сцены в небольшую текстуру, а затем повторной визуализации, дополненной прозрачной  текстурой в буфере кадра. Таким образом, это довольно GPU интенсивно: если у вас не очень хорошая видеокарта, то это плохо. Автор: Джейми Завински; 2002."
 
 #: ../hacks/config/glcells.xml.h:1
 msgid "GLCells"
-msgstr ""
+msgstr "GL-клетки"
 
 #: ../hacks/config/glcells.xml.h:9
 msgid "Max cells"
@@ -4850,7 +4839,7 @@ msgstr "Голодный"
 
 #: ../hacks/config/glcells.xml.h:20
 msgid "Min food"
-msgstr "Ð\9cинимÑ\83м Ð¿Ð¾ÐµÐ´Ð°ÐµÐ¼Ñ\8bÑ\85 ÐºÐ»ÐµÑ\82ок"
+msgstr "Ð\9cинимÑ\83м Ð¿Ð¸Ñ\89и"
 
 #: ../hacks/config/glcells.xml.h:21
 msgid "Gorge"
@@ -4858,7 +4847,7 @@ msgstr "Сыт по горло"
 
 #: ../hacks/config/glcells.xml.h:22
 msgid "Max food"
-msgstr "Ð\9cакÑ\81имÑ\83м Ð¿Ð¾ÐµÐ´Ð°ÐµÐ¼Ñ\8bÑ\85 ÐºÐ»ÐµÑ\82ок"
+msgstr "Ð\9cакÑ\81имÑ\83м Ð¿Ð¸Ñ\89и"
 
 #: ../hacks/config/glcells.xml.h:23
 msgid "Quick"
@@ -4874,21 +4863,21 @@ msgstr "Минимальное расстояние"
 
 #: ../hacks/config/glcells.xml.h:30
 msgid "15"
-msgstr ""
+msgstr "15"
 
 #: ../hacks/config/glcells.xml.h:31
 msgid "Keep dead cells"
-msgstr "Сохранять мертвые клетки"
+msgstr "Сохранять мёртвые клетки"
 
 #: ../hacks/config/glcells.xml.h:34
 msgid ""
 "Cells growing, dividing and dying on your screen. Microscopic pathos. "
 "Written by Matthias Toussaint; 2007."
-msgstr ""
+msgstr "Клетки растут, делятся и умирают на экране. Микроскопический пафос. Автор Матиас Туссен; 2007 год."
 
 #: ../hacks/config/gleidescope.xml.h:1
 msgid "Gleidescope"
-msgstr ""
+msgstr "GL-лейдоскоп"
 
 #: ../hacks/config/gleidescope.xml.h:6
 msgid "Size of tube"
@@ -4896,7 +4885,7 @@ msgstr "Размер трубы"
 
 #: ../hacks/config/gleidescope.xml.h:9
 msgid "Image duration"
-msgstr "Ð\9fÑ\80одолжиÑ\82елÑ\8cноÑ\81Ñ\82Ñ\8c Ð¿ÐµÑ\80еÑ\85ода"
+msgstr "Ð\9fÑ\80одолжиÑ\82елÑ\8cноÑ\81Ñ\82Ñ\8c Ð¸Ð·Ð¾Ð±Ñ\80ажениÑ\8f"
 
 #: ../hacks/config/gleidescope.xml.h:10 ../hacks/config/glslideshow.xml.h:7
 msgid "5 minutes"
@@ -4914,53 +4903,53 @@ msgstr "Масштабировать"
 
 #: ../hacks/config/gleidescope.xml.h:15
 msgid ""
-"A kaleidoscope that operates on a loaded image. https://en.wikipedia.org/"
-"wiki/Kaleidoscope Written by Andrew Dean; 2003."
-msgstr ""
+"A kaleidoscope that operates on a loaded image. "
+"https://en.wikipedia.org/wiki/Kaleidoscope Written by Andrew Dean; 2003."
+msgstr "Калейдоскоп, который работает на загруженном изображении. https://en.wikipedia.org/wiki/Kaleidoscope Автор Эндрю Дин; 2003 год."
 
 #: ../hacks/config/glforestfire.xml.h:1
 msgid "GLForestFire"
-msgstr ""
+msgstr "GL-лесные пожары"
 
 #: ../hacks/config/glforestfire.xml.h:5
 msgid "Rain"
-msgstr ""
+msgstr "Дождь"
 
 #: ../hacks/config/glforestfire.xml.h:7
 msgid "Huge fire"
-msgstr ""
+msgstr "Огромное пожарище"
 
 #: ../hacks/config/glforestfire.xml.h:8
 msgid "Desert"
-msgstr ""
+msgstr "Пустыня"
 
 #: ../hacks/config/glforestfire.xml.h:9
 msgid "Number of trees"
-msgstr ""
+msgstr "Количество деревьев"
 
 #: ../hacks/config/glforestfire.xml.h:12
 msgid "Textures"
-msgstr ""
+msgstr "Текстуры"
 
 #: ../hacks/config/glforestfire.xml.h:13
 msgid "Shadows"
-msgstr ""
+msgstr "Тени"
 
 #: ../hacks/config/glforestfire.xml.h:14 ../hacks/config/glmatrix.xml.h:15
 #: ../hacks/config/glschool.xml.h:14
 msgid "Fog"
-msgstr ""
+msgstr "Туман"
 
 #: ../hacks/config/glforestfire.xml.h:17
 msgid ""
 "This screen saver was removed from the XScreenSaver distribution as of "
 "version 5.08. Draws an animation of sprinkling fire-like 3D triangles in a "
 "landscape filled with trees. Written by Eric Lassauge; 2002."
-msgstr ""
+msgstr "Эта заставка была удалена из дистрибутива XScreenSaver версии 5.08. Рисует анимацию: 3D треугольники, пейзаж, наполненный деревьями. Автор: Эрик Лассуж; 2002."
 
 #: ../hacks/config/glhanoi.xml.h:1
 msgid "GLHanoi"
-msgstr ""
+msgstr "GL-ханой"
 
 #: ../hacks/config/glhanoi.xml.h:6
 msgid "Number of disks"
@@ -4968,7 +4957,7 @@ msgstr "Количество дисков"
 
 #: ../hacks/config/glhanoi.xml.h:7
 msgid "31"
-msgstr ""
+msgstr "31"
 
 #: ../hacks/config/glhanoi.xml.h:8
 msgid "Number of poles"
@@ -4993,17 +4982,33 @@ msgstr "Включить освещение"
 #: ../hacks/config/glhanoi.xml.h:18
 msgid ""
 "Solves the Towers of Hanoi puzzle. Move N disks from one pole to another, "
-"one disk at a time, with no disk ever resting on a disk smaller than itself. "
-"https://en.wikipedia.org/wiki/Tower_of_Hanoi Written by Dave Atkinson; 2005."
-msgstr ""
+"one disk at a time, with no disk ever resting on a disk smaller than itself."
+" https://en.wikipedia.org/wiki/Tower_of_Hanoi Written by Dave Atkinson; "
+"2005."
+msgstr "Решает головоломку Ханойских башен. Перемещение N дисков от одного полюса к другому, один диск за один раз. https://en.wikipedia.org/wiki/Tower_of_Hanoi Автор: Дэйв Аткинсон; 2005."
+
+#: ../hacks/config/glitchpeg.xml.h:1
+msgid "GlitchPEG"
+msgstr "GlitchPEG"
+
+#: ../hacks/config/glitchpeg.xml.h:8
+msgid "Glitchiness"
+msgstr "Глюкавость"
+
+#: ../hacks/config/glitchpeg.xml.h:9
+msgid ""
+"Loads an image, corrupts it, and then displays the corrupted version, "
+"several times a second. After a while, finds a new image to corrupt. Written"
+" by Jamie Zawinski; 2018."
+msgstr "Загружает изображение, повреждает его, а затем отображает повреждённую версию несколько раз в секунду. Через некоторое время находит новое изображение для повреждения. Автор Джейми Завински; 2018."
 
 #: ../hacks/config/glknots.xml.h:1
 msgid "GLKnots"
-msgstr ""
+msgstr "GL-узлы"
 
 #: ../hacks/config/glknots.xml.h:16
 msgid "Segmented"
-msgstr "Ð\9fикÑ\81елÑ\8cный"
+msgstr "СегменÑ\82иÑ\80ованный"
 
 #: ../hacks/config/glknots.xml.h:17 ../hacks/config/jigsaw.xml.h:12
 #: ../hacks/config/lavalite.xml.h:11 ../hacks/config/mirrorblob.xml.h:14
@@ -5014,25 +5019,25 @@ msgstr "Разрешение"
 
 #: ../hacks/config/glknots.xml.h:25
 msgid ""
-"Generates some twisting 3d knot patterns. Spins 'em around. https://en."
-"wikipedia.org/wiki/Knot_theory Written by Jamie Zawinski; 2003."
-msgstr ""
+"Generates some twisting 3d knot patterns. Spins 'em around. "
+"https://en.wikipedia.org/wiki/Knot_theory Written by Jamie Zawinski; 2003."
+msgstr "Создаёт несколько 3d узоров скрученных узлов. Разностороннее вращение. https://en.wikipedia.org/wiki/Knot_theory Автор Джейми Завински; 2003."
 
 #: ../hacks/config/glmatrix.xml.h:1
 msgid "GLMatrix"
-msgstr ""
+msgstr "GL-матрица"
 
 #: ../hacks/config/glmatrix.xml.h:6
 msgid "Glyph density"
-msgstr "Ð\9fлоÑ\82ноÑ\81Ñ\82Ñ\8c Ð¸ÐµÑ\80оглиÑ\84ов"
+msgstr "Плотность глифов"
 
 #: ../hacks/config/glmatrix.xml.h:9
 msgid "Glyph speed"
-msgstr "СкоÑ\80оÑ\81Ñ\82Ñ\8c Ð¸ÐµÑ\80оглиÑ\84ов"
+msgstr "Скорость глифов"
 
 #: ../hacks/config/glmatrix.xml.h:11 ../hacks/config/xmatrix.xml.h:4
 msgid "Matrix encoding"
-msgstr "Ð\9aодиÑ\80овка Ð\9cатрицы"
+msgstr "Ð\9aодиÑ\80овка Ð¼атрицы"
 
 #: ../hacks/config/glmatrix.xml.h:12 ../hacks/config/xmatrix.xml.h:5
 msgid "Binary encoding"
@@ -5052,15 +5057,16 @@ msgstr "Панорамирование"
 
 #: ../hacks/config/glmatrix.xml.h:21
 msgid ""
-"The 3D \"digital rain\" effect, as seen in the title sequence of \"The Matrix"
-"\". See also \"xmatrix\" for a 2D rendering of the similar effect that "
-"appeared on the computer monitors actually *in* the movie. https://en."
-"wikipedia.org/wiki/Matrix_digital_rain Written by Jamie Zawinski; 2003."
-msgstr ""
+"The 3D \"digital rain\" effect, as seen in the title sequence of \"The "
+"Matrix\". See also \"xmatrix\" for a 2D rendering of the similar effect that"
+" appeared on the computer monitors actually *in* the movie. "
+"https://en.wikipedia.org/wiki/Matrix_digital_rain Written by Jamie Zawinski;"
+" 2003."
+msgstr "Эффект 3D \"цифровой дождь\", как это видно из заголовка последовательности \"Матрица\". Смотрите также \"x-матрица\" для 2D-визуализации аналогичного эффекта, который появился на компьютерных мониторах. https://en.wikipedia.org/wiki/Matrix_digital_rain Автор: Джейми Завински; 2003."
 
 #: ../hacks/config/glplanet.xml.h:1
 msgid "GLPlanet"
-msgstr ""
+msgstr "GL-планета"
 
 #. #### -no-texture
 #: ../hacks/config/glplanet.xml.h:6
@@ -5073,14 +5079,16 @@ msgstr "Ночное изображение"
 
 #: ../hacks/config/glplanet.xml.h:14
 msgid ""
-"The Earth, bouncing around in space. If you would like it to display a "
-"different planet, the texture maps that come with \"ssystem\" work well. "
-"Written by David Konerding and Jamie Zawinski; 1998."
-msgstr ""
+"The Earth, bouncing around in space, rendered with satellite imagery of the "
+"planet in both sunlight and darkness. If you would like it to display a "
+"different planet, any pair of Equirectangular-projected maps will work. The "
+"maps that come with \"ssystem\" work well. Written by David Konerding and "
+"Jamie Zawinski; 1998."
+msgstr "Земля, подпрыгивая в космосе, представлена спутниковыми изображениями планеты как в солнечном свете, так и в темноте. Если вы хотите, чтобы отображалась другая планета, подойдёт любая пара карт, спроецированных на равный угол. Карты, которые идут с \"системой\", работают хорошо. Авторы Дэвид Конердинг и Джейми Завински; 1998."
 
 #: ../hacks/config/glschool.xml.h:1
 msgid "GLSchool"
-msgstr ""
+msgstr "GL-стая"
 
 #: ../hacks/config/glschool.xml.h:6
 msgid "Fish count"
@@ -5111,16 +5119,16 @@ msgid ""
 "A school of fish, using the classic \"Boids\" algorithm by Craig Reynolds. "
 "https://en.wikipedia.org/wiki/Boids Written by David C. Lambert and Jamie "
 "Zawinski; 2006."
-msgstr ""
+msgstr "Стая рыбы; используется классический алгоритм \"Boids\" от Крейг Рейнольдса. https://en.wikipedia.org/wiki/Boids Автор Дэвид С. Ламберт и Джейми Завински; 2006."
 
 #: ../hacks/config/glslideshow.xml.h:1
 msgid "GLSlideshow"
-msgstr ""
+msgstr "GL-слайд-шоу"
 
 #: ../hacks/config/glslideshow.xml.h:9
 #, no-c-format
 msgid "50%"
-msgstr ""
+msgstr "50%"
 
 #: ../hacks/config/glslideshow.xml.h:10
 msgid "Always show at least this much of the image"
@@ -5130,7 +5138,7 @@ msgstr "Всегда показывать минимум такую часть 
 #: ../hacks/config/rdbomb.xml.h:10 ../hacks/config/substrate.xml.h:15
 #, no-c-format
 msgid "100%"
-msgstr ""
+msgstr "100%"
 
 #: ../hacks/config/glslideshow.xml.h:14
 msgid "Pan/zoom duration"
@@ -5138,18 +5146,18 @@ msgstr "Продолжительность панорамирования/мас
 
 #: ../hacks/config/glslideshow.xml.h:17
 msgid "Crossfade duration"
-msgstr "Ð\9fÑ\80одолжиÑ\82елÑ\8cноÑ\81Ñ\82Ñ\8c Ð¿Ñ\80оÑ\8fвлениÑ\8f"
+msgstr "Ð\9fÑ\80одолжиÑ\82елÑ\8cноÑ\81Ñ\82Ñ\8c ÐºÑ\80оÑ\81Ñ\81Ñ\84ейда"
 
 #: ../hacks/config/glslideshow.xml.h:21
 msgid ""
 "Loads a random sequence of images and smoothly scans and zooms around in "
 "each, fading from pan to pan. Written by Jamie Zawinski and Mike Oliphant; "
 "2003."
-msgstr ""
+msgstr "Загружает случайную последовательность изображений и плавно сканирует и масштабирует каждое, затухая от панорамы к панораме. Авторы: Джейми Завински и Майк Олифантом; 2003."
 
 #: ../hacks/config/glsnake.xml.h:1
 msgid "GLSnake"
-msgstr ""
+msgstr "GL-змейка"
 
 #: ../hacks/config/glsnake.xml.h:9
 msgid "Packing"
@@ -5181,11 +5189,11 @@ msgid ""
 "The \"Rubik's Snake\" puzzle. See also the \"Rubik\" and \"Cube21\" screen "
 "savers. https://en.wikipedia.org/wiki/Rubik%27s_Snake Written by Jamie "
 "Wilkinson, Andrew Bennetts, and Peter Aylett; 2002."
-msgstr ""
+msgstr "Головоломка \"Змейка Рубика\". Смотрите также хранители экрана \"Рубик\" и \"Кубик21\". https://en.wikipedia.org/wiki/Rubik%27s_Snake Авторы:  Джейми Уилкинсон, Эндрю Беннетс, и Питер Айлетт; 2002."
 
 #: ../hacks/config/gltext.xml.h:1
 msgid "GLText"
-msgstr ""
+msgstr "GL-текст"
 
 #: ../hacks/config/gltext.xml.h:5
 msgid "Display system information"
@@ -5195,11 +5203,13 @@ msgstr "Показать информацию о версии системы"
 msgid "Display date and time"
 msgstr "Показать дату и время"
 
-#: ../hacks/config/gltext.xml.h:7 ../hacks/config/splitflap.xml.h:13
+#: ../hacks/config/gltext.xml.h:7 ../hacks/config/handsy.xml.h:20
+#: ../hacks/config/splitflap.xml.h:13
 msgid "Always face front"
 msgstr "Всегда показывать спереди"
 
-#: ../hacks/config/gltext.xml.h:8 ../hacks/config/splitflap.xml.h:14
+#: ../hacks/config/gltext.xml.h:8 ../hacks/config/handsy.xml.h:21
+#: ../hacks/config/splitflap.xml.h:14
 msgid "Spin all the way around"
 msgstr "Вращать во все стороны"
 
@@ -5208,11 +5218,11 @@ msgid ""
 "Displays a few lines of text spinning around in a solid 3D font. The text "
 "can use strftime() escape codes to display the current date and time. "
 "Written by Jamie Zawinski; 2001."
-msgstr ""
+msgstr "Отображает несколько строк текста 3D шрифтом; может также отображать текущую дату и время. Автор: Джейми Завински; 2001 год."
 
 #: ../hacks/config/goop.xml.h:1
 msgid "Goop"
-msgstr ""
+msgstr "Гадость"
 
 #: ../hacks/config/goop.xml.h:9
 msgid "Blobs"
@@ -5240,11 +5250,11 @@ msgstr "Сгустки XOR"
 
 #: ../hacks/config/goop.xml.h:17
 msgid "Additive colors (transmitted light)"
-msgstr "Ð\94обавление Ñ\86веÑ\82ов (пропущенный свет)"
+msgstr "Ð\90ддиÑ\82ивнÑ\8bе Ñ\86веÑ\82а (пропущенный свет)"
 
 #: ../hacks/config/goop.xml.h:18
 msgid "Subtractive colors (reflected light)"
-msgstr "Ð\92Ñ\8bÑ\87иÑ\82ание Ñ\86веÑ\82ов (оÑ\82Ñ\80аженный свет)"
+msgstr "СÑ\83бÑ\82Ñ\80акÑ\82ивнÑ\8bе Ñ\86веÑ\82а (оÑ\82Ñ\80ажÑ\91нный свет)"
 
 #: ../hacks/config/goop.xml.h:19
 msgid ""
@@ -5254,11 +5264,11 @@ msgid ""
 "from a mouse pad I had once, which achieved the same kind of effect in real "
 "life by having several layers of plastic with colored oil between them. "
 "Written by Jamie Zawinski; 1997."
-msgstr ""
+msgstr "Амебовидные сгустки изменяют форму и бродят по экрану. Они полупрозрачны, а поэтому вы можете видеть нижние сгустки через верхние, и, когда это происходит, их цвета сливаются. У меня есть идея для создания коврика для мыши, чтобы достигнуть такой же эффект в реальной жизни, нужно иметь всего лишь несколько листов пластика с цветным маслом между ними. Автор Джейми Завински; 1997 год."
 
 #: ../hacks/config/grav.xml.h:1
 msgid "Grav"
-msgstr ""
+msgstr "Гравитон"
 
 #: ../hacks/config/grav.xml.h:6
 msgid "Number of objects"
@@ -5266,39 +5276,39 @@ msgstr "Количество объектов"
 
 #: ../hacks/config/grav.xml.h:10
 msgid "Orbital decay"
-msgstr "Орбитальное притяжение"
+msgstr "Орбитальное угасание"
 
 #: ../hacks/config/grav.xml.h:11
 msgid "Object trails"
-msgstr "Ð\9aолиÑ\87еÑ\81Ñ\82во объектов"
+msgstr "СледÑ\8b объектов"
 
 #: ../hacks/config/grav.xml.h:13
 msgid ""
 "An orbital simulation. With trails enabled, it looks kind of like a cloud-"
 "chamber photograph. Written by Greg Bowering; 1997."
-msgstr ""
+msgstr "Орбитальное моделирование. С включенной функцией трассы, это выглядит вроде как  фотография. Автор: Грег Боуэринг; 1997."
 
 #: ../hacks/config/greynetic.xml.h:1
 msgid "Greynetic"
-msgstr ""
+msgstr "Грейнетик"
 
 #: ../hacks/config/greynetic.xml.h:5
 msgid "Grey"
-msgstr "Серость"
+msgstr "Серый"
 
 #: ../hacks/config/greynetic.xml.h:7
 msgid ""
 "Colored, stippled and transparent rectangles. Written by Jamie Zawinski; "
 "1992."
-msgstr ""
+msgstr "Цветные, прозрачные и  заштриховнные  прямоугольники. Автор Джейми Завински; 1992 год."
 
 #: ../hacks/config/halftone.xml.h:1
 msgid "Halftone"
-msgstr ""
+msgstr "Полутон"
 
 #: ../hacks/config/halftone.xml.h:6
 msgid "Gravity points"
-msgstr "Ð\9eчки притяжения"
+msgstr "Точки притяжения"
 
 #: ../hacks/config/halftone.xml.h:9
 msgid "Dot size"
@@ -5310,7 +5320,7 @@ msgstr "Большой"
 
 #: ../hacks/config/halftone.xml.h:11
 msgid "Dot fill factor"
-msgstr "ФакÑ\82оÑ\80 Ð·Ð°Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ\8f Ñ\82оÑ\87ек"
+msgstr "СÑ\82епенÑ\8c Ð·Ð°Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ\8f Ñ\82оÑ\87ками"
 
 #: ../hacks/config/halftone.xml.h:13
 msgid "Minimum speed"
@@ -5335,11 +5345,11 @@ msgid ""
 "calculated from a set of moving mass points. View it from a distance for "
 "best effect. https://en.wikipedia.org/wiki/Halftone Written by Peter Jaric; "
 "2002."
-msgstr ""
+msgstr "Узор полутоновой точки в движении. Рисует силы тяжести в каждой точке на экране сквозь полутоновый узор. Сила тяжести рассчитывается из множества движущихся материальных точек. Рассмотрите это с расстояния для достижения наилучшего эффекта. https://en.wikipedia.org/wiki/Halftone Автор: Питер Джарик; 2002."
 
 #: ../hacks/config/halo.xml.h:1
 msgid "Halo"
-msgstr ""
+msgstr "Гало"
 
 #: ../hacks/config/halo.xml.h:6
 msgid "Number of circles"
@@ -5351,11 +5361,11 @@ msgstr "Случайный режим"
 
 #: ../hacks/config/halo.xml.h:11
 msgid "Seuss mode"
-msgstr "Режим Seuss"
+msgstr "Режим Сьюз"
 
 #: ../hacks/config/halo.xml.h:12
 msgid "Ramp mode"
-msgstr "Режим Ramp"
+msgstr "Режим уклона"
 
 #: ../hacks/config/halo.xml.h:13
 msgid "Animate circles"
@@ -5365,19 +5375,33 @@ msgstr "Анимировать круги"
 msgid ""
 "Circular interference patterns. https://en.wikipedia.org/wiki/Moire_pattern "
 "Written by Jamie Zawinski; 1993."
-msgstr ""
+msgstr "Круговая интерференция узоров. https://en.wikipedia.org/wiki/Moire_pattern Автор: Джейми Завински; 1993 год."
+
+#: ../hacks/config/handsy.xml.h:1
+msgid "Handsy"
+msgstr "Распускать руки"
+
+#: ../hacks/config/handsy.xml.h:9
+msgid "Number of hands"
+msgstr "Количество рук"
+
+#: ../hacks/config/handsy.xml.h:24
+msgid ""
+"A set of robotic hands communicate non-verbally. Written by Jamie Zawinski; "
+"2018."
+msgstr "Набор роботизированных рук общается невербально. Автор Джейми Завински; 2018."
 
 #: ../hacks/config/helix.xml.h:1
 msgid "Helix"
-msgstr ""
+msgstr "Спираль"
 
 #: ../hacks/config/helix.xml.h:9
 msgid "Spirally string-art-ish patterns. Written by Jamie Zawinski; 1992."
-msgstr ""
+msgstr "Художественные спирально-строковые узоры. Автор Джейми Завински; 1992 год."
 
 #: ../hacks/config/hexadrop.xml.h:1
 msgid "Hexadrop"
-msgstr ""
+msgstr "Гексападение"
 
 #: ../hacks/config/hexadrop.xml.h:9 ../hacks/config/penrose.xml.h:9
 #: ../hacks/config/twang.xml.h:15
@@ -5386,7 +5410,7 @@ msgstr "Размер плитки"
 
 #: ../hacks/config/hexadrop.xml.h:11 ../hacks/config/klein.xml.h:2
 msgid "Random shape"
-msgstr "Случайные фигуры"
+msgstr "Случайная фигура"
 
 #: ../hacks/config/hexadrop.xml.h:12
 msgid "Triangles"
@@ -5398,7 +5422,7 @@ msgstr "Квадраты"
 
 #: ../hacks/config/hexadrop.xml.h:14
 msgid "Hexagons"
-msgstr "Шестиугольники"
+msgstr "Шестигранники"
 
 #: ../hacks/config/hexadrop.xml.h:15
 msgid "Octagons"
@@ -5430,18 +5454,18 @@ msgstr "Не синхронизировано"
 
 #: ../hacks/config/hexadrop.xml.h:23
 msgid ""
-"A grid of hexagons or other shapes, with tiles dropping out. https://en."
-"wikipedia.org/wiki/Tiling_by_regular_polygons Written by Jamie Zawinski; "
-"2013."
-msgstr ""
+"A grid of hexagons or other shapes, with tiles dropping out. "
+"https://en.wikipedia.org/wiki/Tiling_by_regular_polygons Written by Jamie "
+"Zawinski; 2013."
+msgstr "Сетка из шестигранников или других форм с выпадающими плитками. https://en.wikipedia.org/wiki/Tiling_by_regular_polygons Автор: Джейми Завински; 2013."
 
 #: ../hacks/config/hexstrut.xml.h:1
 msgid "Hexstrut"
-msgstr ""
+msgstr "Шестигранная стойка"
 
 #: ../hacks/config/hexstrut.xml.h:9
 msgid "Hexagon Size"
-msgstr "Размер шестиугольников"
+msgstr "Размер шестигранников"
 
 #: ../hacks/config/hexstrut.xml.h:12
 msgid "Line Thickness"
@@ -5452,11 +5476,11 @@ msgid ""
 "A grid of hexagons composed of rotating Y-shaped struts. Waves of rotation "
 "and color changes randomly propagate across the plane. Written by Jamie "
 "Zawinski; 2016."
-msgstr ""
+msgstr "Сетка из шестигранников, состоящая из вращающихся Y-образных стоек. Волны вращения и изменения цвета случайным образом распространяются по плоскости. Автор Джейми Завински; 2016."
 
 #: ../hacks/config/hilbert.xml.h:1
 msgid "Hilbert"
-msgstr ""
+msgstr "Гильберт"
 
 #: ../hacks/config/hilbert.xml.h:2
 msgid "2D or 3D"
@@ -5464,11 +5488,11 @@ msgstr "2D или 3D"
 
 #: ../hacks/config/hilbert.xml.h:3
 msgid "2D"
-msgstr ""
+msgstr "2D"
 
 #: ../hacks/config/hilbert.xml.h:4
 msgid "3D"
-msgstr ""
+msgstr "3D"
 
 #: ../hacks/config/hilbert.xml.h:5
 msgid "Open or closed paths"
@@ -5482,9 +5506,7 @@ msgstr "Закрытые"
 msgid "Open"
 msgstr "Открытые"
 
-#.
 #. On a 2.93 gHz iMac i7, I get these rates with -delay 0:
-#.
 #. detail 3:  invisible
 #. detail 4:  barely visible
 #. detail 5:  1000+ fps, looks like noise at -delay 0, ok at -delay 20000
@@ -5496,14 +5518,12 @@ msgstr "Открытые"
 #. detail 13:  ~17 fps
 #. detail 14:   ~8 fps
 #. detail 15:   ~2 fps
-#.
 #. With the default -delay, CPU load only starts causing the frame rate
 #. to drop below 30 fps detail 12 or higher.
-#.
 #: ../hacks/config/hilbert.xml.h:12 ../hacks/config/hypnowheel.xml.h:12
 #: ../hacks/config/ifs.xml.h:23
 msgid "2"
-msgstr ""
+msgstr "2"
 
 #: ../hacks/config/hilbert.xml.h:13
 msgid "Recursion levels"
@@ -5519,67 +5539,67 @@ msgid ""
 "close together along the curve are also close together in space. The "
 "converse is often, but not always, true. The coloration reflects this. "
 "https://en.wikipedia.org/wiki/Hilbert_curve Written by Jamie Zawinski; 2011."
-msgstr ""
+msgstr "Рекурсивная кривая Гильберта, заполняющая пространство, оба варианта 2D и 3D. Она постепенно увеличивает рост и рекурсию на максимальную глубину, а затем уменьшает его. Путь Гильберта представляет собой одну непрерывную линию, которая может заполнить объём, не пересекаясь. В структуре данных пути Гильберта полезны, так как сохраняют точки , которые находятся близко друг к другу вдоль кривой, а также в пространстве. Обратное случается часто, но не всегда, правда.  https://en.wikipedia.org/wiki/Hilbert_curve Автор: Джейми Завински; 2011."
 
 #: ../hacks/config/hopalong.xml.h:1
 msgid "Hopalong"
-msgstr ""
+msgstr "Хопалонг"
 
 #: ../hacks/config/hopalong.xml.h:8 ../hacks/config/interference.xml.h:17
 #: ../hacks/config/qix.xml.h:11 ../hacks/config/wander.xml.h:10
 msgid "Color contrast"
-msgstr "Ð\9aонÑ\82Ñ\80аÑ\81Ñ\82 Ñ\86веÑ\82ов"
+msgstr "ЦвеÑ\82овой ÐºÐ¾Ð½Ñ\82Ñ\80аÑ\81Ñ\82"
 
 #: ../hacks/config/hopalong.xml.h:12
 msgid "Sine"
-msgstr ""
+msgstr "Синус"
 
 #: ../hacks/config/hopalong.xml.h:13
 msgid "Martin"
-msgstr ""
+msgstr "Мартин"
 
 #: ../hacks/config/hopalong.xml.h:15
 msgid "Jong"
-msgstr ""
+msgstr "Йонг"
 
 #: ../hacks/config/hopalong.xml.h:16
 msgid "RR"
-msgstr ""
+msgstr "RR"
 
 #: ../hacks/config/hopalong.xml.h:17
 msgid "EJK1"
-msgstr ""
+msgstr "EJK1"
 
 #: ../hacks/config/hopalong.xml.h:18
 msgid "EJK2"
-msgstr ""
+msgstr "EJK2"
 
 #: ../hacks/config/hopalong.xml.h:19
 msgid "EJK3"
-msgstr ""
+msgstr "EJK3"
 
 #: ../hacks/config/hopalong.xml.h:20
 msgid "EJK4"
-msgstr ""
+msgstr "EJK4"
 
 #: ../hacks/config/hopalong.xml.h:21
 msgid "EJK5"
-msgstr ""
+msgstr "EJK5"
 
 #: ../hacks/config/hopalong.xml.h:22
 msgid "EJK6"
-msgstr ""
+msgstr "EJK6"
 
 #: ../hacks/config/hopalong.xml.h:24
 msgid ""
-"Lacy fractal patterns based on iteration in the imaginary plane, from a 1986 "
-"Scientific American article. See also the \"Discrete\" screen saver. Written "
-"by Patrick Naughton; 1992."
-msgstr ""
+"Lacy fractal patterns based on iteration in the imaginary plane, from a 1986"
+" Scientific American article. See also the \"Discrete\" screen saver. "
+"Written by Patrick Naughton; 1992."
+msgstr "Кружевные узоры фракталов на основе итерации в воображаемой плоскости;  статья в \"Scientific American/Учёный американец\", 1986 г. Смотрите также хранитель экрана \"Дискретный\". Автор: Патрик Нотон; 1992 год."
 
 #: ../hacks/config/hydrostat.xml.h:1
 msgid "Hydrostat"
-msgstr ""
+msgstr "Гидростат"
 
 #: ../hacks/config/hydrostat.xml.h:9
 msgid "Number of squid"
@@ -5620,56 +5640,57 @@ msgstr "Пульсация"
 #: ../hacks/config/hydrostat.xml.h:30
 msgid ""
 "Wiggly squid or jellyfish with many tentacles. A muscular hydrostat is a "
-"biological structure used to move its host about, consisting of muscles with "
-"no skeletal support. It performs its hydraulic movement without fluid in a "
-"separate compartment, as in a hydrostatic skeleton. https://en.wikipedia.org/"
-"wiki/Muscular_hydrostat Written by Justin Windle and Jamie Zawinski; 2016."
-msgstr ""
+"biological structure used to move its host about, consisting of muscles with"
+" no skeletal support. It performs its hydraulic movement without fluid in a "
+"separate compartment, as in a hydrostatic skeleton. "
+"https://en.wikipedia.org/wiki/Muscular_hydrostat Written by Justin Windle "
+"and Jamie Zawinski; 2016."
+msgstr "Вьющиеся кальмары или медузы со многими щупальцами. Мышечный гидростат - это биологическая структура, используемая для перемещения своего организма, состоящая из мышц без скелетной поддержки. Он выполняет свое гидравлическое движение без жидкости в отдельном отсеке, как в гидростатическом каркасе. https://en.wikipedia.org/wiki/Muscular_hydrostat Автор Джастин Уиндл и Джейми Завински; 2016."
 
 #: ../hacks/config/hyperball.xml.h:1
 msgid "HyperBall"
-msgstr ""
+msgstr "Гипершар"
 
 #: ../hacks/config/hyperball.xml.h:10 ../hacks/config/hypercube.xml.h:10
 msgid "XW rotation"
-msgstr ""
+msgstr "XW вращение"
 
 #: ../hacks/config/hyperball.xml.h:12 ../hacks/config/hypercube.xml.h:12
 msgid "XY rotation"
-msgstr ""
+msgstr "XY вращение"
 
 #: ../hacks/config/hyperball.xml.h:13 ../hacks/config/hypercube.xml.h:13
 msgid "XZ rotation"
-msgstr ""
+msgstr "XZ вращение"
 
 #: ../hacks/config/hyperball.xml.h:14 ../hacks/config/hypercube.xml.h:14
 msgid "YW rotation"
-msgstr ""
+msgstr "YW вращения"
 
 #: ../hacks/config/hyperball.xml.h:15 ../hacks/config/hypercube.xml.h:15
 msgid "YZ rotation"
-msgstr ""
+msgstr "YZ вращение"
 
 #: ../hacks/config/hyperball.xml.h:16 ../hacks/config/hypercube.xml.h:16
 msgid "ZW rotation"
-msgstr ""
+msgstr "ZW вращение"
 
 #: ../hacks/config/hyperball.xml.h:17
 msgid ""
 "This screen saver was removed from the XScreenSaver distribution as of "
 "version 5.10. It has been replaced by the more general \"Polytopes\" screen "
-"saver, which can display this object as well as others. The Polytopes \"120-"
-"cell\" object corresponds to this one. Hyperball is to hypercube as "
-"dodecahedron is to cube: this displays a 2D projection of the sequence of 3D "
-"objects which are the projections of the 4D analog to the dodecahedron. "
-"Technically, it is a \"120 cell polytope\". https://en.wikipedia.org/wiki/"
-"Hypercube https://en.wikipedia.org/wiki/Regular_polytope Written by Joe "
-"Keane; 2000."
-msgstr ""
+"saver, which can display this object as well as others. The Polytopes "
+"\"120-cell\" object corresponds to this one. Hyperball is to hypercube as "
+"dodecahedron is to cube: this displays a 2D projection of the sequence of 3D"
+" objects which are the projections of the 4D analog to the dodecahedron. "
+"Technically, it is a \"120 cell polytope\". "
+"https://en.wikipedia.org/wiki/Hypercube "
+"https://en.wikipedia.org/wiki/Regular_polytope Written by Joe Keane; 2000."
+msgstr "Эта заставка была удалена из дистрибутива XScreenSaver версии 5.10. Она была заменена более общим \"многогранником\" экранной заставки, который может отображать этот объект, а также другие. Гипершар является гиперкубом, как двенадцатигранник в кубе: отображает 2D проекцию последовательности 3D-объектов, которые являются проекциями аналога 4D двенадцатигранника. С технической точки зрения это \"120-ти клеточный многогранник\". https://en.wikipedia.org/wiki/Hypercube https://en.wikipedia.org/wiki/Regular_polytope Автор: Джо Кин; 2000."
 
 #: ../hacks/config/hypercube.xml.h:1
 msgid "HyperCube"
-msgstr ""
+msgstr "Гиперкуб"
 
 #: ../hacks/config/hypercube.xml.h:17
 msgid ""
@@ -5679,17 +5700,18 @@ msgid ""
 "projections of the sequence of 3D objects which are the projections of the "
 "4D analog to the cube: as a square is composed of four lines, each touching "
 "two others; and a cube is composed of six squares, each touching four "
-"others; a hypercube is composed of eight cubes, each touching six others. To "
-"make it easier to visualize the rotation, it uses a different color for the "
-"edges of each face. Don't think about it too long, or your brain will melt. "
-"https://en.wikipedia.org/wiki/Hypercube https://en.wikipedia.org/wiki/"
-"Tesseract https://en.wikipedia.org/wiki/Regular_polytope Written by Joe "
-"Keane, Fritz Mueller, and Jamie Zawinski; 1992."
-msgstr ""
+"others; a hypercube is composed of eight cubes, each touching six others. To"
+" make it easier to visualize the rotation, it uses a different color for the"
+" edges of each face. Don't think about it too long, or your brain will melt."
+" https://en.wikipedia.org/wiki/Hypercube "
+"https://en.wikipedia.org/wiki/Tesseract "
+"https://en.wikipedia.org/wiki/Regular_polytope Written by Joe Keane, Fritz "
+"Mueller, and Jamie Zawinski; 1992."
+msgstr "Эта заставка была удалена из дистрибутива XScreenSaver версии 5.10. Она была заменена более общим \"многогранником\" экранной заставки, который может отображать этот объект, а также - другие. Он отображает 2D проекции последовательности 3D-объектов, которые являются проекцией аналога 4D куба;  квадрат состоит из четырёх линий, каждая из которых касается двух других; куб состоит из шести квадратов, каждый из которых касается четырех других; гиперкуб состоит из восьми кубов, каждый из которых прикасается к шести другим. Для того, чтобы сделать его легче, визуализировать вращение, используется разный цвет для краёв каждой грани. Не думайте об этом слишком долго, или ваш мозг начнет таять. https://en.wikipedia.org/wiki/Hypercube https://en.wikipedia.org/wiki/Tesseract https://en.wikipedia.org/wiki/Regular_polytope Авторы: Джо Кин, Фриц Мюллер, и Джейми Завински; 1992."
 
 #: ../hacks/config/hypertorus.xml.h:1
 msgid "Hypertorus"
-msgstr ""
+msgstr "Гиперторы"
 
 #: ../hacks/config/hypertorus.xml.h:7 ../hacks/config/mismunch.xml.h:12
 #: ../hacks/config/munch.xml.h:15 ../hacks/config/winduprobot.xml.h:16
@@ -5732,7 +5754,7 @@ msgstr "Двусторонний"
 
 #: ../hacks/config/hypertorus.xml.h:17
 msgid "Color wheel"
-msgstr "ЦвеÑ\82ное ÐºÐ¾Ð»ÐµÑ\81о"
+msgstr "ЦвеÑ\82овой ÐºÑ\80Ñ\83г"
 
 #: ../hacks/config/hypertorus.xml.h:18 ../hacks/config/klein.xml.h:23
 #: ../hacks/config/polytopes.xml.h:14 ../hacks/config/projectiveplane.xml.h:16
@@ -5757,7 +5779,7 @@ msgstr "Ортографическое 4D"
 #: ../hacks/config/hypertorus.xml.h:22 ../hacks/config/klein.xml.h:28
 #: ../hacks/config/polytopes.xml.h:19 ../hacks/config/romanboy.xml.h:29
 msgid "-4.0"
-msgstr ""
+msgstr "-4.0"
 
 #: ../hacks/config/hypertorus.xml.h:23 ../hacks/config/klein.xml.h:29
 #: ../hacks/config/polytopes.xml.h:20
@@ -5767,7 +5789,7 @@ msgstr "Скорость вращения WX"
 #: ../hacks/config/hypertorus.xml.h:24 ../hacks/config/klein.xml.h:30
 #: ../hacks/config/polytopes.xml.h:21 ../hacks/config/romanboy.xml.h:31
 msgid "4.0"
-msgstr ""
+msgstr "4.0"
 
 #: ../hacks/config/hypertorus.xml.h:25 ../hacks/config/klein.xml.h:31
 #: ../hacks/config/polytopes.xml.h:22
@@ -5799,37 +5821,38 @@ msgid ""
 "A Clifford Torus: a torus lying on the \"surface\" of a 4D hypersphere. "
 "Inspired by Thomas Banchoff's book \"Beyond the Third Dimension: Geometry, "
 "Computer Graphics, and Higher Dimensions\", Scientific American Library, "
-"1990. https://en.wikipedia.org/wiki/N-sphere https://en.wikipedia.org/wiki/"
-"Clifford_torus https://en.wikipedia.org/wiki/Regular_polytope Written by "
-"Carsten Steger; 2003."
-msgstr ""
+"1990. https://en.wikipedia.org/wiki/N-sphere "
+"https://en.wikipedia.org/wiki/Clifford_torus "
+"https://en.wikipedia.org/wiki/Regular_polytope Written by Carsten Steger; "
+"2003."
+msgstr "Тор Клиффорда: тор лежит на \"поверхности\" гиперсферы 4D. Вдохновлённый книгой Томаса Банхофа \"За пределами третьего измерения: Геометрия, компьютерная графика, и более высокие измерения\", Научно-американская библиотека, 1990. https://en.wikipedia.org/wiki/N-sphere https://en.wikipedia.org/wiki/Clifford_torus https://en.wikipedia.org/wiki/Regular_polytope. Автор: Карстен Штегер; 2003."
 
 #: ../hacks/config/hypnowheel.xml.h:1
 msgid "Hypnowheel"
-msgstr ""
+msgstr "Гипно-колесо"
 
 #: ../hacks/config/hypnowheel.xml.h:7
 msgid "Symmetric twisting"
-msgstr "СиммеÑ\82Ñ\80иÑ\87ное Ð²Ñ\80аÑ\89ение"
+msgstr "СиммеÑ\82Ñ\80иÑ\87ное ÐºÑ\80Ñ\83Ñ\87ение"
 
 #: ../hacks/config/hypnowheel.xml.h:11 ../hacks/config/intermomentary.xml.h:5
 msgid "50"
-msgstr ""
+msgstr "50"
 
 #: ../hacks/config/hypnowheel.xml.h:15
 msgid "Twistiness"
-msgstr "Ð\9dаклон"
+msgstr "СкÑ\80Ñ\83Ñ\87енноÑ\81Ñ\82Ñ\8c"
 
 #: ../hacks/config/hypnowheel.xml.h:17
 msgid ""
 "A overlapping, translucent spiral patterns. The tightness of their spirals "
 "fluctuates in and out. https://en.wikipedia.org/wiki/Moire_pattern Written "
 "by Jamie Zawinski; 2008."
-msgstr ""
+msgstr "Перекрываемые полупрозрачные спиральные узоры. В течение времени количество их меняется. https://en.wikipedia.org/wiki/Moire_pattern Автор Джейми Завински; 2008."
 
 #: ../hacks/config/ifs.xml.h:1
 msgid "IFS"
-msgstr ""
+msgstr "Система итерируемых функций"
 
 #: ../hacks/config/ifs.xml.h:24
 msgid "Number of functions"
@@ -5837,7 +5860,7 @@ msgstr "Количество функций"
 
 #: ../hacks/config/ifs.xml.h:25
 msgid "6"
-msgstr ""
+msgstr "6"
 
 #: ../hacks/config/ifs.xml.h:26
 msgid "Detail"
@@ -5853,15 +5876,15 @@ msgstr "Масштаб"
 
 #: ../hacks/config/ifs.xml.h:69
 msgid ""
-"Clouds of iterated function systems spin and collide. Note that the \"Detail"
-"\" parameter is exponential. Number of points drawn is functions^detail. "
-"https://en.wikipedia.org/wiki/Iterated_function_system Written by Chris Le "
-"Sueur and Robby Griffin; 1997."
-msgstr ""
+"Clouds of iterated function systems spin and collide. Note that the "
+"\"Detail\" parameter is exponential. Number of points drawn is "
+"functions^detail. https://en.wikipedia.org/wiki/Iterated_function_system "
+"Written by Chris Le Sueur and Robby Griffin; 1997."
+msgstr "Облака вращаются и сталкиваются. Обратите внимание, что параметр \"Деталь\" является экспоненциальным. https://en.wikipedia.org/wiki/Iterated_function_system Автор: Крис Ле Сюэр и Робби Гриффин; 1997."
 
 #: ../hacks/config/imsmap.xml.h:1
 msgid "IMSMap"
-msgstr ""
+msgstr "IMS-карта"
 
 #: ../hacks/config/imsmap.xml.h:5
 msgid "1 Second"
@@ -5890,11 +5913,11 @@ msgid ""
 "them, and give it a value which is the average of the other four, plus some "
 "small random offset. Coloration is done based on elevation. Written by "
 "Juergen Nickelsen and Jamie Zawinski; 1992."
-msgstr ""
+msgstr "Облакоподобные узоры. Идея заключается в том, чтобы взять четыре точки на краю изображения и присвоить каждой случайное \"возвышение\". Затем найти точку между ними и придать ей значение, которое составляет среднее от остальных четырёх, плюс некоторое малое случайное смещение. Окрашивание производится на основании высоты. Авторы: Юрген Никельсен и Джейми Завински; 1992."
 
 #: ../hacks/config/interaggregate.xml.h:1
 msgid "Interaggregate"
-msgstr ""
+msgstr "Интерактивное скопление"
 
 #: ../hacks/config/interaggregate.xml.h:6
 #: ../hacks/config/intermomentary.xml.h:6
@@ -5909,11 +5932,11 @@ msgid ""
 "intersections of the circles as well as the aggregate intersections of the "
 "circles. Though actually it doesn't look like circles at all! Written by "
 "Casey Reas, William Ngan, Robert Hodgin, and Jamie Zawinski; 2004."
-msgstr ""
+msgstr "Бледные карандаш-подобные писальщики медленно заполняют экран. Поверхность заполнена ста кругами средних и малых размеров. Каждый круг имеет свой размер и направление, но движется в медленном темпе. Отображает мгновенные пересечения окружностей, а также совокупные пересечения окружностей. Хотя на самом деле это так не выглядит! Авторы: Кейси Рис, Уильям Нган, Роберт Ходгин и Джейми Завински; 2004."
 
 #: ../hacks/config/interference.xml.h:1
 msgid "Interference"
-msgstr ""
+msgstr "Интерференция"
 
 #: ../hacks/config/interference.xml.h:9
 msgid "Wave size"
@@ -5933,21 +5956,21 @@ msgstr "Оттенок"
 
 #: ../hacks/config/interference.xml.h:20
 msgid "360"
-msgstr ""
+msgstr "360"
 
 #: ../hacks/config/interference.xml.h:22
 msgid ""
 "Color field based on computing decaying sinusoidal waves. Written by Hannu "
 "Mallat; 1998."
-msgstr ""
+msgstr "Цвет поля на основе вычисления угасающей синусоидальной волны. Автор: Ханну Маллат; 1998."
 
 #: ../hacks/config/intermomentary.xml.h:1
 msgid "Intermomentary"
-msgstr ""
+msgstr "Межмоментный"
 
 #: ../hacks/config/intermomentary.xml.h:7
 msgid "400"
-msgstr ""
+msgstr "400"
 
 #: ../hacks/config/intermomentary.xml.h:9
 msgid ""
@@ -5959,12 +5982,13 @@ msgid ""
 "some arbitrary size. Circles are drawn with small moving points along the "
 "perimeter. The intersections are rendered as glowing orbs. Glowing orbs are "
 "rendered only when a perimeter point moves past the intersection point. "
-"Written by Casey Reas, William Ngan, Robert Hodgin, and Jamie Zawinski; 2004."
-msgstr ""
+"Written by Casey Reas, William Ngan, Robert Hodgin, and Jamie Zawinski; "
+"2004."
+msgstr "Мигающие точки взаимодействуют друг с другом по кругу. Поверхность заполнена ста кругами средних и малых размеров. Каждый круг имеет свой размер и направление, но движется в медленном темпе. Отображает мгновенные пересечения окружностей, а также совокупные пересечения окружностей. Круги начинаются с радиуса 1 пиксель и медленно увеличиваются до некоторого произвольного размера. Круги рисуются небольшими движущимися точками по периметру. Пересечения отображаются в виде светящихся шаров. Светящимися шары становятся только тогда, когда точка периметра проходит мимо точки пересечения. Авторы: Кейси Рис, Уильям Нган, Роберт Ходгин и Джейми Завински; 2004."
 
 #: ../hacks/config/jigglypuff.xml.h:1
 msgid "JigglyPuff"
-msgstr ""
+msgstr "Джигглипуф"
 
 #: ../hacks/config/jigglypuff.xml.h:2
 msgid "Randomize almost everything"
@@ -5976,7 +6000,7 @@ msgstr "Цикл"
 
 #: ../hacks/config/jigglypuff.xml.h:4
 msgid "Flower box"
-msgstr "Ð\9aоÑ\80обка Ñ\86веÑ\82ов"
+msgstr "ЦвеÑ\82оÑ\87нÑ\8bй Ñ\8fÑ\89ик"
 
 #: ../hacks/config/jigglypuff.xml.h:5
 msgid "Clown barf"
@@ -5989,7 +6013,7 @@ msgstr "Сфера"
 #: ../hacks/config/jigglypuff.xml.h:8 ../hacks/config/morph3d.xml.h:6
 #: ../hacks/config/polyhedra.xml.h:22 ../hacks/config/sballs.xml.h:6
 msgid "Tetrahedron"
-msgstr "ТеÑ\82Ñ\80аÑ\8dдÑ\80"
+msgstr "ЧеÑ\82Ñ\8bÑ\80Ñ\91Ñ\85гÑ\80анник"
 
 #: ../hacks/config/jigglypuff.xml.h:17
 msgid "Inertial damping"
@@ -6013,7 +6037,7 @@ msgstr "Поведение вершин"
 
 #: ../hacks/config/jigglypuff.xml.h:25
 msgid "Collapse"
-msgstr "СжаÑ\82ие"
+msgstr "Ð\9aÑ\80аÑ\85"
 
 #: ../hacks/config/jigglypuff.xml.h:26
 msgid "Spookiness"
@@ -6028,15 +6052,15 @@ msgid ""
 "Quasi-spherical objects are distorted. You have a tetrahedron with "
 "tesselated faces. The vertices on these faces have forces on them: one "
 "proportional to the distance from the surface of a sphere; and one "
-"proportional to the distance from the neighbors. They also have inertia. The "
-"resulting effect can range from a shape that does nothing, to a frenetic "
+"proportional to the distance from the neighbors. They also have inertia. The"
+" resulting effect can range from a shape that does nothing, to a frenetic "
 "polygon storm. Somewhere in between there it usually manifests as a blob "
 "that jiggles in a kind of disturbing manner. Written by Keith Macleod; 2003."
-msgstr ""
+msgstr "Квазисферические объекты искажаются. У вас есть четырёхгранник с мозаичными гранями. Вершины этих граней имеют усилия: одно - пропорционально расстоянию от поверхности сферы, другое - пропорционально расстоянию от соседей. Четырёхгранник также обладает инерцией. Полученный эффект может варьироваться от формы. Обычно проявляется в виде сгустка, который покачивается, своего рода, тревожным образом. Автор: Кейт Маклеод; 2003."
 
 #: ../hacks/config/jigsaw.xml.h:1
 msgid "Jigsaw"
-msgstr ""
+msgstr "Пазл"
 
 #: ../hacks/config/jigsaw.xml.h:9
 msgid "Puzzle pieces"
@@ -6044,7 +6068,7 @@ msgstr "Кусочки пазла"
 
 #: ../hacks/config/jigsaw.xml.h:11
 msgid "Chunky"
-msgstr "Ð\96еÑ\81Ñ\82кий"
+msgstr "Ð\9aоÑ\80енаÑ\81Ñ\82Ñ\8bй"
 
 #: ../hacks/config/jigsaw.xml.h:14 ../hacks/config/sonar.xml.h:33
 msgid "Tilt"
@@ -6052,14 +6076,14 @@ msgstr "Наклон"
 
 #: ../hacks/config/jigsaw.xml.h:16
 msgid ""
-"Carves an image up into a jigsaw puzzle, shuffles it, and solves it. https://"
-"en.wikipedia.org/wiki/Jigsaw_puzzle https://en.wikipedia.org/wiki/"
-"Tessellation Written by Jamie Zawinski; 1997."
-msgstr ""
+"Carves an image up into a jigsaw puzzle, shuffles it, and solves it. "
+"https://en.wikipedia.org/wiki/Jigsaw_puzzle "
+"https://en.wikipedia.org/wiki/Tessellation Written by Jamie Zawinski; 1997."
+msgstr "Дробит изображение в головоломку, перемешивает его, и решает её. https://en.wikipedia.org/wiki/Jigsaw_puzzle https://en.wikipedia.org/wiki/Tessellation Автор: Джейми Завински; 1997."
 
 #: ../hacks/config/juggle.xml.h:1
 msgid "Juggle"
-msgstr ""
+msgstr "Жонглирование"
 
 #: ../hacks/config/juggle.xml.h:9 ../hacks/config/juggler3d.xml.h:9
 msgid "Performance length"
@@ -6088,33 +6112,33 @@ msgstr "Шары для боулинга"
 
 #: ../hacks/config/juggle.xml.h:19 ../hacks/config/juggler3d.xml.h:19
 msgid "Print Cambridge juggling pattern descriptions"
-msgstr "Выводить кембриджские описания паттернов жонглирования"
+msgstr "Выводить кембриджские описания шаблонов жонглирования"
 
 #: ../hacks/config/juggle.xml.h:20 ../hacks/config/juggler3d.xml.h:20
 msgid "Juggle this pattern"
-msgstr "Жонглировать этим паттерном"
+msgstr "Жонглировать этим шаблоном"
 
 #: ../hacks/config/juggle.xml.h:22
 msgid ""
 "This screen saver was removed from the XScreenSaver distribution as of "
 "version 5.09. It has been replaced by the \"Juggler3D\" screen saver. "
 "Written by Tim Auckland; 2002."
-msgstr ""
+msgstr "Эта заставка была удалена из дистрибутива XScreenSaver версии 5.09. Она была заменена на \"3D-жонглирование\". Автор: Тим Окленд; 2002."
 
 #: ../hacks/config/juggler3d.xml.h:1
 msgid "Juggler3D"
-msgstr ""
+msgstr "3D-жонглирование"
 
 #: ../hacks/config/juggler3d.xml.h:22
 msgid ""
 "A 3D juggling stick-man, with Cambridge juggling pattern notation used to "
 "describe the patterns he juggles. https://en.wikipedia.org/wiki/Siteswap "
 "Written by Tim Auckland and Jamie Zawinski; 2002."
-msgstr ""
+msgstr "3D жонглирующий человечек с описанием кембриджского шаблона жонглирования, используемой для описания шаблонов, которыми он жонглирует. https://en.wikipedia.org/wiki/Siteswap Авторы: Тим Окленде и Джейми Завински; 2002."
 
 #: ../hacks/config/julia.xml.h:1
 msgid "Julia"
-msgstr ""
+msgstr "Жюлиа"
 
 #: ../hacks/config/julia.xml.h:9 ../hacks/config/rorschach.xml.h:3
 msgid "Iterations"
@@ -6124,13 +6148,13 @@ msgstr "Итерации"
 msgid ""
 "The Julia set is a close relative of the Mandelbrot set. The small moving "
 "dot indicates the control point from which the rest of the image was "
-"generated. See also the \"Discrete\" screen saver. https://en.wikipedia.org/"
-"wiki/Julia_set Written by Sean McCullough; 1997."
-msgstr ""
+"generated. See also the \"Discrete\" screen saver. "
+"https://en.wikipedia.org/wiki/Julia_set Written by Sean McCullough; 1997."
+msgstr "Множество Жюлиа является близким родственником множества Мандельброта. Небольшое перемещение точки указывает на контрольную точку, из которой была сгенерирована остальная часть изображения. Смотрите также хранитель экрана \"Дискретный\". https://en.wikipedia.org/wiki/Julia_set Автор: Шон Маккалоу; 1997."
 
 #: ../hacks/config/kaleidescope.xml.h:1
 msgid "Kaleidescope"
-msgstr ""
+msgstr "Калейдоскоп"
 
 #: ../hacks/config/kaleidescope.xml.h:6 ../hacks/config/qix.xml.h:6
 msgid "Segments"
@@ -6138,7 +6162,7 @@ msgstr "Сегменты"
 
 #: ../hacks/config/kaleidescope.xml.h:8
 msgid "3"
-msgstr ""
+msgstr "3"
 
 #: ../hacks/config/kaleidescope.xml.h:9 ../hacks/config/quasicrystal.xml.h:12
 msgid "Symmetry"
@@ -6146,7 +6170,7 @@ msgstr "Симметрия"
 
 #: ../hacks/config/kaleidescope.xml.h:10
 msgid "32"
-msgstr ""
+msgstr "32"
 
 #: ../hacks/config/kaleidescope.xml.h:11
 msgid "Trails"
@@ -6157,29 +6181,29 @@ msgid ""
 "A simple kaleidoscope made of line segments. See \"GLeidescope\" for a more "
 "sophisticated take. https://en.wikipedia.org/wiki/Kaleidoscope Written by "
 "Ron Tapia; 1997."
-msgstr ""
+msgstr "Простой калейдоскоп из отрезков. Более сложный - смотрите \"GL-лейдоскоп\" . https://en.wikipedia.org/wiki/Kaleidoscope Автор: Рон Тапиа; 1997."
 
 #: ../hacks/config/kaleidocycle.xml.h:1
 msgid "Kaleidocycle"
-msgstr ""
+msgstr "Калейдоцикл"
 
 #: ../hacks/config/kaleidocycle.xml.h:7 ../hacks/config/raverhoop.xml.h:7
 msgid "64"
-msgstr ""
+msgstr "64"
 
 #: ../hacks/config/kaleidocycle.xml.h:22
 msgid ""
 "Draw a ring composed of tetrahedra connected at the edges that twists and "
-"rotates toroidally. When a series of tetrahedra are joined at the edges in a "
-"loop, it is possible for them to rotate continously through the center "
+"rotates toroidally. When a series of tetrahedra are joined at the edges in a"
+" loop, it is possible for them to rotate continously through the center "
 "without deforming. This only works with an even number of tetrahedra, and "
 "there must be eight or more, or they don't fit. Written by Jamie Zawinski; "
 "2013."
-msgstr ""
+msgstr "Рисует кольцо, состоящее из тетраэдров, соединённых по краям, которые крутятся и вращаются тороидально. Когда ряд тетраэдров соединён по краям в цикл, возможно, что они будут непрерывно вращаться через центр не деформируясь. Это работает только с чётным числом тетраэдров, их должно быть восемь, или больше, иначе -  ничего не получится. Автор: Джейми Завински; 2013."
 
 #: ../hacks/config/klein.xml.h:1
 msgid "Klein"
-msgstr ""
+msgstr "Кляйн"
 
 #: ../hacks/config/klein.xml.h:3
 msgid "Figure 8"
@@ -6191,7 +6215,7 @@ msgstr "Сжатый тор"
 
 #: ../hacks/config/klein.xml.h:5
 msgid "Lawson"
-msgstr ""
+msgstr "Лоусон"
 
 #: ../hacks/config/klein.xml.h:6 ../hacks/config/projectiveplane.xml.h:38
 #: ../hacks/config/qix.xml.h:15 ../hacks/config/romanboy.xml.h:2
@@ -6201,7 +6225,7 @@ msgstr "Случайное движение"
 #: ../hacks/config/klein.xml.h:7 ../hacks/config/projectiveplane.xml.h:39
 #: ../hacks/config/romanboy.xml.h:3
 msgid "Walk"
-msgstr "Ð\94вижение Ð¿Ñ\80Ñ\8fмо"
+msgstr "Хождение"
 
 #: ../hacks/config/klein.xml.h:8 ../hacks/config/projectiveplane.xml.h:40
 #: ../hacks/config/romanboy.xml.h:4
@@ -6210,7 +6234,7 @@ msgstr "Поворот"
 
 #: ../hacks/config/klein.xml.h:9 ../hacks/config/projectiveplane.xml.h:41
 msgid "Walk and turn"
-msgstr "Ð\94вижение Ð¿Ñ\80Ñ\8fмо и поворот"
+msgstr "Хождение и поворот"
 
 #: ../hacks/config/klein.xml.h:10 ../hacks/config/projectiveplane.xml.h:42
 #: ../hacks/config/romanboy.xml.h:6
@@ -6225,7 +6249,7 @@ msgstr "Случайная поверхность"
 #: ../hacks/config/klein.xml.h:12 ../hacks/config/polytopes.xml.h:2
 #: ../hacks/config/projectiveplane.xml.h:3 ../hacks/config/romanboy.xml.h:15
 msgid "Wireframe mesh"
-msgstr "ЯÑ\87еиÑ\81Ñ\82аÑ\8f Ð¿Ð¾Ð²ÐµÑ\80Ñ\85ноÑ\81Ñ\82Ñ\8c"
+msgstr "Ð\9aаÑ\80каÑ\81наÑ\8f Ñ\81еÑ\82ка"
 
 #: ../hacks/config/klein.xml.h:13 ../hacks/config/mirrorblob.xml.h:27
 #: ../hacks/config/polytopes.xml.h:3 ../hacks/config/projectiveplane.xml.h:4
@@ -6241,7 +6265,7 @@ msgstr "Прозрачная поверхность"
 #: ../hacks/config/klein.xml.h:15 ../hacks/config/projectiveplane.xml.h:6
 #: ../hacks/config/romanboy.xml.h:18
 msgid "Random pattern"
-msgstr "Случайный паттерн"
+msgstr "Случайный узор"
 
 #: ../hacks/config/klein.xml.h:17
 msgid "See-through bands"
@@ -6265,27 +6289,27 @@ msgstr "Случайное 4D"
 
 #: ../hacks/config/klein.xml.h:36 ../hacks/config/romanboy.xml.h:34
 msgid "-180.0"
-msgstr ""
+msgstr "-180.0"
 
 #: ../hacks/config/klein.xml.h:37 ../hacks/config/romanboy.xml.h:35
 msgid "Walking direction"
-msgstr "Направление движения"
+msgstr "Направление ходьбы"
 
 #: ../hacks/config/klein.xml.h:38 ../hacks/config/romanboy.xml.h:36
 msgid "180.0"
-msgstr ""
+msgstr "180.0"
 
 #: ../hacks/config/klein.xml.h:39 ../hacks/config/romanboy.xml.h:8
 msgid "1.0"
-msgstr ""
+msgstr "1.0"
 
 #: ../hacks/config/klein.xml.h:40 ../hacks/config/romanboy.xml.h:37
 msgid "Walking speed"
-msgstr "Скорость движения"
+msgstr "Скорость ходьбы"
 
 #: ../hacks/config/klein.xml.h:41 ../hacks/config/romanboy.xml.h:10
 msgid "100.0"
-msgstr ""
+msgstr "100.0"
 
 #: ../hacks/config/klein.xml.h:46
 msgid ""
@@ -6293,27 +6317,27 @@ msgid ""
 "surface of the bottle or rotate it in 4D or walk on it while it rotates in "
 "4D. Inspired by Thomas Banchoff's book \"Beyond the Third Dimension: "
 "Geometry, Computer Graphics, and Higher Dimensions\", Scientific American "
-"Library, 1990. https://en.wikipedia.org/wiki/Klein_bottle Written by Carsten "
-"Steger; 2008."
-msgstr ""
+"Library, 1990. https://en.wikipedia.org/wiki/Klein_bottle Written by Carsten"
+" Steger; 2008."
+msgstr "Бутылка Кляйна является 4D аналогом ленты Мёбиуса. Вы можете ходить по поверхности бутылки или пововорачивать её в 4D, ходить по ней, пока она вращается в 4D. Вдохновлённый книгой Томаса Банчоф \"Вне третьего измерения: Геометрия, компьютерной графики, и более высокие измерения\", научная американская библиотека, 1990. https://en.wikipedia.org/wiki/Klein_bottle Автор Карстен Стегер; 2008."
 
 #: ../hacks/config/kumppa.xml.h:1
 msgid "Kumppa"
-msgstr ""
+msgstr "Каппа"
 
 #: ../hacks/config/kumppa.xml.h:6
 msgid "Randomize"
-msgstr "Ð\92Ñ\8bбиÑ\80аÑ\82Ñ\8c Ð²Ñ\81е Ñ\81лÑ\83Ñ\87айно"
+msgstr "СлÑ\83Ñ\87айнÑ\8bе Ð·Ð½Ð°Ñ\87ениÑ\8f"
 
 #: ../hacks/config/kumppa.xml.h:9
 msgid ""
 "Spiraling, spinning, and very, very fast splashes of color rush toward the "
 "screen. Written by Teemu Suutari; 1998."
-msgstr ""
+msgstr "Вихрь, вращение, и очень, очень быстрые всплески цвета на экране. Автор: Теему Суутари; 1998."
 
 #: ../hacks/config/lament.xml.h:1
 msgid "Lament"
-msgstr ""
+msgstr "Плач"
 
 #: ../hacks/config/lament.xml.h:9
 #, no-c-format
@@ -6321,22 +6345,22 @@ msgid ""
 "Lemarchand's Box, the Lament Configuration. Warning: occasionally opens "
 "doors. https://en.wikipedia.org/wiki/Lemarchand%27s_box Written by Jamie "
 "Zawinski; 1998."
-msgstr ""
+msgstr "Шкатулка Лемаршана, Конфигурация плача. Внимание: иногда открывает двери. https://en.wikipedia.org/wiki/Lemarchand%27s_box Автор: Джейми Завински; 1998."
 
 #: ../hacks/config/laser.xml.h:1
 msgid "Laser"
-msgstr ""
+msgstr "Лазер"
 
 #: ../hacks/config/laser.xml.h:13
 msgid ""
 "This screen saver was removed from the XScreenSaver distribution as of "
 "version 5.08. Moving radiating lines, that look vaguely like scanning laser "
 "beams. (Frankie say relax.) Written by Pascal Pensa; 1997."
-msgstr ""
+msgstr "Эта заставка была удалена из дистрибутива XScreenSaver версии 5.08. Перемещение расходящихся линий, которые выглядят неопределённо, как сканированные лазерные пучки. (Фрэнки надо отдохнуть.) Автор: Паскаль Пенза; 1997."
 
 #: ../hacks/config/lavalite.xml.h:1
 msgid "Lavalite"
-msgstr ""
+msgstr "Лавовая лампа"
 
 #: ../hacks/config/lavalite.xml.h:9
 msgid "Max blobs"
@@ -6380,13 +6404,13 @@ msgid ""
 "configuration of the globe and base of the motion lamp are registered "
 "trademarks of Haggerty Enterprises, Inc. in the U.S.A. and in other "
 "countries around the world.\" https://en.wikipedia.org/wiki/Lava_lamp "
-"https://en.wikipedia.org/wiki/Metaballs https://en.wikipedia.org/wiki/"
-"Lavarand Written by Jamie Zawinski; 2002."
-msgstr ""
+"https://en.wikipedia.org/wiki/Metaballs "
+"https://en.wikipedia.org/wiki/Lavarand Written by Jamie Zawinski; 2002."
+msgstr "Моделирование лавовой лампы(r). Нечётные сгустки таинственной субстанции нагреваются, медленно поднимаются в верхнюю часть бутылки, а затем, остывая, падают вниз. Это моделирование требует довольно быструю машину (как и процессор с 3D-производительностью.) \"ЛАВОВАЯ ЛАМПА(r) и конфигурация движущейся лампы ЛАВЫ(r) являются зарегистрированными торговыми марками Haggerty Enterprises, Inc. Конфигурация земного шара и базы движущейся лампы являются зарегистрированными торговыми марками Haggerty Enterprises, Inc. в США и в других странах по всему миру\". https://en.wikipedia.org/wiki/Lava_lamp https://en.wikipedia.org/wiki/Metaballs https://en.wikipedia.org/wiki/Lavarand Автор: Джейми Завински; 2002."
 
 #: ../hacks/config/lcdscrub.xml.h:1
 msgid "LCDscrub"
-msgstr ""
+msgstr "LCD-скраб"
 
 #: ../hacks/config/lcdscrub.xml.h:5
 msgid "Line spread"
@@ -6414,19 +6438,19 @@ msgstr "Первичные цвета"
 
 #: ../hacks/config/lcdscrub.xml.h:13
 msgid "Horizontal black"
-msgstr "Горизонтальные черные"
+msgstr "Горизонтальные чёрные"
 
 #: ../hacks/config/lcdscrub.xml.h:14
 msgid "Vertical black"
-msgstr "Вертикальные черные"
+msgstr "Вертикальные чёрные"
 
 #: ../hacks/config/lcdscrub.xml.h:15
 msgid "Diagonal black"
-msgstr "Диагональные черные"
+msgstr "Диагональные чёрные"
 
 #: ../hacks/config/lcdscrub.xml.h:16
 msgid "Solid black"
-msgstr "Сплошные черные"
+msgstr "Сплошные чёрные"
 
 #: ../hacks/config/lcdscrub.xml.h:17
 msgid ""
@@ -6434,41 +6458,41 @@ msgid ""
 "pretty. Believe it or not, screen burn is not a thing of the past. It can "
 "happen to LCD screens pretty easily, even in this modern age. However, "
 "leaving the screen on and displaying high contrast images can often repair "
-"the damage. That's what this screen saver does. See also: http://docs.info."
-"apple.com/article.html?artnum=88343 http://toastycode.com/blog/2008/02/05/"
-"lcd-scrub/ Inspired by the like-named program by Daniel Sandler. Written by "
-"Jamie Zawinski; 2008."
-msgstr ""
+"the damage. That's what this screen saver does. See also: "
+"http://docs.info.apple.com/article.html?artnum=88343 "
+"http://toastycode.com/blog/2008/02/05/lcd-scrub/ Inspired by the like-named "
+"program by Daniel Sandler. Written by Jamie Zawinski; 2008."
+msgstr "Ремонт выгорания на LCD/ЖК-мониторах. Эта заставка является функциональной. Верите вы, или нет, выгорание экрана не является делом прошлого. Это может случиться с ЖК-экранами довольно легко, даже в современную эпоху. Тем не менее, использование экрана высокой контрастности может не довести до этого. Смотрите также: http://docs.info.apple.com/article.html?artnum=88343 http://toastycode.com/blog/2008/02/05/lcd-scrub/ Вдохновлённый одноимённой программой Даниила Сандлера. Автор: Джейми Завински; 2008."
 
 #: ../hacks/config/lightning.xml.h:1
 msgid "Lightning"
-msgstr ""
+msgstr "Молния"
 
 #: ../hacks/config/lightning.xml.h:9
 msgid ""
 "This screen saver was removed from the XScreenSaver distribution as of "
 "version 5.08. Crackling fractal lightning bolts. Written by Keith Romberg; "
 "1997."
-msgstr ""
+msgstr "Эта заставка была удалена из дистрибутива XScreenSaver версии 5.08. Сверкающие фрактальные молнии. Автор Кейт Ромберг; 1997."
 
 #: ../hacks/config/lisa.xml.h:1
 msgid "Lisa"
-msgstr ""
+msgstr "Лиза"
 
 #: ../hacks/config/lisa.xml.h:6
 msgid "Steps"
-msgstr ""
+msgstr "Шаги"
 
 #: ../hacks/config/lisa.xml.h:17
 msgid ""
 "This screen saver was removed from the XScreenSaver distribution as of "
-"version 5.08. Lissajous loops. https://en.wikipedia.org/wiki/Lissajous_curve "
-"Written by Caleb Cullen; 1997."
-msgstr ""
+"version 5.08. Lissajous loops. https://en.wikipedia.org/wiki/Lissajous_curve"
+" Written by Caleb Cullen; 1997."
+msgstr "Эта заставка была удалена из дистрибутива XScreenSaver версии 5.08. Петли Лиссажу. https://en.wikipedia.org/wiki/Lissajous_curve Автор Калеб Каллена; 1997."
 
 #: ../hacks/config/lissie.xml.h:1
 msgid "Lissie"
-msgstr ""
+msgstr "Лисси"
 
 #: ../hacks/config/lissie.xml.h:16
 msgid ""
@@ -6476,50 +6500,50 @@ msgid ""
 "version 5.08. Lissajous loops. This one draws the progress of circular "
 "shapes along a path. https://en.wikipedia.org/wiki/Lissajous_curve Written "
 "by Alexander Jolk; 1997."
-msgstr ""
+msgstr "Эта заставка была удалена из дистрибутива XScreenSaver версии 5.08. Петли Лиссажу. Она рисует прогресс круглых форм вдоль пути. https://en.wikipedia.org/wiki/Lissajous_curve Автор: Александр Джолк; 1997."
 
 #: ../hacks/config/lmorph.xml.h:1
 msgid "LMorph"
-msgstr ""
+msgstr "L-превращение"
 
 #: ../hacks/config/lmorph.xml.h:6
 msgid "Control points"
-msgstr ""
+msgstr "Контрольные точки"
 
 #: ../hacks/config/lmorph.xml.h:8
 msgid "Less"
-msgstr ""
+msgstr "Меньше"
 
 #: ../hacks/config/lmorph.xml.h:9
 msgid "Interpolation steps"
-msgstr ""
+msgstr "Шаги интерполяции"
 
 #: ../hacks/config/lmorph.xml.h:10
 msgid "More"
-msgstr ""
+msgstr "Больше"
 
 #: ../hacks/config/lmorph.xml.h:14
 msgid "Open and closed figures"
-msgstr ""
+msgstr "Открытые и закрытые фигуры"
 
 #: ../hacks/config/lmorph.xml.h:15
 msgid "Open figures"
-msgstr ""
+msgstr "Открые фигуры"
 
 #: ../hacks/config/lmorph.xml.h:16
 msgid "Closed figures"
-msgstr ""
+msgstr "Закрытые фигуры"
 
 #: ../hacks/config/lmorph.xml.h:18
 msgid ""
 "This screen saver was removed from the XScreenSaver distribution as of "
 "version 5.08. This generates random spline-ish line drawings and morphs "
 "between them. Written by Sverre H. Huseby and Glenn T. Lines; 1995."
-msgstr ""
+msgstr "Эта заставка была удалена из дистрибутива XScreenSaver версии 5.08. Генерирует случайные сплайны линейных чертежей и преобразования между ними. Автор: Сверре Х. Хьюзбай и Гленн Т. Лайнс; 1995."
 
 #: ../hacks/config/lockward.xml.h:1
 msgid "Lockward"
-msgstr ""
+msgstr "Заблокированная защита"
 
 #: ../hacks/config/lockward.xml.h:5
 msgid "Miniumum rotator idle time"
@@ -6551,15 +6575,15 @@ msgstr "Максимальное время задержки мерцания"
 
 #: ../hacks/config/lockward.xml.h:13
 msgid ""
-"A translucent spinning, blinking thing. Sort of a cross between the wards in "
-"an old combination lock and those old backlit information displays that "
+"A translucent spinning, blinking thing. Sort of a cross between the wards in"
+" an old combination lock and those old backlit information displays that "
 "animated and changed color via polarized light. Written by Leo L. Schwab; "
 "2007."
-msgstr ""
+msgstr "Полупрозрачная вращающаяся, мигающая вещь. Что-то вроде помехи между защитами в старом кодовом замке и теми старыми информационными дисплеями с подсветкой, которые оживляли и меняли цвет с помощью поляризованного света. Автор: Лео Л. Счваб; 2007."
 
 #: ../hacks/config/loop.xml.h:1
 msgid "Loop"
-msgstr ""
+msgstr "Петля"
 
 #: ../hacks/config/loop.xml.h:14
 #, no-c-format
@@ -6567,38 +6591,50 @@ msgid ""
 "A cellular automaton that generates loop-shaped colonies that spawn, age, "
 "and eventually die. https://en.wikipedia.org/wiki/Langton%27s_loops Written "
 "by David Bagley; 1999."
-msgstr ""
+msgstr "Клеточный автомат, генерирует колонии петлеобразных; рождающихся, порождающих жизнь, и, в конце концов, умирающих. https://en.wikipedia.org/wiki/Langton%27s_loops Автор: Дэвид Бэгли; 1999 год."
 
 #: ../hacks/config/m6502.xml.h:1
 msgid "m6502"
-msgstr ""
+msgstr "m6502"
 
-#: ../hacks/config/m6502.xml.h:3
-msgid "Display time for each program"
-msgstr "Ð\92Ñ\80емÑ\8f Ð¾Ñ\82обÑ\80ажениÑ\8f ÐºÐ°Ð¶Ð´Ð¾Ð¹ Ð¿Ñ\80огÑ\80аммÑ\8b"
+#: ../hacks/config/m6502.xml.h:2
+msgid "Assembly file"
+msgstr "СбоÑ\80оÑ\87нÑ\8bй Ñ\84айл"
 
 #: ../hacks/config/m6502.xml.h:5
-msgid "Assembly file"
-msgstr "Файл ассемблера"
+msgid "Display time for each program"
+msgstr "Отображать время для каждой программы"
+
+#: ../hacks/config/m6502.xml.h:11
+msgid "500"
+msgstr "500"
+
+#: ../hacks/config/m6502.xml.h:12
+msgid "Instructions per second"
+msgstr "Инструкций в секунду"
 
 #: ../hacks/config/m6502.xml.h:13
+msgid "120000"
+msgstr "120000"
+
+#: ../hacks/config/m6502.xml.h:16
 msgid ""
 "Emulates a 6502 microprocessor, and runs some example programs on it. The "
-"family of 6502 chips were used throughout the 70's and 80's in machines such "
-"as the Atari 2600, Commodore PET, VIC20 and C64, Apple ][, and the NES. Some "
-"example programs are included, and it can also read in an assembly file as "
-"input. Original JavaScript Version by Stian Soreng: http://www.6502asm.com/. "
-"Ported to XScreenSaver by Jeremy English. Written by Stian Soreng and Jeremy "
-"English; 2007."
-msgstr ""
+"family of 6502 chips were used throughout the 70's and 80's in machines such"
+" as the Atari 2600, Commodore PET, VIC20 and C64, Apple ][, and the NES. "
+"Some example programs are included, and it can also read in an assembly file"
+" as input. Original JavaScript Version by Stian Soreng: "
+"http://www.6502asm.com/. Ported to XScreenSaver by Jeremy English. Written "
+"by Stian Soreng and Jeremy English; 2007."
+msgstr "Эмулирует микропроцессор 6502 и запускает несколько примеров программ на нём. Семья 6502 чипов была использована на протяжении 70-х и 80-х годов в машинах, таких как Atari 2600, Commodore PET, VIC20 и C64, Apple] [ и NES. Включены некоторые примеры программ, об этом также можно прочитать в файле сборки в качестве входных данных. Оригинальная версия на JavaScript автора Стиан Сёренг: http://www.6502asm.com/. Портирована на XScreenSaver Джереми Инглиш. Автор: Стиан Сёренг и Джереми Инглиш; 2007."
 
 #: ../hacks/config/maze.xml.h:1
 msgid "Maze"
-msgstr ""
+msgstr "Лабиринт"
 
 #: ../hacks/config/maze.xml.h:5
 msgid "Random maze generator"
-msgstr "СлÑ\83Ñ\87айнÑ\8bй Ð³ÐµÐ½ÐµÑ\80аÑ\82оÑ\80 Ð»Ð°Ð±Ð¸Ñ\80инÑ\82а"
+msgstr "Ð\93енеÑ\80аÑ\82оÑ\80 Ñ\81лÑ\83Ñ\87айнÑ\8bÑ\85 Ð»Ð°Ð±Ð¸Ñ\80инÑ\82ов"
 
 #: ../hacks/config/maze.xml.h:6
 msgid "Depth-first backtracking maze generator"
@@ -6636,15 +6672,50 @@ msgstr "Время после решения"
 msgid ""
 "Generates random mazes, with three different algorithms: Kruskal, Prim, and "
 "a depth-first recursive backtracker. It also solves them. Backtracking and "
-"look-ahead paths are displayed in different colors. https://en.wikipedia.org/"
-"wiki/Maze_generation_algorithm https://en.wikipedia.org/wiki/"
-"Maze_solving_algorithm Written by Martin Weiss, Dave Lemke, Jim Randell, "
-"Jamie Zawinski, Johannes Keukelaar, and Zack Weinberg; 1985."
-msgstr ""
+"look-ahead paths are displayed in different colors. "
+"https://en.wikipedia.org/wiki/Maze_generation_algorithm "
+"https://en.wikipedia.org/wiki/Maze_solving_algorithm Written by Martin "
+"Weiss, Dave Lemke, Jim Randell, Jamie Zawinski, Johannes Keukelaar, and Zack"
+" Weinberg; 1985."
+msgstr "Генерирует случайные лабиринты, с тремя различными алгоритмами: Крускала, Прима, и в глубину рекурсивного обратного хода. Он также решает случайные лабиринты. Возвраты и пути упреждения отображаются в разных цветах. https://en.wikipedia.org/wiki/Maze_generation_algorithm https://en.wikipedia.org/wiki/Maze_solving_algorithm Авторы: Мартин Вайс, Дэйв Лемке, Джим Ранделл, Джейми Завински, Джоханнес Кеукелаар и Зак Вейнберг; 1985."
+
+#: ../hacks/config/maze3d.xml.h:1
+msgid "Maze3D"
+msgstr "3D-лабиринт"
+
+#: ../hacks/config/maze3d.xml.h:8
+msgid "Show Overlay"
+msgstr "Показать наложение"
+
+#: ../hacks/config/maze3d.xml.h:9
+msgid "Acid"
+msgstr "Кислота"
+
+#: ../hacks/config/maze3d.xml.h:11 ../hacks/config/splitflap.xml.h:9
+msgid "Rows"
+msgstr "Строки"
+
+#: ../hacks/config/maze3d.xml.h:12 ../hacks/config/splitflap.xml.h:8
+msgid "Columns"
+msgstr "Столбцы"
+
+#: ../hacks/config/maze3d.xml.h:13
+msgid "Inverters"
+msgstr "Инверторы"
+
+#: ../hacks/config/maze3d.xml.h:14
+msgid "Rats"
+msgstr "Крысы"
+
+#: ../hacks/config/maze3d.xml.h:15
+msgid ""
+"A re-creation of the 3D Maze screensaver from Windows 95. Written by Sudoer;"
+" 2018."
+msgstr "Воссоздание заставки 3D-лабиринта из Windows 95. Автор Судоер; 2018."
 
 #: ../hacks/config/memscroller.xml.h:1
 msgid "MemScroller"
-msgstr ""
+msgstr "Прокручиватель памяти"
 
 #: ../hacks/config/memscroller.xml.h:5
 msgid "Dump memory"
@@ -6660,17 +6731,17 @@ msgstr "Прорисовывать в RGB"
 
 #: ../hacks/config/memscroller.xml.h:8
 msgid "Draw green"
-msgstr "Прорисовывать зеленым цветом"
+msgstr "Прорисовывать зелёным цветом"
 
 #: ../hacks/config/memscroller.xml.h:10
 msgid ""
 "Scrolls a dump of its own memory in three windows at three different rates. "
 "Written by Jamie Zawinski; 2004."
-msgstr ""
+msgstr "Прокрутка дампа собственной памяти в трёх окнах, на трёх разных скоростях. Автор: Джейми Завински; 2004."
 
 #: ../hacks/config/menger.xml.h:1
 msgid "Menger"
-msgstr ""
+msgstr "Менгер"
 
 #: ../hacks/config/menger.xml.h:8 ../hacks/config/sierpinski3d.xml.h:8
 msgid "Max depth"
@@ -6679,13 +6750,14 @@ msgstr "Максимальная глубина"
 #: ../hacks/config/menger.xml.h:21
 msgid ""
 "The Menger Gasket is a cube-based recursive fractal object analagous to the "
-"Sierpinski Tetrahedron. https://en.wikipedia.org/wiki/Menger_sponge https://"
-"en.wikipedia.org/wiki/Sierpinski_carpet Written by Jamie Zawinski; 2001."
-msgstr ""
+"Sierpinski Tetrahedron. https://en.wikipedia.org/wiki/Menger_sponge "
+"https://en.wikipedia.org/wiki/Sierpinski_carpet Written by Jamie Zawinski; "
+"2001."
+msgstr "Уплотнение Менгера представляет собой куб на основе рекурсивного фрактального объекта, аналогичного тетраэдру Серпинского. https://en.wikipedia.org/wiki/Menger_sponge https://en.wikipedia.org/wiki/Sierpinski_carpet Автор: Джейми Завински; 2001."
 
 #: ../hacks/config/metaballs.xml.h:1
 msgid "MetaBalls"
-msgstr ""
+msgstr "Мета-шары"
 
 #: ../hacks/config/metaballs.xml.h:11
 msgid "Metaball count"
@@ -6701,21 +6773,21 @@ msgstr "Темп движения метамячей"
 
 #: ../hacks/config/metaballs.xml.h:17
 msgid ""
-"2D meta-balls: overlapping and merging balls with fuzzy edges. https://en."
-"wikipedia.org/wiki/Metaballs Written by W.P. van Paassen; 2003."
-msgstr ""
+"2D meta-balls: overlapping and merging balls with fuzzy edges. "
+"https://en.wikipedia.org/wiki/Metaballs Written by W.P. van Paassen; 2003."
+msgstr "2D мета-шары: перекрытие и слияние шаров с нечёткими краями. https://en.wikipedia.org/wiki/Metaballs Автор: В.П. ван Паасен; 2003."
 
 #: ../hacks/config/mirrorblob.xml.h:1
 msgid "MirrorBlob"
-msgstr ""
+msgstr "Сгусток с отражением"
 
 #: ../hacks/config/mirrorblob.xml.h:5
 msgid "0.1x"
-msgstr ""
+msgstr "0.1x"
 
 #: ../hacks/config/mirrorblob.xml.h:7
 msgid "3.0x"
-msgstr ""
+msgstr "3.0x"
 
 #: ../hacks/config/mirrorblob.xml.h:8
 msgid "5 sec"
@@ -6727,7 +6799,7 @@ msgstr "5 минут"
 
 #: ../hacks/config/mirrorblob.xml.h:12
 msgid "Transition duration"
-msgstr "Ð\9dапÑ\80авление перехода"
+msgstr "Ð\9fÑ\80одолжиÑ\82елÑ\8cноÑ\81Ñ\82Ñ\8c перехода"
 
 #: ../hacks/config/mirrorblob.xml.h:13 ../hacks/config/timetunnel.xml.h:4
 msgid "30 sec"
@@ -6763,11 +6835,11 @@ msgstr "Смещение координат текстур"
 
 #: ../hacks/config/mirrorblob.xml.h:28
 msgid "A wobbly blob distorts images behind it. Written by Jon Dowdall; 2003."
-msgstr ""
+msgstr "Стекающий сгусток искажает изображение позади себя. Автор Джон Даудолл; 2003."
 
 #: ../hacks/config/mismunch.xml.h:1
 msgid "Mismunch"
-msgstr ""
+msgstr "Недожёвывание"
 
 #: ../hacks/config/mismunch.xml.h:9 ../hacks/config/munch.xml.h:9
 msgid "Simultaneous squares"
@@ -6776,7 +6848,7 @@ msgstr "Одновременные квадраты"
 #: ../hacks/config/mismunch.xml.h:11 ../hacks/config/munch.xml.h:14
 #: ../hacks/config/qix.xml.h:22
 msgid "XOR"
-msgstr ""
+msgstr "Исключающее ИЛИ (XOR)"
 
 #: ../hacks/config/mismunch.xml.h:14
 msgid ""
@@ -6784,21 +6856,21 @@ msgid ""
 "version 5.08. It was merged with the \"Munch\" screen saver. Munching "
 "errors! This is a creatively broken misimplementation of the classic "
 "munching squares graphics hack. See the \"Munch\" screen saver for the "
-"original. https://en.wikipedia.org/wiki/HAKMEM https://en.wikipedia.org/wiki/"
-"Munching_square Written by Steven Hazel; 2004."
-msgstr ""
+"original. https://en.wikipedia.org/wiki/HAKMEM "
+"https://en.wikipedia.org/wiki/Munching_square Written by Steven Hazel; 2004."
+msgstr "Эта заставка была удалена из дистрибутива XScreenSaver версии 5.08. Она была объединена с экранной заставкой \"Жевание\". Жевание давало сбои! Это творчески сломанная неправильная реализация классических жующих квадратов. См. хранитель экрана \"Жевание\" для оригинала. https://en.wikipedia.org/wiki/HAKMEM https://en.wikipedia.org/wiki/Munching_square Автор: Стивен Хейзел; 2004."
 
 #: ../hacks/config/moebius.xml.h:1
 msgid "Moebius"
-msgstr ""
+msgstr "Мёбиус"
 
 #: ../hacks/config/moebius.xml.h:5
 msgid "Solid floor"
-msgstr "СплоÑ\88наÑ\8f Ð¿Ð¾Ð²ÐµÑ\80Ñ\85ноÑ\81Ñ\82Ñ\8c"
+msgstr "СплоÑ\88ной Ð¿Ð¾Ð»"
 
 #: ../hacks/config/moebius.xml.h:6
 msgid "Draw ants"
-msgstr "Прорисовывать муравьев"
+msgstr "Прорисовывать муравьёв"
 
 #: ../hacks/config/moebius.xml.h:8
 msgid ""
@@ -6806,31 +6878,31 @@ msgid ""
 "surface of a moebius strip. https://en.wikipedia.org/wiki/Moebius_strip "
 "https://en.wikipedia.org/wiki/Maurits_Cornelis_Escher Written by Marcelo F. "
 "Vianna; 1997."
-msgstr ""
+msgstr "M.C. Эшер \"Лента Мёбиуса II\", образ муравьев, идущих по поверхности ленты Мёбиуса. https://en.wikipedia.org/wiki/Moebius_strip https://en.wikipedia.org/wiki/Maurits_Cornelis_Escher Автор Марсело Ф. Вианна; 1997."
 
 #: ../hacks/config/moebiusgears.xml.h:1
 msgid "MoebiusGears"
-msgstr ""
+msgstr "Шестерёнки Мебиуса"
 
 #: ../hacks/config/moebiusgears.xml.h:8
 msgid "Number of gears"
-msgstr "Количество шестеренок"
+msgstr "Количество шестерёнок"
 
 #: ../hacks/config/moebiusgears.xml.h:9
 msgid "Number of teeth"
-msgstr "Ð\9aолиÑ\87еÑ\81Ñ\82во Ð·Ñ\83бÑ\86ов"
+msgstr "Ð\9aолиÑ\87еÑ\81Ñ\82во Ð·Ñ\83бÑ\8cев"
 
 #: ../hacks/config/moebiusgears.xml.h:15
 msgid ""
 "An interlinked loop of rotating gears. The layout of the gears follows the "
 "path of a moebius strip. See also the \"Pinion\" and \"Gears\" screen "
-"savers. https://en.wikipedia.org/wiki/Involute_gear https://en.wikipedia.org/"
-"wiki/Moebius_strip Written by Jamie Zawinski; 2007."
-msgstr ""
+"savers. https://en.wikipedia.org/wiki/Involute_gear "
+"https://en.wikipedia.org/wiki/Moebius_strip Written by Jamie Zawinski; 2007."
+msgstr "Взаимосвязанное вращение шестерёнок. Компоновка шестерёнок следует путём ленты Мёбиуса. Смотрите также  хранители экрана: \"Круглая шестерёнка\" и \"Шестерёнка\". https://en.wikipedia.org/wiki/Involute_gear https://en.wikipedia.org/wiki/Moebius_strip Автор: Джейми Завински; 2007."
 
 #: ../hacks/config/moire.xml.h:1
 msgid "Moire"
-msgstr ""
+msgstr "Муар"
 
 #: ../hacks/config/moire.xml.h:9 ../hacks/config/rorschach.xml.h:5
 msgid "Offset"
@@ -6841,23 +6913,23 @@ msgid ""
 "When the lines on the screen Make more lines in between, That's a moire'! "
 "https://en.wikipedia.org/wiki/Moire_pattern Written by Jamie Zawinski and "
 "Michael Bayne; 1997."
-msgstr ""
+msgstr "Когда  на экране можно сделать больше линий, чем линий между ними - это муар! https://en.wikipedia.org/wiki/Moire_pattern Автор Джейми Завински и Майкл Бейн; 1997."
 
 #: ../hacks/config/moire2.xml.h:1
 msgid "Moire2"
-msgstr ""
+msgstr "Муар2"
 
 #: ../hacks/config/moire2.xml.h:10
 msgid ""
 "Generates fields of concentric circles or ovals, and combines the planes "
-"with various operations. The planes are moving independently of one another, "
-"causing the interference lines to spray. https://en.wikipedia.org/wiki/"
-"Moire_pattern Written by Jamie Zawinski; 1998."
-msgstr ""
+"with various operations. The planes are moving independently of one another,"
+" causing the interference lines to spray. "
+"https://en.wikipedia.org/wiki/Moire_pattern Written by Jamie Zawinski; 1998."
+msgstr "Формирует поля концентрических окружностей или овалов и сочетает в себе плоскости с различными операциями. Плоскости движутся независимо друг от друга, в результате чего появляются интерференционные линии для распыления. https://en.wikipedia.org/wiki/Moire_pattern Автор: Джейми Завински; 1998."
 
 #: ../hacks/config/molecule.xml.h:1
 msgid "Molecule"
-msgstr ""
+msgstr "Молекула"
 
 #: ../hacks/config/molecule.xml.h:8
 msgid "Label atoms"
@@ -6869,7 +6941,7 @@ msgstr "Описание молекулы"
 
 #: ../hacks/config/molecule.xml.h:12
 msgid "Draw atomic nuclei"
-msgstr "Прорисовывать частицы атомов"
+msgstr "Прорисовывать атомные ядра"
 
 #: ../hacks/config/molecule.xml.h:13
 msgid "Draw atomic bonds"
@@ -6887,13 +6959,14 @@ msgstr "Файл или папка PDB"
 #, no-c-format
 msgid ""
 "Some interesting molecules. Several molecules are built in, and it can also "
-"read PDB (Protein Data Bank) files as input. https://en.wikipedia.org/wiki/"
-"Protein_Data_Bank_%28file_format%29 Written by Jamie Zawinski; 2001."
-msgstr ""
+"read PDB (Protein Data Bank) files as input. "
+"https://en.wikipedia.org/wiki/Protein_Data_Bank_%28file_format%29 Written by"
+" Jamie Zawinski; 2001."
+msgstr "Некоторые интересные молекулы. Несколько молекул встроены, заставка также может читать PDB (Protein Data Bank/Банк Белковых Данных) файлы в качестве входных данных. https://en.wikipedia.org/wiki/Protein_Data_Bank_%28file_format%29 Автор: Джейми Завински; 2001."
 
 #: ../hacks/config/morph3d.xml.h:1
 msgid "Morph3D"
-msgstr ""
+msgstr "3D-превращение"
 
 #: ../hacks/config/morph3d.xml.h:7 ../hacks/config/polyhedra.xml.h:30
 #: ../hacks/config/sballs.xml.h:7
@@ -6917,13 +6990,14 @@ msgstr "Икосаэдр"
 
 #: ../hacks/config/morph3d.xml.h:12
 msgid ""
-"Platonic solids that turn inside out and get spikey. https://en.wikipedia."
-"org/wiki/Platonic_solid Written by Marcelo Vianna; 1997."
-msgstr ""
+"Platonic solids that turn inside out and get spikey. "
+"https://en.wikipedia.org/wiki/Platonic_solid Written by Marcelo Vianna; "
+"1997."
+msgstr "Выворачивая наизнанку Платоновы тела - получаем колючку. https://en.wikipedia.org/wiki/Platonic_solid Автор Марсело Вианна; 1997."
 
 #: ../hacks/config/mountain.xml.h:1
 msgid "Mountain"
-msgstr ""
+msgstr "Гора"
 
 #: ../hacks/config/mountain.xml.h:6
 msgid "Peaks"
@@ -6933,23 +7007,23 @@ msgstr "Пики"
 msgid ""
 "Generates random 3D plots that look vaguely mountainous. Written by Pascal "
 "Pensa; 1997."
-msgstr ""
+msgstr "Генерирует случайные 3D графики, которые выглядят как смутные горы. Автор: Паскаль Пенза; 1997."
 
 #: ../hacks/config/munch.xml.h:1
 msgid "Munch"
-msgstr ""
+msgstr "Жевание"
 
 #: ../hacks/config/munch.xml.h:11
 msgid "Munch or mismunch"
-msgstr "Соединение Ð¸Ð»Ð¸ Ñ\80азделение"
+msgstr "Ð\96еваÑ\82Ñ\8c Ð¸Ð»Ð¸ Ð½Ðµ Ð¶ÐµÐ²Ð°Ñ\82Ñ\8c"
 
 #: ../hacks/config/munch.xml.h:12
 msgid "Munch only"
-msgstr "Только соединение"
+msgstr "Только жевать"
 
 #: ../hacks/config/munch.xml.h:13
 msgid "Mismunch only"
-msgstr "Только разделение"
+msgstr "Только не жевать"
 
 #: ../hacks/config/munch.xml.h:17
 msgid ""
@@ -6957,28 +7031,28 @@ msgid ""
 "Memo 239, 1972), Jackson Wright wrote the above PDP-1 code in 1962. That "
 "code still lives on here, some 46 years later. In \"mismunch\" mode, it "
 "displays a creatively broken misimplementation of the classic munching "
-"squares algorithm instead. https://en.wikipedia.org/wiki/HAKMEM https://en."
-"wikipedia.org/wiki/Munching_square Written by Jackson Wright, Tim Showalter, "
-"Jamie Zawinski and Steven Hazel; 1997."
-msgstr ""
+"squares algorithm instead. https://en.wikipedia.org/wiki/HAKMEM "
+"https://en.wikipedia.org/wiki/Munching_square Written by Jackson Wright, Tim"
+" Showalter, Jamie Zawinski and Steven Hazel; 1997."
+msgstr "DATAI 2 ADDB 1,2 ROTC 2, -22 XOR 1,2 JRST.-4 Как сообщает HAKMEM (MIT AI Memo 239, 1972), Джексон Райт написал вышенаписанный код PDP-1 в 1962 году. Этот код до сих пор живёт, 46 лет спустя. В режиме \"Недожёвывание\", он отображает творчески сломанный недореализованный алгоритм классического жевания квадратами вместо этого. https://en.wikipedia.org/wiki/HAKMEM https://en.wikipedia.org/wiki/Munching_square Автор: Джексон Райт Тим Шоуолтер, Джейми Завински и Стивен Хейзел; 1997."
 
 #: ../hacks/config/nerverot.xml.h:1
 msgid "NerveRot"
-msgstr ""
+msgstr "Корень нерва"
 
 #: ../hacks/config/nerverot.xml.h:9
 msgid "Blot count"
 msgstr "Количество пятен"
 
 #: ../hacks/config/nerverot.xml.h:12 ../hacks/config/raverhoop.xml.h:6
-#: ../hacks/config/topblock.xml.h:14
+#: ../hacks/config/razzledazzle.xml.h:9 ../hacks/config/topblock.xml.h:14
 msgid "Colors"
 msgstr "Цвета"
 
 #: ../hacks/config/nerverot.xml.h:13 ../hacks/config/pyro.xml.h:8
 #: ../hacks/config/splodesic.xml.h:5
 msgid "Seldom"
-msgstr "Редкие"
+msgstr "Редкий"
 
 #: ../hacks/config/nerverot.xml.h:14
 msgid "Changes"
@@ -6986,7 +7060,7 @@ msgstr "Изменения"
 
 #: ../hacks/config/nerverot.xml.h:15
 msgid "Frequent"
-msgstr "Ð\9fоÑ\81Ñ\82оÑ\8fннÑ\8bе"
+msgstr "Ð\9fоÑ\81Ñ\82оÑ\8fннÑ\8bй"
 
 #: ../hacks/config/nerverot.xml.h:16
 msgid "Calm"
@@ -7002,57 +7076,88 @@ msgstr "Припадочный"
 
 #: ../hacks/config/nerverot.xml.h:19
 msgid "Crunchiness"
-msgstr "РазÑ\80Ñ\8bв"
+msgstr "Ð¥Ñ\80Ñ\83Ñ\81Ñ\82коÑ\81Ñ\82Ñ\8c"
 
 #: ../hacks/config/nerverot.xml.h:22
 msgid "Nervously vibrating squiggles. Written by Dan Bornstein; 2000."
-msgstr ""
+msgstr "Нервно-вибрационные закорючки. Автор Дэн Борнстейн; 2000."
 
 #: ../hacks/config/noof.xml.h:1
 msgid "Noof"
-msgstr ""
+msgstr "Нуф"
 
 #: ../hacks/config/noof.xml.h:6
 msgid "Flowery, rotatey patterns. Written by Bill Torzewski; 2004."
-msgstr ""
+msgstr "Цветочные, вращающиеся узоры. Автор Билл Торзевский; 2004."
 
 #: ../hacks/config/noseguy.xml.h:1
 msgid "NoseGuy"
-msgstr ""
+msgstr "Носатый парень"
 
 #: ../hacks/config/noseguy.xml.h:3
 msgid ""
 "A little man with a big nose wanders around your screen saying things. "
 "Written by Dan Heller and Jamie Zawinski; 1992."
-msgstr ""
+msgstr "Маленький человечек с большим носом бродит по экрану и делает замечания. Авторы: Дэн Хеллер и Джейми Завински; 1992 год."
 
 #: ../hacks/config/pacman.xml.h:1
 msgid "Pacman"
-msgstr ""
+msgstr "Игра Pacman"
 
 #: ../hacks/config/pacman.xml.h:5
 msgid "Player size"
-msgstr "РазмеÑ\80 Ð¿Ð»ÐµÐ¹ÐµÑ\80а"
+msgstr "Размер плеера"
 
 #: ../hacks/config/pacman.xml.h:7
 msgid ""
-"Simulates a game of Pac-Man on a randomly-created level. https://en."
-"wikipedia.org/wiki/Pac-Man Written by Edwin de Jong and Jamie Zawinski; 2004."
-msgstr ""
+"Simulates a game of Pac-Man on a randomly-created level. "
+"https://en.wikipedia.org/wiki/Pac-Man Written by Edwin de Jong and Jamie "
+"Zawinski; 2004."
+msgstr "Имитирует игру PaсMan на случайно созданном уровне. https://en.wikipedia.org/wiki/Pac-Man Автор Эдвин де Йонг и Джейми Завински; 2004."
 
 #: ../hacks/config/pedal.xml.h:1
 msgid "Pedal"
-msgstr ""
+msgstr "Педаль"
 
 #: ../hacks/config/pedal.xml.h:10
 msgid ""
 "The even-odd winding rule. https://en.wikipedia.org/wiki/Even-odd_rule "
 "https://en.wikipedia.org/wiki/Nonzero-rule Written by Dale Moore; 1995."
-msgstr ""
+msgstr "Правило обмотки чёт-нечёт. https://en.wikipedia.org/wiki/Even-odd_rule https://en.wikipedia.org/wiki/Nonzero-rule. Автор: Дейл Мур; 1995."
+
+#: ../hacks/config/peepers.xml.h:1
+msgid "Peepers"
+msgstr "Гляделки"
+
+#: ../hacks/config/peepers.xml.h:9
+msgid "Number of eyes"
+msgstr "Количество глаз"
+
+#: ../hacks/config/peepers.xml.h:12
+msgid "Scroll"
+msgstr "Прокрутка"
+
+#: ../hacks/config/peepers.xml.h:13
+msgid "Bounce or scroll"
+msgstr "Отскок или прокрутка"
+
+#: ../hacks/config/peepers.xml.h:14
+msgid "Grid"
+msgstr "Сетка"
+
+#: ../hacks/config/peepers.xml.h:15
+msgid "Beholder"
+msgstr "Очевидец"
+
+#: ../hacks/config/peepers.xml.h:18
+msgid ""
+"Floating eyeballs. Anatomically correct, and they also track the pointer. "
+"Written by Jamie Zawinski; 2018."
+msgstr "Плавающие глазные яблоки. Анатомически правильно, и они также отслеживают указатель. Автор Джейми Завински; 2018."
 
 #: ../hacks/config/penetrate.xml.h:1
 msgid "Penetrate"
-msgstr ""
+msgstr "Проникнуть"
 
 #: ../hacks/config/penetrate.xml.h:3
 msgid "Explosions"
@@ -7068,13 +7173,13 @@ msgstr "Всегда играть хорошо"
 
 #: ../hacks/config/penetrate.xml.h:9
 msgid ""
-"Simulates (something like) the classic arcade game Missile Command. https://"
-"en.wikipedia.org/wiki/Missile_Command Written by Adam Miller; 1999."
-msgstr ""
+"Simulates (something like) the classic arcade game Missile Command. "
+"https://en.wikipedia.org/wiki/Missile_Command Written by Adam Miller; 1999."
+msgstr "Имитация (что-то вроде) классической аркадной игры Missile Command. https://en.wikipedia.org/wiki/Missile_Command Автор Адам Миллер; 1999 год."
 
 #: ../hacks/config/penrose.xml.h:1
 msgid "Penrose"
-msgstr ""
+msgstr "Пенроуз"
 
 #: ../hacks/config/penrose.xml.h:11
 msgid "Draw ammann lines"
@@ -7087,18 +7192,18 @@ msgid ""
 "black holes, and whether time has a beginning, filed a copyright-"
 "infringement lawsuit against the Kimberly-Clark Corporation, which Penrose "
 "said copied a pattern he created (a pattern demonstrating that \"a "
-"nonrepeating pattern could exist in nature\") for its Kleenex quilted toilet "
-"paper. Penrose said he doesn't like litigation but, \"When it comes to the "
+"nonrepeating pattern could exist in nature\") for its Kleenex quilted toilet"
+" paper. Penrose said he doesn't like litigation but, \"When it comes to the "
 "population of Great Britain being invited by a multinational to wipe their "
-"bottoms on what appears to be the work of a Knight of the Realm, then a last "
-"stand must be taken.\" As reported by News of the Weird #491, 4-Jul-1997. "
-"https://en.wikipedia.org/wiki/Penrose_tiling https://en.wikipedia.org/wiki/"
-"Tessellation Written by Timo Korvola; 1997."
-msgstr ""
+"bottoms on what appears to be the work of a Knight of the Realm, then a last"
+" stand must be taken.\" As reported by News of the Weird #491, 4-Jul-1997. "
+"https://en.wikipedia.org/wiki/Penrose_tiling "
+"https://en.wikipedia.org/wiki/Tessellation Written by Timo Korvola; 1997."
+msgstr "Квазипериодические тайлинги. В апреле 1997 года сэр Роджер Пенроуз, британский профессор математики, который работал со Стивеном Хокингом по таким темам как относительности, чёрные дыры, а также имеет ли время начало, подал иск о нарушении авторских прав на интеллектуальную собственность против Kimberly-Clark Corporation, которая скопировала узор, который создал Пенроуз (узор, демонстрирующий, что \"подобный узор может существовать в природе\"). Пенроуз сказал, что он не любит судебных процессов, но \"Когда дело доходит до Великобритании, то меры должны быть приняты\". Как сообщили Новости странностей #491, 4-июл-1997. https://en.wikipedia.org/wiki/Penrose_tiling https://en.wikipedia.org/wiki/Tessellation Автор Тимо Корвола; 1997."
 
 #: ../hacks/config/petri.xml.h:1
 msgid "Petri"
-msgstr ""
+msgstr "Петри"
 
 #: ../hacks/config/petri.xml.h:6
 msgid "Square"
@@ -7114,11 +7219,11 @@ msgstr "Бриллиант"
 
 #: ../hacks/config/petri.xml.h:9
 msgid "Fertility"
-msgstr "Размножение"
+msgstr "Ð\9fлодовиÑ\82оÑ\81Ñ\82Ñ\8c"
 
 #: ../hacks/config/petri.xml.h:11
 msgid "Offspring"
-msgstr "Ð\9fоÑ\82омки"
+msgstr "Ð\9fоÑ\82омок"
 
 #: ../hacks/config/petri.xml.h:13
 msgid "Slowly"
@@ -7158,17 +7263,17 @@ msgstr "Максимальное время жизни"
 
 #: ../hacks/config/petri.xml.h:27
 msgid "Mold varieties"
-msgstr "Разновидности форм"
+msgstr "Разновидности плесени"
 
 #: ../hacks/config/petri.xml.h:28
 msgid ""
 "Colonies of mold grow in a petri dish. Growing colored circles overlap and "
 "leave spiral interference in their wake. Written by Dan Bornstein; 1999."
-msgstr ""
+msgstr "Рост колонии плесени в чашке Петри. В процессе роста цветных кругов они перекрываются и в случае помехи на своем пути закручиваются в спираль. Автор Дэн Борнстейн; 1999 год."
 
 #: ../hacks/config/phosphor.xml.h:1
 msgid "Phosphor"
-msgstr ""
+msgstr "Фосфор"
 
 #: ../hacks/config/phosphor.xml.h:5
 msgid "Font scale"
@@ -7180,11 +7285,11 @@ msgid ""
 "Linux, this program is also a fully-functional VT100 emulator! Run it as an "
 "application instead of as a screen saver and you can use it as a terminal. "
 "Written by Jamie Zawinski; 1999."
-msgstr ""
+msgstr "Старый терминал с большими пикселями и давно выгоревшим люминофором. На MacOS и Linux эта программа полностью функциональна как эмулятор VT100! Запустите её как приложение, а не как экранную заставку, и вы сможете использовать её в качестве терминала. Автор: Джейми Завински; 1999 год."
 
 #: ../hacks/config/photopile.xml.h:1
 msgid "Photopile"
-msgstr ""
+msgstr "Куча фотографий"
 
 #: ../hacks/config/photopile.xml.h:3
 msgid "Image size"
@@ -7204,11 +7309,11 @@ msgstr "90 градусов"
 
 #: ../hacks/config/photopile.xml.h:9
 msgid "Simulate instant film"
-msgstr "СимÑ\83лиÑ\80оваÑ\82Ñ\8c Ð¼Ð¾Ð¼ÐµÐ½Ñ\82алÑ\8cнÑ\83Ñ\8e Ñ\84оÑ\82огÑ\80аÑ\84иÑ\8e"
+msgstr "Ð\98миÑ\82аÑ\86иÑ\8f Ð±Ñ\8bÑ\81Ñ\82Ñ\80ой ÐºÐ¸Ð½Ð¾Ð»ÐµÐ½Ñ\82Ñ\8b"
 
 #: ../hacks/config/photopile.xml.h:10
 msgid "Instant film theme"
-msgstr "Тема Ð±Ñ\8bÑ\81Ñ\82Ñ\80ой Ð¿Ð»ÐµÐ½ÐºÐ¸"
+msgstr "Тема Ð±Ñ\8bÑ\81Ñ\82Ñ\80ой ÐºÐ¸Ð½Ð¾Ð»ÐµÐ½Ñ\82Ñ\8b"
 
 #: ../hacks/config/photopile.xml.h:11
 msgid "Draw drop shadows"
@@ -7216,18 +7321,18 @@ msgstr "Прорисовывать падающие тени"
 
 #: ../hacks/config/photopile.xml.h:23
 msgid ""
-"Loads several random images, and displays them as if lying in a random pile. "
-"The pile is periodically reshuffled, with new images coming in and old ones "
-"being thrown out. Written by Jens Kilian and Jamie Zawinski; 2008."
-msgstr ""
+"Loads several random images, and displays them as if lying in a random pile."
+" The pile is periodically reshuffled, with new images coming in and old ones"
+" being thrown out. Written by Jens Kilian and Jamie Zawinski; 2008."
+msgstr "Загружается несколько случайных изображений и в случайном порядке  сваливается в кучу. Куча периодически подзагружается новыми изображениями с заменой старых и дополнительно ещё и премешивается. Автор: Дженс Килиан и Джейми Завински; 2008 год."
 
 #: ../hacks/config/piecewise.xml.h:1
 msgid "Piecewise"
-msgstr ""
+msgstr "Кусочки"
 
 #: ../hacks/config/piecewise.xml.h:9
 msgid "Color shift"
-msgstr "Ð\98зменение Ñ\86веÑ\82а"
+msgstr "ЦвеÑ\82овой Ñ\81двиг"
 
 #: ../hacks/config/piecewise.xml.h:12
 msgid "Minimum radius"
@@ -7241,11 +7346,11 @@ msgstr "Максимальный радиус"
 msgid ""
 "Moving circles switch from visibility to invisibility at intersection "
 "points. Written by Geoffrey Irving; 2003."
-msgstr ""
+msgstr "Движущиеся круги переходят  в точки их  пересечения, от видимости к невидимости. Автор: Джеффри Ирвинг; 2003 год."
 
 #: ../hacks/config/pinion.xml.h:1
 msgid "Pinion"
-msgstr ""
+msgstr "Круглая шестерёнка"
 
 #: ../hacks/config/pinion.xml.h:8
 msgid "Scrolling speed"
@@ -7253,11 +7358,11 @@ msgstr "Скорость прокрутки"
 
 #: ../hacks/config/pinion.xml.h:10
 msgid "Gear size"
-msgstr "Размер шестеренок"
+msgstr "Размер шестерёнок"
 
 #: ../hacks/config/pinion.xml.h:12 ../hacks/config/projectiveplane.xml.h:34
 msgid "100"
-msgstr ""
+msgstr "100"
 
 #: ../hacks/config/pinion.xml.h:13
 msgid "Max RPM"
@@ -7265,18 +7370,18 @@ msgstr "Максимальное количество оборотов в мин
 
 #: ../hacks/config/pinion.xml.h:14
 msgid "2000"
-msgstr ""
+msgstr "2000"
 
 #: ../hacks/config/pinion.xml.h:17
 msgid ""
 "A gear system marches across the screen. See also the \"Gears\" and "
 "\"MoebiusGears\" screen savers. https://en.wikipedia.org/wiki/Involute_gear "
 "Written by Jamie Zawinski; 2004."
-msgstr ""
+msgstr "На экране целая система зубчатых шестерёнок. Смотрите также  хранители экрана: \"Шестерёнки\" и \"Шестерёнки Мебиуса\". https://en.wikipedia.org/wiki/Involute_gear Автор Джейми Завински; 2004."
 
 #: ../hacks/config/pipes.xml.h:1
 msgid "Pipes"
-msgstr ""
+msgstr "Трубы"
 
 #: ../hacks/config/pipes.xml.h:6
 msgid "Number of pipes"
@@ -7292,7 +7397,7 @@ msgstr "Длина трубы"
 
 #: ../hacks/config/pipes.xml.h:12
 msgid "Gadgetry"
-msgstr "УÑ\81Ñ\82Ñ\80ойÑ\81Ñ\82ва"
+msgstr "Ð\93аджеÑ\82"
 
 #: ../hacks/config/pipes.xml.h:14
 msgid "Fisheye lens"
@@ -7304,7 +7409,7 @@ msgstr "Разрешать крутые повороты"
 
 #: ../hacks/config/pipes.xml.h:16
 msgid "Curved pipes"
-msgstr "Искривленные трубы"
+msgstr "Искривлённые трубы"
 
 #: ../hacks/config/pipes.xml.h:17
 msgid "Ball joints"
@@ -7322,11 +7427,11 @@ msgstr "Случайный стиль"
 msgid ""
 "A growing plumbing system, with bolts and valves. Written by Marcelo Vianna "
 "and Jamie Zawinski; 1997."
-msgstr ""
+msgstr "Сантехнические системы в развитии (с помощью болтов и арматуры). Авторы: Марсело Вианна и Джейми Завински; 1997."
 
 #: ../hacks/config/polyhedra.xml.h:1
 msgid "Polyhedra"
-msgstr ""
+msgstr "Многогранники"
 
 #: ../hacks/config/polyhedra.xml.h:11
 msgid "Display random polyhedron"
@@ -7366,7 +7471,7 @@ msgstr "Пентаграммический трапецоэдр"
 
 #: ../hacks/config/polyhedra.xml.h:20
 msgid "Pentagrammic crossed antiprism"
-msgstr "Пентаграммическая скрещенная антипризма"
+msgstr "Пентаграммическая скрещённая антипризма"
 
 #: ../hacks/config/polyhedra.xml.h:21
 msgid "Pentagrammic concave deltohedron"
@@ -7374,7 +7479,7 @@ msgstr "Пентаграммический вогнутый трапецоэдр
 
 #: ../hacks/config/polyhedra.xml.h:23
 msgid "Truncated tetrahedron"
-msgstr "Усеченный тетраэдр"
+msgstr "Усечённый тетраэдр"
 
 #: ../hacks/config/polyhedra.xml.h:24
 msgid "Triakistetrahedron"
@@ -7406,7 +7511,7 @@ msgstr "Ромбический додекаэдр"
 
 #: ../hacks/config/polyhedra.xml.h:33
 msgid "Truncated octahedron"
-msgstr "Усеченный октаэдр"
+msgstr "Усечённый октаэдр"
 
 #: ../hacks/config/polyhedra.xml.h:34
 msgid "Tetrakishexahedron"
@@ -7414,7 +7519,7 @@ msgstr "Тетракисгексаэдр"
 
 #: ../hacks/config/polyhedra.xml.h:35
 msgid "Truncated cube"
-msgstr "Усеченный куб"
+msgstr "Усечённый куб"
 
 #: ../hacks/config/polyhedra.xml.h:36
 msgid "Triakisoctahedron"
@@ -7430,7 +7535,7 @@ msgstr "Дельтоидальный икоситетраэдр"
 
 #: ../hacks/config/polyhedra.xml.h:39
 msgid "Truncated cuboctahedron"
-msgstr "Усеченный кубооктаэдр"
+msgstr "Усечённый кубооктаэдр"
 
 #: ../hacks/config/polyhedra.xml.h:40
 msgid "Disdyakisdodecahedron"
@@ -7470,7 +7575,7 @@ msgstr "Гексагемиоктакрон"
 
 #: ../hacks/config/polyhedra.xml.h:49
 msgid "Cubitruncated cuboctahedron"
-msgstr "Кубоусеченный кубооктаэдр"
+msgstr "Кубоусечённый кубооктаэдр"
 
 #: ../hacks/config/polyhedra.xml.h:50
 msgid "Tetradyakishexahedron"
@@ -7494,7 +7599,7 @@ msgstr "Малый ромбогексакрон"
 
 #: ../hacks/config/polyhedra.xml.h:55
 msgid "Stellated truncated hexahedron"
-msgstr "Звездообразный усеченный гексаэдр"
+msgstr "Звёздообразный усечённый гексаэдр"
 
 #: ../hacks/config/polyhedra.xml.h:56
 msgid "Great triakisoctahedron"
@@ -7502,7 +7607,7 @@ msgstr "Большой триакисоктаэдр"
 
 #: ../hacks/config/polyhedra.xml.h:57
 msgid "Great truncated cuboctahedron"
-msgstr "Большой усеченный кубооктаэдр"
+msgstr "Большой усечённый кубооктаэдр"
 
 #: ../hacks/config/polyhedra.xml.h:58
 msgid "Great disdyakisdodecahedron"
@@ -7526,7 +7631,7 @@ msgstr "Ромботриаконтаэдр"
 
 #: ../hacks/config/polyhedra.xml.h:65
 msgid "Truncated icosahedron"
-msgstr "Усеченный икосаэдр"
+msgstr "Усечённый икосаэдр"
 
 #: ../hacks/config/polyhedra.xml.h:66
 msgid "Pentakisdodecahedron"
@@ -7534,7 +7639,7 @@ msgstr "Пентакисдодекаэдр"
 
 #: ../hacks/config/polyhedra.xml.h:67
 msgid "Truncated dodecahedron"
-msgstr "Усеченный додекаэдр"
+msgstr "Усечённый додекаэдр"
 
 #: ../hacks/config/polyhedra.xml.h:68
 msgid "Triakisicosahedron"
@@ -7550,7 +7655,7 @@ msgstr "Дельтоидальный гексеконтаэдр"
 
 #: ../hacks/config/polyhedra.xml.h:71
 msgid "Truncated icosidodecahedron"
-msgstr "Усеченный икосододекаэдр"
+msgstr "Усечённый икосододекаэдр"
 
 #: ../hacks/config/polyhedra.xml.h:72
 msgid "Disdyakistriacontahedron"
@@ -7598,7 +7703,7 @@ msgstr "Малый додекакронный гексеконтаэдр"
 
 #: ../hacks/config/polyhedra.xml.h:83
 msgid "Small stellated dodecahedron"
-msgstr "Малый звездообразный додекаэдр"
+msgstr "Малый звёздообразный додекаэдр"
 
 #: ../hacks/config/polyhedra.xml.h:84
 msgid "Great dodecahedron"
@@ -7614,11 +7719,11 @@ msgstr "Средний ромбический триаконтаэдр"
 
 #: ../hacks/config/polyhedra.xml.h:87
 msgid "Truncated great dodecahedron"
-msgstr "Усеченный большой додекаэдр"
+msgstr "Усечённый большой додекаэдр"
 
 #: ../hacks/config/polyhedra.xml.h:88
 msgid "Small stellapentakisdodecahedron"
-msgstr "Малый звездчатый пентакисдодекаэдр"
+msgstr "Малый звёздчатый пентакисдодекаэдр"
 
 #: ../hacks/config/polyhedra.xml.h:89
 msgid "Rhombidodecadodecahedron"
@@ -7678,7 +7783,7 @@ msgstr "Средний икосакронный гексеконтаэдр"
 
 #: ../hacks/config/polyhedra.xml.h:103
 msgid "Icositruncated dodecadodecahedron"
-msgstr "Икосоусеченный додекододекаэдр"
+msgstr "Икосоусечённый додекододекаэдр"
 
 #: ../hacks/config/polyhedra.xml.h:104
 msgid "Tridyakisicosahedron"
@@ -7734,7 +7839,7 @@ msgstr "Малый додекогемидодекакрон"
 
 #: ../hacks/config/polyhedra.xml.h:117
 msgid "Great stellated dodecahedron"
-msgstr "Большой звездообразный додекаэдр"
+msgstr "Большой звёздообразный додекаэдр"
 
 #: ../hacks/config/polyhedra.xml.h:118
 msgid "Great icosahedron"
@@ -7750,11 +7855,11 @@ msgstr "Большой ромбический триаконтаэдр"
 
 #: ../hacks/config/polyhedra.xml.h:121
 msgid "Great truncated icosahedron"
-msgstr "Большой усеченный икосаэдр"
+msgstr "Большой усечённый икосаэдр"
 
 #: ../hacks/config/polyhedra.xml.h:122
 msgid "Great stellapentakisdodecahedron"
-msgstr "Большой звездчатый пентакисдодекаэдр"
+msgstr "Большой звёздчатый пентакисдодекаэдр"
 
 #: ../hacks/config/polyhedra.xml.h:123
 msgid "Rhombicosahedron"
@@ -7774,7 +7879,7 @@ msgstr "Большой пентагональный гексеконтаэдр"
 
 #: ../hacks/config/polyhedra.xml.h:127
 msgid "Small stellated truncated dodecahedron"
-msgstr "Малый звездообразный усеченный додекаэдр"
+msgstr "Малый звёздообразный усечённый додекаэдр"
 
 #: ../hacks/config/polyhedra.xml.h:128
 msgid "Great pentakisdodecahedron"
@@ -7782,7 +7887,7 @@ msgstr "Большой пентакисдодекаэдр"
 
 #: ../hacks/config/polyhedra.xml.h:129
 msgid "Truncated dodecadodecahedron"
-msgstr "Усеченный додекододекаэдр"
+msgstr "Усечённый додекододекаэдр"
 
 #: ../hacks/config/polyhedra.xml.h:130
 msgid "Medial disdyakistriacontahedron"
@@ -7838,7 +7943,7 @@ msgstr "Большой додекогемиикосакрон"
 
 #: ../hacks/config/polyhedra.xml.h:143
 msgid "Great stellated truncated dodecahedron"
-msgstr "Большой звездообразный додекаэдр"
+msgstr "Большой звёздообразный додекаэдр"
 
 #: ../hacks/config/polyhedra.xml.h:144
 msgid "Great triakisicosahedron"
@@ -7854,7 +7959,7 @@ msgstr "Большой дельтоидальный гексеконтаэдр"
 
 #: ../hacks/config/polyhedra.xml.h:147
 msgid "Great truncated icosidodecahedron"
-msgstr "Большой усеченный икосододекаэдр"
+msgstr "Большой усечённый икосододекаэдр"
 
 #: ../hacks/config/polyhedra.xml.h:148
 msgid "Great disdyakistriacontahedron"
@@ -7927,15 +8032,16 @@ msgstr "Показать описание"
 #: ../hacks/config/polyhedra.xml.h:169
 msgid ""
 "The 75 uniform polyhedra and their duals, plus 5 prisms and antiprisms, and "
-"some information about each. https://en.wikipedia.org/wiki/Uniform_polyhedra "
-"https://en.wikipedia.org/wiki/Stellation https://en.wikipedia.org/wiki/"
-"Dual_polyhedron https://en.wikipedia.org/wiki/Antiprism Written by Dr. Zvi "
-"Har'El and Jamie Zawinski; 2004."
-msgstr ""
+"some information about each. https://en.wikipedia.org/wiki/Uniform_polyhedra"
+" https://en.wikipedia.org/wiki/Stellation "
+"https://en.wikipedia.org/wiki/Dual_polyhedron "
+"https://en.wikipedia.org/wiki/Antiprism Written by Dr. Zvi Har'El and Jamie "
+"Zawinski; 2004."
+msgstr "75 форм многогранников и их сопряжений, плюс 5 призм и антипризм, а также некоторые сведения о каждом из них. https://en.wikipedia.org/wiki/Uniform_polyhedra https://en.wikipedia.org/wiki/Stellation https://en.wikipedia.org/wiki/Dual_polyhedron https://en.wikipedia.org/wiki/Antiprism Авторы: доктор Цви Харьел и Джейми Завински; 2004."
 
 #: ../hacks/config/polyominoes.xml.h:1
 msgid "Polyominoes"
-msgstr ""
+msgstr "Полимино"
 
 #: ../hacks/config/polyominoes.xml.h:2
 msgid "Identical pieces"
@@ -7946,11 +8052,11 @@ msgid ""
 "Repeatedly attempts to completely fill a rectangle with irregularly-shaped "
 "puzzle pieces. https://en.wikipedia.org/wiki/Polyomino Written by Stephen "
 "Montgomery-Smith; 2002."
-msgstr ""
+msgstr "Неоднократные попытки решения головоломки по заполнению прямоугольника кусочками различной формы (Тетрис). https://en.wikipedia.org/wiki/Polyomino Автор: Стивен Монтгомери-Смит; 2002 год."
 
 #: ../hacks/config/polytopes.xml.h:1
 msgid "Polytopes"
-msgstr ""
+msgstr "Многогранники"
 
 #: ../hacks/config/polytopes.xml.h:6
 msgid "5-cell (hyper-tetrahedron)"
@@ -7987,17 +8093,18 @@ msgstr "Цвета с глубиной 4D"
 #: ../hacks/config/polytopes.xml.h:30
 msgid ""
 "The six regular 4D polytopes rotating in 4D. Inspired by H.S.M Coxeter's "
-"book \"Regular Polytopes\", 3rd Edition, Dover Publications, Inc., 1973, and "
-"Thomas Banchoff's book \"Beyond the Third Dimension: Geometry, Computer "
+"book \"Regular Polytopes\", 3rd Edition, Dover Publications, Inc., 1973, and"
+" Thomas Banchoff's book \"Beyond the Third Dimension: Geometry, Computer "
 "Graphics, and Higher Dimensions\", Scientific American Library, 1990. "
-"https://en.wikipedia.org/wiki/Hypercube https://en.wikipedia.org/wiki/"
-"Tesseract https://en.wikipedia.org/wiki/Regular_polytope Written by Carsten "
-"Steger; 2003."
-msgstr ""
+"https://en.wikipedia.org/wiki/Hypercube "
+"https://en.wikipedia.org/wiki/Tesseract "
+"https://en.wikipedia.org/wiki/Regular_polytope Written by Carsten Steger; "
+"2003."
+msgstr "Шесть 4D-многогранников вращаются в 4D. Из книги Коксетера  \"Обычные многогранники\", 3-е издание, Dover Publications, Inc., 1973, и книги Томаса Банчофа  \"За пределами третьего измерения: Геометрия, Компьютерная графика, а также - более высокие измерения\", Научно-американская библиотека, 1990. https://en.wikipedia.org/wiki/Hypercube https://en.wikipedia.org/wiki/Tesseract https://en.wikipedia.org/wiki/Regular_polytope Автор: Карстен Штегер; 2003."
 
 #: ../hacks/config/pong.xml.h:1
 msgid "Pong"
-msgstr ""
+msgstr "Понг"
 
 #: ../hacks/config/pong.xml.h:3
 msgid "Game speed"
@@ -8007,10 +8114,6 @@ msgstr "Скорость игры"
 msgid "Crisp"
 msgstr "Треск"
 
-#: ../hacks/config/pong.xml.h:6
-msgid "Noise"
-msgstr "Шум"
-
 #: ../hacks/config/pong.xml.h:7
 msgid "Noisy"
 msgstr "Шумно"
@@ -8022,18 +8125,18 @@ msgstr "Режим отображения времени"
 #: ../hacks/config/pong.xml.h:14
 msgid ""
 "The 1971 Pong home video game, including artifacts of an old color TV set. "
-"In clock mode, the score keeps track of the current time. https://en."
-"wikipedia.org/wiki/Pong Written by Jeremy English, Trevor Blackwell and "
-"Jamie Zawinski; 2003."
-msgstr ""
+"In clock mode, the score keeps track of the current time. "
+"https://en.wikipedia.org/wiki/Pong Written by Jeremy English, Trevor "
+"Blackwell and Jamie Zawinski; 2003."
+msgstr "Понг — домашняя видеоигра 1971 в виде старого цветного телевизора. В тактовом  режиме отслеживает текущее время. https://en.wikipedia.org/wiki/Pong Автор Джереми Инглиш, Тревор Блэквелл и Джейми Завински; 2003 год."
 
 #: ../hacks/config/popsquares.xml.h:1
 msgid "PopSquares"
-msgstr ""
+msgstr "Лопающиеся квадраты"
 
 #: ../hacks/config/popsquares.xml.h:5
 msgid "Subdivision"
-msgstr "Разделение"
+msgstr "Ð\9fодÑ\80аздел"
 
 #: ../hacks/config/popsquares.xml.h:8
 msgid "Light red"
@@ -8041,11 +8144,11 @@ msgstr "Светло-красный"
 
 #: ../hacks/config/popsquares.xml.h:9
 msgid "Light yellow"
-msgstr "Светло-желтый"
+msgstr "Светло-жёлтый"
 
 #: ../hacks/config/popsquares.xml.h:10
 msgid "Light green"
-msgstr "Светло-зеленый"
+msgstr "Светло-зелёный"
 
 #: ../hacks/config/popsquares.xml.h:11
 msgid "Light cyan"
@@ -8061,27 +8164,27 @@ msgstr "Светло-пурпурный"
 
 #: ../hacks/config/popsquares.xml.h:14
 msgid "Dark red"
-msgstr "Темно-красный"
+msgstr "Тёмно-красный"
 
 #: ../hacks/config/popsquares.xml.h:15
 msgid "Dark yellow"
-msgstr "Темно-желтый"
+msgstr "Тёмно-жёлтый"
 
 #: ../hacks/config/popsquares.xml.h:16
 msgid "Dark green"
-msgstr "Темно-зеленый"
+msgstr "Тёмно-зелёный"
 
 #: ../hacks/config/popsquares.xml.h:17
 msgid "Dark cyan"
-msgstr "Темно-голубой"
+msgstr "Тёмно-голубой"
 
 #: ../hacks/config/popsquares.xml.h:18
 msgid "Dark blue"
-msgstr "Темно-синий"
+msgstr "Тёмно-синий"
 
 #: ../hacks/config/popsquares.xml.h:19
 msgid "Dark magenta"
-msgstr "Темно-пурпурный"
+msgstr "Тёмно-пурпурный"
 
 #: ../hacks/config/popsquares.xml.h:20
 msgid "Twitch"
@@ -8090,11 +8193,11 @@ msgstr "Рывок"
 #: ../hacks/config/popsquares.xml.h:22
 msgid ""
 "A pop-art-ish looking grid of pulsing colors. Written by Levi Burton; 2003."
-msgstr ""
+msgstr "Поп-арт сетка пульсирующих цветов. Автор: Леви Бертон; 2003 год."
 
 #: ../hacks/config/projectiveplane.xml.h:1
 msgid "ProjectivePlane"
-msgstr ""
+msgstr "Проективная плоскость"
 
 #: ../hacks/config/projectiveplane.xml.h:8 ../hacks/config/romanboy.xml.h:20
 msgid "Distance bands"
@@ -8114,7 +8217,7 @@ msgstr "Цвета направления"
 
 #: ../hacks/config/projectiveplane.xml.h:21
 msgid "-4"
-msgstr ""
+msgstr "-4"
 
 #: ../hacks/config/projectiveplane.xml.h:22
 msgid "WX speed"
@@ -8122,7 +8225,7 @@ msgstr "Скорость WX"
 
 #: ../hacks/config/projectiveplane.xml.h:23
 msgid "4"
-msgstr ""
+msgstr "4"
 
 #: ../hacks/config/projectiveplane.xml.h:24
 msgid "WY speed"
@@ -8146,19 +8249,19 @@ msgstr "Скорость YZ"
 
 #: ../hacks/config/projectiveplane.xml.h:29
 msgid "-180"
-msgstr ""
+msgstr "-180"
 
 #: ../hacks/config/projectiveplane.xml.h:30
 msgid "Walk dir     "
-msgstr "Направление движения"
+msgstr "Направление ходьбы     "
 
 #: ../hacks/config/projectiveplane.xml.h:31
 msgid "180"
-msgstr ""
+msgstr "180"
 
 #: ../hacks/config/projectiveplane.xml.h:33
 msgid "Walk speed"
-msgstr "Скорость движения"
+msgstr "Скорость ходьбы"
 
 #: ../hacks/config/projectiveplane.xml.h:44
 msgid ""
@@ -8166,17 +8269,19 @@ msgid ""
 "the real projective plane or rotate it in 4D or walk on it while it rotates "
 "in 4D. Inspired by Thomas Banchoff's book \"Beyond the Third Dimension: "
 "Geometry, Computer Graphics, and Higher Dimensions\", Scientific American "
-"Library, 1990. https://en.wikipedia.org/wiki/Real_projective_plane https://"
-"en.wikipedia.org/wiki/Roman_surface https://en.wikipedia.org/wiki/Cross_cap "
-"https://en.wikipedia.org/wiki/Moebius_strip http://mathworld.wolfram.com/"
-"RealProjectivePlane.html http://mathworld.wolfram.com/RomanSurface.html "
-"http://mathworld.wolfram.com/Cross-Cap.html http://mathworld.wolfram.com/"
-"MoebiusStrip.html Written by Carsten Steger; 2014."
-msgstr ""
+"Library, 1990. https://en.wikipedia.org/wiki/Real_projective_plane "
+"https://en.wikipedia.org/wiki/Roman_surface "
+"https://en.wikipedia.org/wiki/Cross_cap "
+"https://en.wikipedia.org/wiki/Moebius_strip "
+"http://mathworld.wolfram.com/RealProjectivePlane.html "
+"http://mathworld.wolfram.com/RomanSurface.html http://mathworld.wolfram.com"
+"/Cross-Cap.html http://mathworld.wolfram.com/MoebiusStrip.html Written by "
+"Carsten Steger; 2014."
+msgstr "4D-вложение вещественной проективной плоскости. Вы можете ходить по поверхности вещественной проективной плоскости или повернуть её в 4D, или ходить по ней, пока она вращается в 4D. Из книги Томаса Банкхоффа  \"Вне третьего измерения: Геометрия, компьютерная графика, и более высокие измерения\", Научно-американская библиотека, 1990. https://en.wikipedia.org/wiki/Real_projective_plane https://en.wikipedia.org/wiki/Roman_surface https://en.wikipedia.org/wiki/Cross_cap https://en.wikipedia.org/wiki/Moebius_strip http://mathworld.wolfram.com/RealProjectivePlane.html http://mathworld.wolfram.com/RomanSurface.html http://mathworld.wolfram.com/Cross-Cap.html http://mathworld.wolfram.com/MoebiusStrip.html Автор: Карстен Штегер; 2014."
 
 #: ../hacks/config/providence.xml.h:1
 msgid "Providence"
-msgstr ""
+msgstr "Предусмотрительность"
 
 #: ../hacks/config/providence.xml.h:5
 msgid "Draw eye"
@@ -8187,11 +8292,11 @@ msgid ""
 "\"A pyramid unfinished. In the zenith an eye in a triangle, surrounded by a "
 "glory, proper.\" https://en.wikipedia.org/wiki/Eye_of_Providence Written by "
 "Blair Tennessy; 2004."
-msgstr ""
+msgstr "Усечённая пирамида, на вершине которой, окруженный собственной славой, глаз в треугольнике. https://en.wikipedia.org/wiki/Eye_of_Providence Автор: Блэр Теннесси; 2004."
 
 #: ../hacks/config/pulsar.xml.h:1
 msgid "Pulsar"
-msgstr ""
+msgstr "Пульсар"
 
 #: ../hacks/config/pulsar.xml.h:5
 msgid "Quad count"
@@ -8203,11 +8308,11 @@ msgstr "Включить текстурирование"
 
 #: ../hacks/config/pulsar.xml.h:9
 msgid "Enable texture mipmaps"
-msgstr "Включить множественное отображение текстур"
+msgstr "Включить MIP-текстурирование"
 
 #: ../hacks/config/pulsar.xml.h:10
 msgid "Enable blending"
-msgstr "Включить перемешивание"
+msgstr "Включить смешивание"
 
 #: ../hacks/config/pulsar.xml.h:11
 msgid "Anti-alias lines"
@@ -8225,11 +8330,11 @@ msgstr "Включить буфер глубины"
 msgid ""
 "Intersecting planes, with alpha blending, fog, textures, and mipmaps. "
 "Written by David Konerding; 1999."
-msgstr ""
+msgstr "Пересекающиеся плоскости с альфа-смешиванием, туманом, текстурами и MIP-текстурированием. Автор: Дэвид Конердинг; 1999."
 
 #: ../hacks/config/pyro.xml.h:1
 msgid "Pyro"
-msgstr ""
+msgstr "Пирозапал"
 
 #: ../hacks/config/pyro.xml.h:6
 msgid "Particle density"
@@ -8245,17 +8350,17 @@ msgstr "Сила взрыва"
 
 #: ../hacks/config/pyro.xml.h:15
 msgid ""
-"Exploding fireworks. See also the \"Fireworkx\", \"Eruption\", and \"XFlame"
-"\" screen savers. Written by Jamie Zawinski; 1992."
-msgstr ""
+"Exploding fireworks. See also the \"Fireworkx\", \"Eruption\", and "
+"\"XFlame\" screen savers. Written by Jamie Zawinski; 1992."
+msgstr "Взрыв фейерверков. Смотрите также хранители экрана: \"Фейерверк\", \"Извержение\" и \"Х-пламя\". Автор Джейми Завински; 1992 год."
 
 #: ../hacks/config/qix.xml.h:1
 msgid "Qix"
-msgstr ""
+msgstr "Qix"
 
 #: ../hacks/config/qix.xml.h:12
 msgid "Line segments"
-msgstr "СегменÑ\82Ñ\8b Ð»Ð¸Ð½Ð¸Ð¹"
+msgstr "Ð\9eÑ\82Ñ\80езки"
 
 #: ../hacks/config/qix.xml.h:13
 msgid "Solid objects"
@@ -8267,11 +8372,11 @@ msgstr "Линейное движение"
 
 #: ../hacks/config/qix.xml.h:16
 msgid "Additive colors"
-msgstr "Ð\94обавление Ñ\86веÑ\82ов"
+msgstr "Ð\90ддиÑ\82ивнÑ\8bе Ñ\86веÑ\82а"
 
 #: ../hacks/config/qix.xml.h:17
 msgid "Subtractive colors"
-msgstr "Ð\92Ñ\8bÑ\87иÑ\82ание Ñ\86веÑ\82ов"
+msgstr "СÑ\83бÑ\82Ñ\80акÑ\82ивнÑ\8bе Ñ\86веÑ\82а"
 
 #: ../hacks/config/qix.xml.h:19
 msgid "Max size"
@@ -8279,19 +8384,19 @@ msgstr "Максимальный размер"
 
 #: ../hacks/config/qix.xml.h:20
 msgid "Poly corners"
-msgstr "Ð\9fолигонÑ\8b"
+msgstr "Ð\9cногоÑ\83голÑ\8cники"
 
 #: ../hacks/config/qix.xml.h:25
 msgid ""
 "Bounces a series of line segments around the screen, and uses variations on "
 "this basic motion pattern to produce all sorts of different presentations: "
-"line segments, filled polygons, and overlapping translucent areas. https://"
-"en.wikipedia.org/wiki/Qix Written by Jamie Zawinski; 1992."
-msgstr ""
+"line segments, filled polygons, and overlapping translucent areas. "
+"https://en.wikipedia.org/wiki/Qix Written by Jamie Zawinski; 1992."
+msgstr "Отскок отрезков друг от друга по экрану, использование вариаций на этом базовом узоре движения, чтобы воспроизводить все виды различных презентаций: отрезков, заполненных многоугольников и перекрывающихся полупрозрачных областей. https://en.wikipedia.org/wiki/Qix Авто: Джейми Завински; 1992."
 
 #: ../hacks/config/quasicrystal.xml.h:1
 msgid "QuasiCrystal"
-msgstr ""
+msgstr "Квазикристалл"
 
 #: ../hacks/config/quasicrystal.xml.h:9
 msgid "Contrast"
@@ -8299,31 +8404,31 @@ msgstr "Контраст"
 
 #: ../hacks/config/quasicrystal.xml.h:14
 msgid ""
-"A quasicrystal is a structure that is ordered but aperiodic. Two-dimensional "
-"quasicrystals can be generated by adding a set of planes where x is the sine "
-"of y. Different complex aperiodic plane tilings are produced depending on "
-"the period, position, and rotation of the component planes, and whether the "
-"rotation of the planes is evenly distributed around the circle (the "
+"A quasicrystal is a structure that is ordered but aperiodic. Two-dimensional"
+" quasicrystals can be generated by adding a set of planes where x is the "
+"sine of y. Different complex aperiodic plane tilings are produced depending "
+"on the period, position, and rotation of the component planes, and whether "
+"the rotation of the planes is evenly distributed around the circle (the "
 "\"symmetry\" option, above) or random. See also the \"RD-Bomb\", \"CWaves\" "
 "and \"Penrose\" screen savers. https://en.wikipedia.org/wiki/Quasicrystal "
 "Written by Jamie Zawinski; 2013."
-msgstr ""
+msgstr "Квазикристалл является структурой, которая упорядочена, но апериодически. Двумерные квазикристаллы могут быть получены путём добавления множества плоскостей, где х - синус у. Различные сложные апериодические плоскоские тайлинги производятся в зависимости от периода, положения и вращения плоскостей компонентов; вращение плоскостей распределяется равномерно по кругу (опция \"симметрия\", выше), или случайным образом. Смотрите также экранные заставки \"RD-бомба\", \"C-волны\" и \"Пенроуз\". https://en.wikipedia.org/wiki/Quasicrystal Автор: Джейми Завински; 2013 год."
 
 #: ../hacks/config/queens.xml.h:1
 msgid "Queens"
-msgstr ""
+msgstr "Ферзи"
 
 #: ../hacks/config/queens.xml.h:7
 msgid ""
 "The N-Queens problem: how to place N queens on an NxN chessboard such that "
-"no queen can attack a sister? See also the \"Endgame\" screen saver. https://"
-"en.wikipedia.org/wiki/Eight_queens_puzzle Written by Blair Tennessy and "
-"Jamie Zawinski; 2002."
-msgstr ""
+"no queen can attack a sister? See also the \"Endgame\" screen saver. "
+"https://en.wikipedia.org/wiki/Eight_queens_puzzle Written by Blair Tennessy "
+"and Jamie Zawinski; 2002."
+msgstr "Проблема N-ферзей: как разместить N ферзей на шахматной доске NxN,  так, чтобы ни один ферзь не смог атаковать другого? Смотрите также экранную заставку \"Эндшпиль\". https://en.wikipedia.org/wiki/Eight_queens_puzzle Авторы: Блэр Tеннесси и Джейми Завински; 2002."
 
 #: ../hacks/config/raverhoop.xml.h:1
 msgid "RaverHoop"
-msgstr ""
+msgstr "Непослушный обруч"
 
 #: ../hacks/config/raverhoop.xml.h:9
 msgid "Lights"
@@ -8335,7 +8440,7 @@ msgstr "Скорость, движение"
 
 #: ../hacks/config/raverhoop.xml.h:14
 msgid "Speed, lights"
-msgstr "Скорость, свет"
+msgstr "Скорость, источники света"
 
 #: ../hacks/config/raverhoop.xml.h:16
 msgid "Sustain"
@@ -8345,11 +8450,43 @@ msgstr "Выдержка"
 msgid ""
 "Simulates an LED hula hoop in a dark room. Oontz oontz oontz. Written by "
 "Jamie Zawinski; 2016."
-msgstr ""
+msgstr "Имитирует светодиодный обруч в тёмной комнате. Уц Уц Уц. Автор Джейми Завински; 2016."
+
+#: ../hacks/config/razzledazzle.xml.h:1
+msgid "RazzleDazzle"
+msgstr "Суматоха"
+
+#: ../hacks/config/razzledazzle.xml.h:17
+msgid "Ship Outlines"
+msgstr "Контуры корабля"
+
+#: ../hacks/config/razzledazzle.xml.h:18
+msgid "Flat Pattern"
+msgstr "Плоский узор"
+
+#: ../hacks/config/razzledazzle.xml.h:19
+msgid "Ships or flat pattern"
+msgstr "Корабли или плоские узоры"
+
+#: ../hacks/config/razzledazzle.xml.h:22
+#, no-c-format
+msgid ""
+"Generates an infinitely-scrolling sequence of dazzle camouflage patterns. "
+"Dazzle Ships, in addition to being the best album by Orchestral Manoeuvres "
+"in the Dark, were military vessels during World War I and early in World War"
+" II that were painted not to conceal but to confuse: with these Cubist "
+"overlapping stripes, it was very hard to estimate their size, range and "
+"heading. This was a big deal before the invention of Radar. "
+"https://en.wikipedia.org/wiki/Dazzle_camouflage "
+"https://en.wikipedia.org/wiki/Cubism "
+"https://en.wikipedia.org/wiki/Dazzle_Ships_%28album%29 "
+"https://en.wikipedia.org/wiki/Acoustic_mirror "
+"https://en.wikipedia.org/wiki/Radar Written by Jamie Zawinski; 2018."
+msgstr "Создаёт бесконечно прокручивающуюся последовательность ослепительных камуфляжных узоров. Ослепляющие корабли, в дополнение к тому, чтобы быть лучшим альбомом группы \"Orchestral Maneuvers in the Dark\", были военными кораблями во время Первой мировой войны и в начале Второй мировой войны, которые были нарисованы не для того, чтобы скрываться, а чтобы путать: с этими кубистскими пересекающимися полосами было очень трудно оценить их размер, ассортимент и курс. Это было большое дело до изобретения радара. hhttps://en.wikipedia.org/wiki/Dazzle_camouflage https://en.wikipedia.org/wiki/Cubism https://en.wikipedia.org/wiki/Dazzle_Ships_%28album%29 https://en.wikipedia.org/wiki/Acoustic_mirror https://en.wikipedia.org/wiki/Radar Автор Джейми Завински; 2018."
 
 #: ../hacks/config/rd-bomb.xml.h:1 ../hacks/config/rdbomb.xml.h:1
 msgid "RDbomb"
-msgstr ""
+msgstr "Диффузная бомба"
 
 #: ../hacks/config/rd-bomb.xml.h:5 ../hacks/config/rdbomb.xml.h:5
 #: ../hacks/config/voronoi.xml.h:12
@@ -8359,10 +8496,10 @@ msgstr "Скорость блуждания"
 #: ../hacks/config/rd-bomb.xml.h:7 ../hacks/config/rdbomb.xml.h:7
 #, no-c-format
 msgid "1%"
-msgstr ""
+msgstr "1%"
 
 #: ../hacks/config/rd-bomb.xml.h:8 ../hacks/config/rdbomb.xml.h:8
-#: ../hacks/config/tessellimage.xml.h:14
+#: ../hacks/config/tessellimage.xml.h:17
 msgid "Fill screen"
 msgstr "Заполнить экран"
 
@@ -8389,26 +8526,26 @@ msgstr "Диффузия"
 #. #### default is wrong
 #: ../hacks/config/rd-bomb.xml.h:23 ../hacks/config/rdbomb.xml.h:23
 msgid "Seed radius"
-msgstr "Радиус зерен"
+msgstr "Радиус зёрен"
 
 #: ../hacks/config/rd-bomb.xml.h:24 ../hacks/config/rdbomb.xml.h:24
 msgid ""
 "Reaction-diffusion: draws a grid of growing square-like shapes that, once "
 "they overtake each other, react in unpredictable ways. Written by Scott "
 "Draves; 1997."
-msgstr ""
+msgstr "Реакция-диффузия: рисует сетку растущих квадратоподобных фигур, которые, как только они обгоняют друг друга, вступают в реакцию непредсказуемым образом. Автор: Скотт Дрейвес; 1997."
 
 #: ../hacks/config/ripples.xml.h:1
 msgid "Ripples"
-msgstr ""
+msgstr "Рябь"
 
 #: ../hacks/config/ripples.xml.h:8
 msgid "Drizzle"
-msgstr "Мелкий дождь"
+msgstr "Мелкий дождь (изморось)"
 
 #: ../hacks/config/ripples.xml.h:9
 msgid "Drippiness"
-msgstr "Темп"
+msgstr "Ð\9aапание"
 
 #: ../hacks/config/ripples.xml.h:10
 msgid "Storm"
@@ -8420,7 +8557,7 @@ msgstr "Маленькие капли"
 
 #: ../hacks/config/ripples.xml.h:12
 msgid "Fluidity"
-msgstr "СÑ\82епенÑ\8c Ñ\82екÑ\83Ñ\87еÑ\81Ñ\82и"
+msgstr "ТекÑ\83Ñ\87еÑ\81Ñ\82Ñ\8c"
 
 #: ../hacks/config/ripples.xml.h:13
 msgid "Big drops"
@@ -8446,11 +8583,11 @@ msgstr "Эффект волшебного освещения"
 msgid ""
 "Rippling interference patterns reminiscent of splashing water distort a "
 "loaded image. Written by Tom Hammersley; 1999."
-msgstr ""
+msgstr "Волнообразная рябь, напоминающая брызги воды, искажает загруженное изображение. Автор Том Хаммерсли; 1999 год."
 
 #: ../hacks/config/rocks.xml.h:1
 msgid "Rocks"
-msgstr ""
+msgstr "Астероиды"
 
 #: ../hacks/config/rocks.xml.h:9
 msgid "Velocity"
@@ -8458,15 +8595,15 @@ msgstr "Скорость"
 
 #: ../hacks/config/rocks.xml.h:12
 msgid "Steering"
-msgstr "Управление"
+msgstr "РÑ\83левое Ñ\83правление"
 
 #: ../hacks/config/rocks.xml.h:18
 msgid "An asteroid field zooms by. Written by Jamie Zawinski; 1992."
-msgstr ""
+msgstr "Астероид, изменяет изображение поля путём изменения масштаба. Автор: Джейми Завински; 1992."
 
 #: ../hacks/config/romanboy.xml.h:1
 msgid "RomanBoy"
-msgstr ""
+msgstr "Римский Бой"
 
 #: ../hacks/config/romanboy.xml.h:5
 msgid "Order of the surface"
@@ -8482,7 +8619,7 @@ msgstr "Скорость искажения"
 
 #: ../hacks/config/romanboy.xml.h:11
 msgid "0.0"
-msgstr ""
+msgstr "0.0"
 
 #: ../hacks/config/romanboy.xml.h:12
 msgid "Initial deformation"
@@ -8490,19 +8627,19 @@ msgstr "Начальное искажение"
 
 #: ../hacks/config/romanboy.xml.h:13
 msgid "1000.0"
-msgstr ""
+msgstr "1000.0"
 
 #: ../hacks/config/romanboy.xml.h:26
 msgid "Random Projection"
-msgstr "СлÑ\83Ñ\87айное Ð¸Ñ\81кажение"
+msgstr "СлÑ\83Ñ\87айнаÑ\8f Ð¿Ñ\80оекÑ\86иÑ\8f"
 
 #: ../hacks/config/romanboy.xml.h:27
 msgid "Perspective"
-msgstr "Ð\9fеÑ\80Ñ\81пекÑ\82ивное"
+msgstr "Ð\9fеÑ\80Ñ\81пекÑ\82ива"
 
 #: ../hacks/config/romanboy.xml.h:28
 msgid "Orthographic"
-msgstr "Ð\9eÑ\80Ñ\82огÑ\80аÑ\84иÑ\87еÑ\81кое"
+msgstr "Ð\9eÑ\80Ñ\82огÑ\80аÑ\84иÑ\87еÑ\81каÑ\8f"
 
 #: ../hacks/config/romanboy.xml.h:30
 msgid "X rotation speed"
@@ -8524,15 +8661,17 @@ msgid ""
 "real projective plane or rotate it in 3D. Furthermore, it is possible to "
 "smoothly deform the real projective plane between the Roman surface and the "
 "Boy surface while turning it or walking on it. Inspired by François Apéry's "
-"book \"Models of the Real Projective Plane\", Vieweg, 1987. https://en."
-"wikipedia.org/wiki/Boy%27s_surface https://en.wikipedia.org/wiki/"
-"Roman_surface http://mathworld.wolfram.com/BoySurface.html http://mathworld."
-"wolfram.com/RomanSurface.html Written by Carsten Steger; 2014."
-msgstr ""
+"book \"Models of the Real Projective Plane\", Vieweg, 1987. "
+"https://en.wikipedia.org/wiki/Boy%27s_surface "
+"https://en.wikipedia.org/wiki/Roman_surface "
+"http://mathworld.wolfram.com/BoySurface.html "
+"http://mathworld.wolfram.com/RomanSurface.html Written by Carsten Steger; "
+"2014."
+msgstr "3D-погружение вещественной проективной плоскости, которая плавно деформируется между римской поверхностью и поверхностью Боя. Вы можете ходить по поверхности вещественной проективной плоскости, или вращать её в 3D. Кроме того, можно плавно деформировать реальную проективную плоскость между римской поверхностью и поверхностью Боя, поворачивая её, или ходить по неё. Из книги Франсуа Апери \"Модели вещественной проективной плоскости\", Фивег, 1987. https://en.wikipedia.org/wiki/Boy%27s_surface https://en.wikipedia.org/wiki/Roman_surface http://mathworld.wolfram.com/BoySurface.html http://mathworld.wolfram.com/RomanSurface.html Автор: Карстен Штегер; 2014."
 
 #: ../hacks/config/rorschach.xml.h:1
 msgid "Rorschach"
-msgstr ""
+msgstr "Роршах"
 
 #: ../hacks/config/rorschach.xml.h:6
 msgid "With X symmetry"
@@ -8544,30 +8683,25 @@ msgstr "С симметрией Y"
 
 #: ../hacks/config/rorschach.xml.h:12
 msgid ""
-"Inkblot patterns via a reflected random walk. https://en.wikipedia.org/wiki/"
-"Rorschach_inkblot_test https://en.wikipedia.org/wiki/Random_walk Written by "
-"Jamie Zawinski; 1992."
-msgstr ""
+"Inkblot patterns via a reflected random walk. "
+"https://en.wikipedia.org/wiki/Rorschach_inkblot_test "
+"https://en.wikipedia.org/wiki/Random_walk Written by Jamie Zawinski; 1992."
+msgstr "Узоры чернильного пятна через отражение случайного блуждания. https://en.wikipedia.org/wiki/Rorschach_inkblot_test https://en.wikipedia.org/wiki/Random_walk Автор: Джейми Завински; 1992."
 
 #: ../hacks/config/rotor.xml.h:1
 msgid "Rotor"
-msgstr ""
-
-#: ../hacks/config/rotor.xml.h:6 ../hacks/config/skytentacles.xml.h:6
-#: ../hacks/config/wander.xml.h:9
-msgid "Length"
-msgstr "Длина"
+msgstr "Ротор"
 
 #: ../hacks/config/rotor.xml.h:14
 msgid ""
 "This screen saver was removed from the XScreenSaver distribution as of "
 "version 5.08. Draws a line segment moving along a complex spiraling curve. "
 "Written by Tom Lawrence; 1997."
-msgstr ""
+msgstr "Эта заставка была удалена из дистрибутива XScreenSaver версии 5.08. Рисует движение отрезка вдоль сложной спиралевидной кривой. Автор: Том Лоуренс; 1997."
 
 #: ../hacks/config/rotzoomer.xml.h:1
 msgid "RotZoomer"
-msgstr ""
+msgstr "Зумер"
 
 #: ../hacks/config/rotzoomer.xml.h:8
 msgid "Rectangle count"
@@ -8597,11 +8731,11 @@ msgstr "Анимировать"
 msgid ""
 "Distorts an image by rotating and scaling random sections of it. Written by "
 "Claudio Matsuoka and Jamie Zawinski; 2001."
-msgstr ""
+msgstr "Искажает изображение, поворачивая и масштабируя его случайные участки. Авторы Клаудио Мацуока и Джейми Завински; 2001."
 
 #: ../hacks/config/rubik.xml.h:1
 msgid "Rubik"
-msgstr ""
+msgstr "Рубик"
 
 #: ../hacks/config/rubik.xml.h:10
 msgid "Hide shuffling"
@@ -8611,24 +8745,26 @@ msgstr "Скрывать перетасовку"
 #, no-c-format
 msgid ""
 "A Rubik's Cube that repeatedly shuffles and solves itself. See also the "
-"\"GLSnake\" and \"Cube21\" screen savers. https://en.wikipedia.org/wiki/Rubik"
-"%27s_Cube Written by Marcelo Vianna; 1997."
-msgstr ""
+"\"GLSnake\" and \"Cube21\" screen savers. "
+"https://en.wikipedia.org/wiki/Rubik%27s_Cube Written by Marcelo Vianna; "
+"1997."
+msgstr "Кубик Рубика, который перемешивается и решается сам. Смотрите также заставки \"Змейка\" и \"Кубик21\". https://en.wikipedia.org/wiki/Rubik%27s_Cube Автор: Марсело Вианна; 1997."
 
 #: ../hacks/config/rubikblocks.xml.h:1
 msgid "RubikBlocks"
-msgstr ""
+msgstr "Блоки Рубика"
 
 #: ../hacks/config/rubikblocks.xml.h:21
 msgid ""
 "The \"Rubik's Mirror Blocks\" puzzle. See also the \"Rubik\", \"Cube21\", "
-"and \"GLSnake\" screen savers. https://en.wikipedia.org/wiki/"
-"Combination_puzzles#Irregular_cuboids Written by Vasek Potocek; 2009."
-msgstr ""
+"and \"GLSnake\" screen savers. "
+"https://en.wikipedia.org/wiki/Combination_puzzles#Irregular_cuboids Written "
+"by Vasek Potocek; 2009."
+msgstr "Головоломка \"Зеркальные блоки Рубика\". Смотрите также хранители экрана: \"Рубик\", \"Кубик21\" и \"GL-змейка\". https://en.wikipedia.org/wiki/Combination_puzzles#Irregular_cuboids Автор Васек Поточек; 2009 год."
 
 #: ../hacks/config/sballs.xml.h:1
 msgid "SBalls"
-msgstr ""
+msgstr "S-шары"
 
 #: ../hacks/config/sballs.xml.h:11
 msgid "Plane"
@@ -8644,21 +8780,21 @@ msgstr "Звезда"
 
 #: ../hacks/config/sballs.xml.h:17
 msgid "Textured balls spinning like crazy. Written by Eric Lassauge; 2002."
-msgstr ""
+msgstr "Текстурированные шарики крутятся, как сумасшедшие. Автор: Эрик Лассюж; 2002."
 
 #: ../hacks/config/shadebobs.xml.h:1
 msgid "ShadeBobs"
-msgstr ""
+msgstr "Тень пучков"
 
 #: ../hacks/config/shadebobs.xml.h:17
 msgid ""
 "Oscillating oval patterns that look something like vapor trails or neon "
 "tubes. Written by Shane Smit; 1999."
-msgstr ""
+msgstr "Колебательные овальные узоры, которые выглядят как следы паров или неоновых трубок. Автор: Шейн Смит; 1999."
 
 #: ../hacks/config/sierpinski.xml.h:1
 msgid "Sierpinski"
-msgstr ""
+msgstr "Серпинский"
 
 #: ../hacks/config/sierpinski.xml.h:6 ../hacks/config/surfaces.xml.h:22
 #: ../hacks/config/thornbird.xml.h:6 ../hacks/config/voronoi.xml.h:6
@@ -8670,22 +8806,22 @@ msgid ""
 "The 2D Sierpinski triangle fractal. See also the \"Sierpinski3D\" screen "
 "saver. https://en.wikipedia.org/wiki/Sierpinski_triangle Written by Desmond "
 "Daignault; 1997."
-msgstr ""
+msgstr "2D треугольный фрактал Серпинского. Смотрите также заставку \"Серпинский 3D\". https://en.wikipedia.org/wiki/Sierpinski_triangle Автор: Десмонд Дейнолт; 1997."
 
 #: ../hacks/config/sierpinski3d.xml.h:1
 msgid "Sierpinski3D"
-msgstr ""
+msgstr "Серпинский 3D"
 
 #: ../hacks/config/sierpinski3d.xml.h:11
 msgid ""
-"The recursive Sierpinski tetrahedron fractal. https://en.wikipedia.org/wiki/"
-"Sierpinski_triangle#Analogs_in_higher_dimension Written by Jamie Zawinski "
-"and Tim Robinson; 1999."
-msgstr ""
+"The recursive Sierpinski tetrahedron fractal. "
+"https://en.wikipedia.org/wiki/Sierpinski_triangle#Analogs_in_higher_dimension"
+" Written by Jamie Zawinski and Tim Robinson; 1999."
+msgstr "Рекурсивный фрактал-тетраэдр Серпинского. https://en.wikipedia.org/wiki/Sierpinski_triangle#Analogs_in_higher_dimension Авторы: Джейми Завински и Тим Робинсон; 1999."
 
 #: ../hacks/config/skytentacles.xml.h:1
 msgid "SkyTentacles"
-msgstr ""
+msgstr "Небесные шупальцы"
 
 #: ../hacks/config/skytentacles.xml.h:12
 msgid "Flexibility"
@@ -8693,7 +8829,7 @@ msgstr "Гибкость"
 
 #: ../hacks/config/skytentacles.xml.h:14
 msgid "Wiggliness"
-msgstr "Ð\94вижениÑ\8f"
+msgstr "Ð\92олниÑ\81Ñ\82оÑ\81Ñ\82Ñ\8c"
 
 #: ../hacks/config/skytentacles.xml.h:19
 msgid "X resolution"
@@ -8713,17 +8849,17 @@ msgstr "Мультяшный"
 
 #: ../hacks/config/skytentacles.xml.h:23
 msgid "Tentacles can intersect"
-msgstr "С Ñ\89Ñ\83палÑ\8cÑ\86ами Ð¼Ð¾Ð¶Ð½Ð¾ Ð²Ð·Ð°Ð¸Ð¼Ð¾Ð´ÐµÐ¹Ñ\81Ñ\82воваÑ\82Ñ\8c"
+msgstr "ЩÑ\83палÑ\8cÑ\86а Ð¼Ð¾Ð³Ñ\83Ñ\82 Ð¿ÐµÑ\80еÑ\81екаÑ\82Ñ\8cÑ\81Ñ\8f"
 
 #: ../hacks/config/skytentacles.xml.h:26
 msgid ""
 "There is a tentacled abomination in the sky. From above you it devours. "
 "Written by Jamie Zawinski; 2008."
-msgstr ""
+msgstr "Мерзкое существо со щупальцами в небе. Автор: Джейми Завински; 2008."
 
 #: ../hacks/config/slidescreen.xml.h:1
 msgid "SlideScreen"
-msgstr ""
+msgstr "Оползень экрана"
 
 #: ../hacks/config/slidescreen.xml.h:6
 msgid "Pause"
@@ -8740,37 +8876,42 @@ msgstr "Размер паза"
 #: ../hacks/config/slidescreen.xml.h:19
 msgid ""
 "A variant on a \"fifteen puzzle\", operating on the screen or an image. It "
-"divides the image into a grid and randomly shuffles the squares. https://en."
-"wikipedia.org/wiki/Fifteen_puzzle Written by Jamie Zawinski; 1994."
-msgstr ""
+"divides the image into a grid and randomly shuffles the squares. "
+"https://en.wikipedia.org/wiki/Fifteen_puzzle Written by Jamie Zawinski; "
+"1994."
+msgstr "Вариант \"Пятнашек\", работающий на экране или изображении. Он делит изображение на сетку и случайным образом перемешивает квадраты. https://en.wikipedia.org/wiki/Fifteen_puzzle Автор: Джейми Завински; 1994."
 
 #: ../hacks/config/slip.xml.h:1
 msgid "Slip"
-msgstr ""
+msgstr "Проскальзывание"
 
 #: ../hacks/config/slip.xml.h:14
 msgid ""
-"A jet engine consumes the screen, then puts it through a spin cycle. Written "
-"by Scott Draves and Jamie Zawinski; 1997."
-msgstr ""
+"A jet engine consumes the screen, then puts it through a spin cycle. Written"
+" by Scott Draves and Jamie Zawinski; 1997."
+msgstr "Реактивный двигатель поглощает экран, а затем проводит его через цикл вращения. Автор: Скотт Дрейвес и Джейми Завински; 1997."
 
 #: ../hacks/config/sonar.xml.h:1
 msgid "Sonar"
-msgstr ""
+msgstr "Гидролокатор"
 
 #: ../hacks/config/sonar.xml.h:8
 msgid "Ping local subnet"
 msgstr "Пинговать локальную подсеть"
 
-#.
-#. <option id="24" _label="Ping subnet/24 (254 hosts)" arg-set="-ping subnet/24"/>
-#. <option id="25" _label="Ping subnet/25 (126 hosts)" arg-set="-ping subnet/25"/>
-#. <option id="26" _label="Ping subnet/26 (62 hosts)"  arg-set="-ping subnet/26"/>
-#. <option id="27" _label="Ping subnet/27 (31 hosts)"  arg-set="-ping subnet/27"/>
+#. <option id="24" _label="Ping subnet/24 (254 hosts)" arg-set="-ping
+#. subnet/24"/>
+#. <option id="25" _label="Ping subnet/25 (126 hosts)" arg-set="-ping
+#. subnet/25"/>
+#. <option id="26" _label="Ping subnet/26 (62 hosts)"  arg-set="-ping
+#. subnet/26"/>
+#. <option id="27" _label="Ping subnet/27 (31 hosts)"  arg-set="-ping
+#. subnet/27"/>
 #. <option id="28" _label="Ping subnet/28 (14 hosts)"/>
-#. <option id="29" _label="Ping subnet/29 (6 hosts)"   arg-set="-ping subnet/29"/>
-#. <option id="30" _label="Ping subnet/30 (2 hosts)"   arg-set="-ping subnet/30"/>
-#.
+#. <option id="29" _label="Ping subnet/29 (6 hosts)"   arg-set="-ping
+#. subnet/29"/>
+#. <option id="30" _label="Ping subnet/30 (2 hosts)"   arg-set="-ping
+#. subnet/30"/>
 #: ../hacks/config/sonar.xml.h:18
 msgid "Ping known SSH hosts"
 msgstr "Пинговать известные хосты по SSH"
@@ -8805,7 +8946,7 @@ msgstr "Количество B"
 
 #: ../hacks/config/sonar.xml.h:31
 msgid "Resolve host names"
-msgstr "Ð\9fÑ\80еобÑ\80азовÑ\8bвать имена хостов"
+msgstr "Резолвить имена хостов"
 
 #: ../hacks/config/sonar.xml.h:32
 msgid "Show ping times"
@@ -8816,14 +8957,14 @@ msgid ""
 "A sonar display pings (get it?) the hosts on your local network, and plots "
 "their distance (response time) from you. The three rings represent ping "
 "times of approximately 2.5, 70 and 2,000 milliseconds respectively. "
-"Alternately, it can run a simulation that doesn't involve hosts. https://en."
-"wikipedia.org/wiki/Ping#History Written by Jamie Zawinski and Stephen "
-"Martin; 1998."
-msgstr ""
+"Alternately, it can run a simulation that doesn't involve hosts. "
+"https://en.wikipedia.org/wiki/Ping#History Written by Jamie Zawinski and "
+"Stephen Martin; 1998."
+msgstr "Дисплей гидролокатора пингует (ты вразумился?) хосты в вашей локальной сети, их расстояние (время отклика) от вас. Три кольца представляют собой пинг 2,5, 70 и 2000 миллисекунд соответственно. С другой стороны, дисплей может запустить моделирование, которое не предполагает хостов. https://en.wikipedia.org/wiki/Ping#History Авторы: Джейми Завински и Стефан Мартин; 1998 год."
 
 #: ../hacks/config/speedmine.xml.h:1
 msgid "SpeedMine"
-msgstr ""
+msgstr "Моя скорость"
 
 #: ../hacks/config/speedmine.xml.h:6
 msgid "Max velocity"
@@ -8843,7 +8984,7 @@ msgstr "Червь"
 
 #: ../hacks/config/speedmine.xml.h:12
 msgid "Rocky walls"
-msgstr "Ð\9aаменные стены"
+msgstr "СкалиÑ\81Ñ\82ые стены"
 
 #: ../hacks/config/speedmine.xml.h:13
 msgid "Allow wall collisions"
@@ -8861,55 +9002,47 @@ msgstr "Показывать перекрестье"
 msgid ""
 "Simulates speeding down a rocky mineshaft, or a funky dancing worm. Written "
 "by Conrad Parker; 2001."
-msgstr ""
+msgstr "Имитирует превышение скорости вниз по каменистой штольне, или танцы червя. Автор: Конрад Паркер; 2001."
 
 #: ../hacks/config/sphere.xml.h:9
 msgid ""
 "This screen saver was removed from the XScreenSaver distribution as of "
 "version 5.08. Draws shaded spheres in multiple colors. Written by Tom Duff "
 "and Jamie Zawinski; 1982, 1997."
-msgstr ""
+msgstr "Эта заставка была удалена из дистрибутива XScreenSaver версии 5.08. Рисует затенённые сферы в нескольких цветах. Автор: Том Дуфф и Джейми Завински; 1982, 1997."
 
 #: ../hacks/config/spheremonics.xml.h:1
 msgid "Spheremonics"
-msgstr ""
+msgstr "Моническик сферы"
 
 #: ../hacks/config/spheremonics.xml.h:18
 msgid "Smoothed lines"
-msgstr "Сглаживание Ð»Ð¸Ð½Ð¸Ð¹"
+msgstr "СглаженнÑ\8bе Ð»Ð¸Ð½Ð¸Ð¸"
 
 #: ../hacks/config/spheremonics.xml.h:23
 msgid ""
 "These closed objects are commonly called spherical harmonics, although they "
 "are only remotely related to the mathematical definition found in the "
 "solution to certain wave functions, most notably the eigenfunctions of "
-"angular momentum operators. https://en.wikipedia.org/wiki/"
-"Spherical_harmonics#Visualization_of_the_spherical_harmonics Written by Paul "
-"Bourke and Jamie Zawinski; 2002."
-msgstr ""
+"angular momentum operators. "
+"https://en.wikipedia.org/wiki/Spherical_harmonics#Visualization_of_the_spherical_harmonics"
+" Written by Paul Bourke and Jamie Zawinski; 2002."
+msgstr "Эти закрытые объекты обычно называются сферическими гармониками, хотя они лишь отдалённо связаны с математическим определением, найденного в решении определённых волновых функций, в первую очередь собственных функций операторов углового момента.  https://en.wikipedia.org/wiki/Spherical_harmonics#Visualization_of_the_spherical_harmonics Авторы: Пол Бурк и Джейми Завински; 2002."
 
 #: ../hacks/config/spiral.xml.h:1
 msgid "Spiral"
-msgstr ""
+msgstr "Спираль"
 
 #: ../hacks/config/spiral.xml.h:12
 msgid ""
 "This screen saver was removed from the XScreenSaver distribution as of "
 "version 5.08. Moving circular moire patterns. Written by Peter "
 "Schmitzberger; 1997."
-msgstr ""
+msgstr "Эта заставка была удалена из дистрибутива XScreenSaver версии 5.08. Перемещение круговых муарных узоров. Автор Питер Счмитзбергер; 1997."
 
 #: ../hacks/config/splitflap.xml.h:1
 msgid "SplitFlap"
-msgstr ""
-
-#: ../hacks/config/splitflap.xml.h:8
-msgid "Columns"
-msgstr "Столбцы"
-
-#: ../hacks/config/splitflap.xml.h:9
-msgid "Rows"
-msgstr "Строки"
+msgstr "Откидные створки"
 
 #: ../hacks/config/splitflap.xml.h:10
 msgid "Display text"
@@ -8929,11 +9062,11 @@ msgid ""
 "seen in airports and train stations, and commonly used in alarm clocks in "
 "the 1960s and 1970s. https://en.wikipedia.org/wiki/Split-flap_display "
 "https://en.wikipedia.org/wiki/Flip_clock Written by Jamie Zawinski; 2015."
-msgstr ""
+msgstr "Имитирует дисплей с откидными створками, старый стиль электромеханического табло, используемый в аэропортах и на вокзалах, а также в будильниках 1960-х и 1970-х годов. https://en.wikipedia.org/wiki/Split-flap_display https://en.wikipedia.org/wiki/Flip_clock Автор: Джейми Завински; 2015."
 
 #: ../hacks/config/splodesic.xml.h:1
 msgid "Splodesic"
-msgstr ""
+msgstr "Сплодэсик"
 
 #: ../hacks/config/splodesic.xml.h:6
 msgid "Eruption frequency"
@@ -8943,11 +9076,11 @@ msgstr "Частота извержений"
 msgid ""
 "A geodesic sphere experiences a series of eruptions. Written by Jamie "
 "Zawinski; 2016."
-msgstr ""
+msgstr "Геодезическая сфера испытывает серию извержений. Автор Джейми Завински; 2016."
 
 #: ../hacks/config/spotlight.xml.h:1
 msgid "Spotlight"
-msgstr ""
+msgstr "Прожектор"
 
 #: ../hacks/config/spotlight.xml.h:9
 msgid "Spotlight size"
@@ -8955,13 +9088,13 @@ msgstr "Размер прожектора"
 
 #: ../hacks/config/spotlight.xml.h:12
 msgid ""
-"A spotlight scanning across a black screen, illuminating a loaded image when "
-"it passes. Written by Rick Schultz and Jamie Zawinski; 1999."
-msgstr ""
+"A spotlight scanning across a black screen, illuminating a loaded image when"
+" it passes. Written by Rick Schultz and Jamie Zawinski; 1999."
+msgstr "Прожектор сканирует чёрный экран, частично освещая загруженное изображение. Авторы: Рик Шульц и Джейми Завински; 1999 год."
 
 #: ../hacks/config/sproingies.xml.h:1
 msgid "Sproingies"
-msgstr ""
+msgstr "Пружинисто"
 
 #: ../hacks/config/sproingies.xml.h:7
 msgid "Fall off edge"
@@ -8971,14 +9104,14 @@ msgstr "Падать с грани"
 #, no-c-format
 msgid ""
 "Slinky-like creatures walk down an infinite staircase and occasionally "
-"explode! https://en.wikipedia.org/wiki/Slinky https://en.wikipedia.org/wiki/Q"
-"%2Abert https://en.wikipedia.org/wiki/Marble_Madness Written by Ed Mackey; "
-"1997."
-msgstr ""
+"explode! https://en.wikipedia.org/wiki/Slinky "
+"https://en.wikipedia.org/wiki/Q%2Abert "
+"https://en.wikipedia.org/wiki/Marble_Madness Written by Ed Mackey; 1997."
+msgstr "Слинки-подобные существа идут вниз по бесконечной лестнице, а иногда взрываются! https://en.wikipedia.org/wiki/Slinky https://en.wikipedia.org/wiki/Q%2Abert https://en.wikipedia.org/wiki/Marble_Madness Автор: Эд Макки; 1997."
 
 #: ../hacks/config/squiral.xml.h:1
 msgid "Squiral"
-msgstr ""
+msgstr "Крадратные спирали"
 
 #: ../hacks/config/squiral.xml.h:5 ../hacks/config/twang.xml.h:9
 msgid "Randomness"
@@ -8990,7 +9123,7 @@ msgstr "Влево"
 
 #: ../hacks/config/squiral.xml.h:8
 msgid "Handedness"
-msgstr "Ð\9dапÑ\80авление"
+msgstr "Ð\9dапÑ\80авленноÑ\81Ñ\82Ñ\8c"
 
 #: ../hacks/config/squiral.xml.h:9
 msgid "Right"
@@ -9000,25 +9133,26 @@ msgstr "Вправо"
 msgid ""
 "Square-spiral-producing automata. The spirals grow outward until they hit "
 "something, then they go around it. Written by Jeff Epler; 1999."
-msgstr ""
+msgstr "Автомат производства квадратичных спиралей. Спирали растут наружу, пока они не поражают что-то, или движутся по кругу. Автор Джеф Эплер; 1999."
 
 #: ../hacks/config/stairs.xml.h:1
 msgid "Stairs"
-msgstr ""
+msgstr "Лестница"
 
 #: ../hacks/config/stairs.xml.h:6
 msgid ""
-"Escher's infinite staircase. https://en.wikipedia.org/wiki/"
-"Maurits_Cornelis_Escher Written by Marcelo Vianna and Jamie Zawinski; 1998."
-msgstr ""
+"Escher's infinite staircase. "
+"https://en.wikipedia.org/wiki/Maurits_Cornelis_Escher Written by Marcelo "
+"Vianna and Jamie Zawinski; 1998."
+msgstr "Бесконечная лестница Эшера. https://en.wikipedia.org/wiki/Maurits_Cornelis_Escher Авторы: Марсело Виана и Джейми Завински; 1998."
 
 #: ../hacks/config/starfish.xml.h:1
 msgid "Starfish"
-msgstr ""
+msgstr "Морская звезда"
 
 #: ../hacks/config/starfish.xml.h:3
 msgid "Color gradients"
-msgstr "Ð\93Ñ\80адиенÑ\82Ñ\8b Ñ\86веÑ\82ов"
+msgstr "ЦвеÑ\82овÑ\8bе Ð³Ñ\80адиенÑ\82Ñ\8b"
 
 #: ../hacks/config/starfish.xml.h:4
 msgid "Pulsating blob"
@@ -9030,31 +9164,31 @@ msgid ""
 "out. Another display mode uses these shapes to lay down a field of colors, "
 "which are then cycled. The motion is very organic. Written by Jamie "
 "Zawinski; 1997."
-msgstr ""
+msgstr "Неровные звёздообразные узоры пульсируют, вращаются и выворачиваются наизнанку. Другой режим отображения использует эти формы чтобы сложить поле цветов с цикличным режимом работы. Движение очень органично. Автор: Джейми Завински; 1997."
 
 #: ../hacks/config/starwars.xml.h:1
 msgid "StarWars"
-msgstr ""
+msgstr "Звёздные войны"
 
 #: ../hacks/config/starwars.xml.h:2
 msgid "  Frame rate      Low"
-msgstr "Частота кадров       Низкая"
+msgstr "  Частота кадров       Низкая"
 
 #: ../hacks/config/starwars.xml.h:4
 msgid "Scroll speed     Slow"
-msgstr "Скорость прокрутки Медленно"
+msgstr "Скорость прокрутки     Медленно"
 
 #: ../hacks/config/starwars.xml.h:6
 msgid " Stars speed     Slow"
-msgstr "Скорость звезд     Медленно"
+msgstr " Скорость звёзд     Медленно"
 
 #: ../hacks/config/starwars.xml.h:10
 msgid "Wrap long lines"
-msgstr "Ð\9eбÑ\80езаÑ\82Ñ\8c Ð´Ð»Ð¸Ð½Ð½Ñ\8bе Ñ\81Ñ\82Ñ\80оки"
+msgstr "Ð\9fеÑ\80еноÑ\81 Ð´Ð»Ð¸Ð½Ð½Ñ\8bÑ\85 Ñ\81Ñ\82Ñ\80ок"
 
 #: ../hacks/config/starwars.xml.h:11
 msgid "Texture-mapped font"
-msgstr "ШÑ\80иÑ\84Ñ\82 Ñ\81 Ñ\82екÑ\81Ñ\82Ñ\83Ñ\80ой"
+msgstr "ТекÑ\81Ñ\82Ñ\83Ñ\80иÑ\80ованнÑ\8bй Ñ\88Ñ\80иÑ\84Ñ\82"
 
 #: ../hacks/config/starwars.xml.h:12
 msgid "Anti-aliased lines"
@@ -9070,19 +9204,19 @@ msgstr "Затухание"
 
 #: ../hacks/config/starwars.xml.h:18
 msgid "or, Text columns"
-msgstr "или столбцов текста"
+msgstr "или столбцы текста"
 
 #: ../hacks/config/starwars.xml.h:19
 msgid ""
-"A stream of text slowly scrolling into the distance at an angle, over a star "
-"field, like at the beginning of the movie of the same name. https://en."
-"wikipedia.org/wiki/Star_Wars_opening_crawl Written by Jamie Zawinski and "
-"Claudio Matsuoka; 2001."
-msgstr ""
+"A stream of text slowly scrolling into the distance at an angle, over a star"
+" field, like at the beginning of the movie of the same name. "
+"https://en.wikipedia.org/wiki/Star_Wars_opening_crawl Written by Jamie "
+"Zawinski and Claudio Matsuoka; 2001."
+msgstr "Поток текста медленно прокручивается на расстоянии, под углом, над полем звезды, как в начале фильма с тем же названием. https://en.wikipedia.org/wiki/Star_Wars_opening_crawl Авторы: Джейми Завински и Клаудио Мацуока; 2001."
 
 #: ../hacks/config/stonerview.xml.h:1
 msgid "StonerView"
-msgstr ""
+msgstr "Просмотр Стоунера"
 
 #: ../hacks/config/stonerview.xml.h:6
 msgid "Translucent"
@@ -9094,11 +9228,11 @@ msgid ""
 "patterns. Inspired by David Tristram's `electropaint' screen saver, "
 "originally written for SGI computers in the late 1980s or early 1990s. "
 "Written by Andrew Plotkin; 2001."
-msgstr ""
+msgstr "Цепи красочных квадратов танцуют вокруг друг друга в сложных спиральных узорах.  Вдохновлённый скринсейвером Дэвида Тристраме `Гальванопластика', первоначально написаной для компьютеров SGI в конце 1980-х или начале 1990-х годов. Автор: Эндрю Плоткин; 2001."
 
 #: ../hacks/config/strange.xml.h:1
 msgid "Strange"
-msgstr ""
+msgstr "Странный"
 
 #: ../hacks/config/strange.xml.h:5
 msgid "Curviness"
@@ -9106,7 +9240,7 @@ msgstr "Кривизна"
 
 #: ../hacks/config/strange.xml.h:6
 msgid "1k"
-msgstr "1 000"
+msgstr "1000"
 
 #: ../hacks/config/strange.xml.h:7
 msgid "Number of points"
@@ -9114,7 +9248,7 @@ msgstr "Количество точек"
 
 #: ../hacks/config/strange.xml.h:8
 msgid "500k"
-msgstr "500 000"
+msgstr "500000"
 
 #: ../hacks/config/strange.xml.h:10 ../hacks/config/voronoi.xml.h:9
 msgid "Point size"
@@ -9123,12 +9257,12 @@ msgstr "Размер точки"
 #: ../hacks/config/strange.xml.h:13
 #, no-c-format
 msgid "10%"
-msgstr ""
+msgstr "10%"
 
 #: ../hacks/config/strange.xml.h:16
 #, no-c-format
 msgid "400%"
-msgstr ""
+msgstr "400%"
 
 #: ../hacks/config/strange.xml.h:17
 msgid "Brightness"
@@ -9136,14 +9270,14 @@ msgstr "Яркость"
 
 #: ../hacks/config/strange.xml.h:24
 msgid ""
-"Strange attractors: a swarm of dots swoops and twists around. https://en."
-"wikipedia.org/wiki/Attractor#Strange_attractor Written by Massimino Pascal; "
-"1997."
-msgstr ""
+"Strange attractors: a swarm of dots swoops and twists around. "
+"https://en.wikipedia.org/wiki/Attractor#Strange_attractor Written by "
+"Massimino Pascal; 1997."
+msgstr "Странные аттракторы: рой из точек с наскоками и поворотами вокруг.  https://en.wikipedia.org/wiki/Attractor#Strange_attractor Автор: Массимино Паскаль; 1997."
 
 #: ../hacks/config/substrate.xml.h:1
 msgid "Substrate"
-msgstr ""
+msgstr "Субстрат"
 
 #: ../hacks/config/substrate.xml.h:9
 msgid "Sand grains"
@@ -9152,15 +9286,15 @@ msgstr "Песчинки"
 #: ../hacks/config/substrate.xml.h:12
 #, no-c-format
 msgid "0%"
-msgstr ""
+msgstr "0%"
 
 #: ../hacks/config/substrate.xml.h:13
 msgid "Circle percentage"
-msgstr ""
+msgstr "Процент круга"
 
 #: ../hacks/config/substrate.xml.h:16
 msgid "Initial cracks"
-msgstr "Начальное количество разломов"
+msgstr "Начальные трещины"
 
 #: ../hacks/config/substrate.xml.h:17
 msgid "Wireframe only"
@@ -9175,11 +9309,11 @@ msgid ""
 "Crystalline lines grow on a computational substrate. A simple perpendicular "
 "growth rule creates intricate city-like structures. Written by J. Tarbell "
 "and Mike Kershaw; 2004."
-msgstr ""
+msgstr "Кристаллические линии растут на вычислительном субстрате. Простое правило роста создаёт сложные структуры, подобные городским. Авторы: Дж. Тарбелл и Майк Кершоу; 2004."
 
 #: ../hacks/config/superquadrics.xml.h:1
 msgid "Superquadrics"
-msgstr ""
+msgstr "Суперквадрики"
 
 #: ../hacks/config/superquadrics.xml.h:6
 msgid "Spin speed"
@@ -9187,11 +9321,11 @@ msgstr "Скорость вращения"
 
 #: ../hacks/config/superquadrics.xml.h:14
 msgid "Morphing 3D shapes. Written by Ed Mackey; 1987, 1997."
-msgstr ""
+msgstr "Преобразование 3D-фигур. Автор Эд Макки; 1987, 1997."
 
 #: ../hacks/config/surfaces.xml.h:1
 msgid "Surfaces"
-msgstr ""
+msgstr "Поверхности"
 
 #: ../hacks/config/surfaces.xml.h:8
 msgid "Random Surface"
@@ -9211,11 +9345,11 @@ msgstr "Поверхность Куэна"
 
 #: ../hacks/config/surfaces.xml.h:12
 msgid "Moebius Strip"
-msgstr "Ð\9fеÑ\82лÑ\8f Ð\9cебиуса"
+msgstr "Ð\9bенÑ\82а Ð\9cÑ\91биуса"
 
 #: ../hacks/config/surfaces.xml.h:13
 msgid "Seashell"
-msgstr "Ракушка"
+msgstr "Ð\9cоÑ\80Ñ\81каÑ\8f Ñ\80акушка"
 
 #: ../hacks/config/surfaces.xml.h:14
 msgid "Swallowtail"
@@ -9251,72 +9385,76 @@ msgstr "Случайный режим отображения"
 
 #: ../hacks/config/surfaces.xml.h:24
 msgid "Line Loops"
-msgstr "Ð\97амкнÑ\83Ñ\82ые линии"
+msgstr "Ð\9fеÑ\82левые линии"
 
 #: ../hacks/config/surfaces.xml.h:28
 msgid ""
-"Parametric surfaces. http://mathworld.wolfram.com/DinisSurface.html https://"
-"en.wikipedia.org/wiki/Enneper_surface http://mathworld.wolfram.com/"
-"EnnepersMinimalSurface.html http://mathworld.wolfram.com/KuenSurface.html "
-"https://en.wikipedia.org/wiki/Moebius_strip http://mathworld.wolfram.com/"
-"Seashell.html http://mathworld.wolfram.com/SwallowtailCatastrophe.html "
-"http://mathworld.wolfram.com/BohemianDome.html https://en.wikipedia.org/wiki/"
-"Whitney_umbrella http://mathworld.wolfram.com/PlueckersConoid.html http://"
-"mathworld.wolfram.com/HennebergsMinimalSurface.html http://mathworld.wolfram."
-"com/CatalansSurface.html http://mathworld.wolfram.com/CorkscrewSurface.html "
-"Written by Andrey Mirtchovski and Carsten Steger; 2003."
-msgstr ""
+"Parametric surfaces. http://mathworld.wolfram.com/DinisSurface.html "
+"https://en.wikipedia.org/wiki/Enneper_surface "
+"http://mathworld.wolfram.com/EnnepersMinimalSurface.html "
+"http://mathworld.wolfram.com/KuenSurface.html "
+"https://en.wikipedia.org/wiki/Moebius_strip "
+"http://mathworld.wolfram.com/Seashell.html "
+"http://mathworld.wolfram.com/SwallowtailCatastrophe.html "
+"http://mathworld.wolfram.com/BohemianDome.html "
+"https://en.wikipedia.org/wiki/Whitney_umbrella "
+"http://mathworld.wolfram.com/PlueckersConoid.html "
+"http://mathworld.wolfram.com/HennebergsMinimalSurface.html "
+"http://mathworld.wolfram.com/CatalansSurface.html "
+"http://mathworld.wolfram.com/CorkscrewSurface.html Written by Andrey "
+"Mirtchovski and Carsten Steger; 2003."
+msgstr "Параметрические поверхности. http://mathworld.wolfram.com/DinisSurface.html https://en.wikipedia.org/wiki/Enneper_surface http://mathworld.wolfram.com/EnnepersMinimalSurface.html http://mathworld.wolfram.com/KuenSurface.html https://en.wikipedia.org/wiki/Moebius_strip http://mathworld.wolfram.com/Seashell.html http://mathworld.wolfram.com/SwallowtailCatastrophe.html http://mathworld.wolfram.com/BohemianDome.html https://en.wikipedia.org/wiki/Whitney_umbrella http://mathworld.wolfram.com/PlueckersConoid.html http://mathworld.wolfram.com/HennebergsMinimalSurface.html http://mathworld.wolfram.com/CatalansSurface.html http://mathworld.wolfram.com/CorkscrewSurface.html Авторы: Андрей Мирчевский и Карстен Штегер; 2003."
 
 #: ../hacks/config/swirl.xml.h:1
 msgid "Swirl"
-msgstr ""
+msgstr "Вихрь"
 
 #: ../hacks/config/swirl.xml.h:12
 msgid "Flowing, swirly patterns. Written by M. Dobie and R. Taylor; 1997."
-msgstr ""
+msgstr "Текучие вихревые узоры. Авторы: М. Доби и Р. Тейлор; 1997 год."
 
 #: ../hacks/config/t3d.xml.h:1
 msgid "T3D"
-msgstr ""
+msgstr "T3D"
 
 #: ../hacks/config/t3d.xml.h:6
 msgid "Turn side-to-side"
-msgstr ""
+msgstr "Повороты туда-сюда"
 
 #: ../hacks/config/t3d.xml.h:8
 msgid "Wobbliness"
-msgstr ""
+msgstr "Люфт"
 
 #: ../hacks/config/t3d.xml.h:9
 msgid "Cycle seconds"
-msgstr ""
+msgstr "Секундный цикл"
 
 #: ../hacks/config/t3d.xml.h:10
 msgid "Smaller"
-msgstr ""
+msgstr "Меньше"
 
 #: ../hacks/config/t3d.xml.h:12
 msgid "Bigger"
-msgstr ""
+msgstr "Больше"
 
 #: ../hacks/config/t3d.xml.h:13
 msgid "Minute tick marks"
-msgstr ""
+msgstr "Маркировка минутных отметок"
 
 #: ../hacks/config/t3d.xml.h:14
 msgid "5 minute tick marks"
-msgstr ""
+msgstr "Маркировка 5-минутных отметок"
 
 #: ../hacks/config/t3d.xml.h:16
 msgid ""
 "This screen saver was removed from the XScreenSaver distribution as of "
 "version 5.08. Draws a working analog clock composed of floating, throbbing "
 "bubbles. Written by Bernd Paysan; 1999."
-msgstr ""
+msgstr "Эта заставка была удалена из дистрибутива XScreenSaver версии 5.08. Рисует рабочие аналоговые часы, состоящие из плавающих, пульсирующих пузырьков. Автор Бернд Пайсан; 1999 год."
 
 #: ../hacks/config/tangram.xml.h:1
 msgid "Tangram"
-msgstr ""
+msgstr "Танграм"
 
 #: ../hacks/config/tangram.xml.h:9
 msgid "X rotation"
@@ -9334,11 +9472,11 @@ msgstr "Поворот Z"
 msgid ""
 "Solves tangram puzzles. https://en.wikipedia.org/wiki/Tangram Written by "
 "Jeremy English; 2005."
-msgstr ""
+msgstr "Решить Танграм головоломки. https://en.wikipedia.org/wiki/Tangram Автор: Джереми Инглиш; 2005."
 
 #: ../hacks/config/tessellimage.xml.h:1
 msgid "Tessellimage"
-msgstr ""
+msgstr "Мозаичное изображение"
 
 #: ../hacks/config/tessellimage.xml.h:5
 msgid "0.1 second"
@@ -9348,46 +9486,60 @@ msgstr "0.1 секунды"
 msgid "4 seconds"
 msgstr "4 секунды"
 
+#: ../hacks/config/tessellimage.xml.h:14
+msgid "Delaunay or voronoi"
+msgstr "Делоне или Вороной"
+
 #: ../hacks/config/tessellimage.xml.h:15
+msgid "Delaunay"
+msgstr "Делоне"
+
+#: ../hacks/config/tessellimage.xml.h:16 ../hacks/config/voronoi.xml.h:1
+msgid "Voronoi"
+msgstr "Вороной"
+
+#: ../hacks/config/tessellimage.xml.h:18
 msgid "Outline triangles"
 msgstr "Обводить треугольники"
 
-#: ../hacks/config/tessellimage.xml.h:17
-msgid ""
-"Converts an image to triangles using Delaunay tessellation, and animates the "
-"result at various depths. More triangles are allocated to visually complex "
-"parts of the image. This is accomplished by first computing the first "
-"derivative of the image: the distance between each pixel and its neighbors "
-"(which is essentially edge detection or embossing). Then the Delaunay "
-"control points are chosen by selecting those pixels whose distance value is "
-"above a certain threshold: those are the pixels that have the largest change "
-"in color/brightness. https://en.wikipedia.org/wiki/Delaunay_triangulation "
-"Written by Jamie Zawinski; 2014."
-msgstr ""
+#: ../hacks/config/tessellimage.xml.h:20
+msgid ""
+"Converts an image to triangles using Delaunay tessellation, or to polygons "
+"using Voronoi tesselation, and animates the result at various depths. More "
+"polygons are allocated to visually complex parts of the image. This is "
+"accomplished by first computing the first derivative of the image: the "
+"distance between each pixel and its neighbors (which is essentially edge "
+"detection or embossing). Then the Delaunay or Voronoi control points are "
+"chosen by selecting those pixels whose distance value is above a certain "
+"threshold: those are the pixels that have the largest change in "
+"color/brightness. https://en.wikipedia.org/wiki/Delaunay_triangulation "
+"https://en.wikipedia.org/wiki/Voronoi_diagram "
+"https://en.wikipedia.org/wiki/Tessellation Written by Jamie Zawinski; 2014."
+msgstr "Преобразует изображение в треугольники, используя тесселяцию Делоне, или в многоугольники, используя тесселяцию Вороного, и анимирует результат на различных глубинах. Больше многоугольников размещено у визуально сложных частей изображения. Это достигается путём первого вычисления первой производной изображения: расстояния между каждым пикселем и его соседями (что по существу является обнаружением края или тиснением). Затем контрольные точки Делоне или Вороного выбираются путём выбора тех пикселей, значение расстояния которых превышает определённый порог: это пиксели, которые имеют наибольшее изменение цвета/яркости. https://en.wikipedia.org/wiki/Delaunay_triangulation https://en.wikipedia.org/wiki/Voronoi_diagram https://en.wikipedia.org/wiki/Tessellation Автор Джейми Завински; 2014."
 
 #: ../hacks/config/testx11.xml.h:1
 msgid "TestX11"
-msgstr ""
+msgstr "Тест X11"
 
 #: ../hacks/config/testx11.xml.h:3
 msgid ""
 "Test platform for JWXYZ - the X11 compatibility shim for OS X and iOS. End "
 "users shouldn't normally see this one. Written by Dave Odell; 2015."
-msgstr ""
+msgstr "Протестировать платформу для JWXYZ - совместимость X11 для OS X и iOS. Конечные пользователи обычно не должны видеть это. Автор Дэйв Оделл; 2015."
 
 #: ../hacks/config/thornbird.xml.h:1
 msgid "Thornbird"
-msgstr ""
+msgstr "Терновая птица"
 
 #: ../hacks/config/thornbird.xml.h:17
 msgid ""
 "Displays a view of the \"Bird in a Thornbush\" fractal. Written by Tim "
 "Auckland; 2002."
-msgstr ""
+msgstr "Отображает вид фрактала \"Птица в терновом кусте\". Автор Тим Окленд; 2002."
 
 #: ../hacks/config/timetunnel.xml.h:1
 msgid "TimeTunnel"
-msgstr ""
+msgstr "Туннель времени"
 
 #: ../hacks/config/timetunnel.xml.h:2
 msgid "0 sec"
@@ -9411,13 +9563,13 @@ msgstr "Запускать в обратном порядке"
 
 #: ../hacks/config/timetunnel.xml.h:9
 msgid ""
-"An animation similar to the title sequence of Dr. Who in the 70s. Written by "
-"Sean P. Brennan; 2005."
-msgstr ""
+"An animation similar to the title sequence of Dr. Who in the 70s. Written by"
+" Sean P. Brennan; 2005."
+msgstr "Анимация, похожая на заглавную последовательность доктора Кто в 70-х. Автор Шон П. Бреннан; 2005."
 
 #: ../hacks/config/topblock.xml.h:1
 msgid "TopBlock"
-msgstr ""
+msgstr "Верхний блок"
 
 #: ../hacks/config/topblock.xml.h:6
 msgid "Drop speed"
@@ -9425,7 +9577,7 @@ msgstr "Скорость падения"
 
 #: ../hacks/config/topblock.xml.h:9
 msgid "Carpet size"
-msgstr "Размер фундамента"
+msgstr "Размер покрытия"
 
 #: ../hacks/config/topblock.xml.h:11
 msgid "Spawn likelyhood"
@@ -9433,7 +9585,7 @@ msgstr "Вероятность появления"
 
 #: ../hacks/config/topblock.xml.h:12
 msgid "Polygon count"
-msgstr "Ð\9aолиÑ\87еÑ\81Ñ\82во Ð¿Ð¾Ð»Ð¸Ð³Ð¾Ð½ов"
+msgstr "Ð\9aолиÑ\87еÑ\81Ñ\82во Ð¼Ð½Ð¾Ð³Ð¾Ñ\83голÑ\8cников"
 
 #: ../hacks/config/topblock.xml.h:18
 msgid "Follow"
@@ -9449,7 +9601,7 @@ msgstr "Режим туннеля"
 
 #: ../hacks/config/topblock.xml.h:21
 msgid "Carpet"
-msgstr "ФÑ\83ндаменÑ\82"
+msgstr "Ð\9fокÑ\80Ñ\8bÑ\82ие"
 
 #: ../hacks/config/topblock.xml.h:22
 msgid "Nipples"
@@ -9459,45 +9611,46 @@ msgstr "Бугорки"
 msgid ""
 "Creates a 3D world with dropping blocks that build up and up. Written by "
 "rednuht; 2006."
-msgstr ""
+msgstr "Создает 3D мир с беспорядочным накоплением блоков, груда которых делается всё выше и выше. Автор Реднухт; 2006 год."
 
 #: ../hacks/config/triangle.xml.h:1
 msgid "Triangle"
-msgstr ""
+msgstr "Треугольное"
 
 #: ../hacks/config/triangle.xml.h:9
 msgid ""
 "Generates random mountain ranges using iterative subdivision of triangles. "
 "Written by Tobias Gloth; 1997."
-msgstr ""
+msgstr "Генерирует случайные горные цепи, используя итерационное разбиение треугольников. Автор: Тобиас Глот; 1997."
 
 #: ../hacks/config/tronbit.xml.h:1
 msgid "TronBit"
-msgstr ""
+msgstr "Бит трона"
 
 #: ../hacks/config/tronbit.xml.h:12
 msgid ""
 "The character \"Bit\" from the film, \"Tron\". The \"yes\" state is a "
 "tetrahedron; the \"no\" state is the second stellation of an icosahedron; "
 "and the idle state oscillates between a small triambic icosahedron and the "
-"compound of an icosahedron and a dodecahedron. https://en.wikipedia.org/wiki/"
-"List_of_Tron_characters#Bit https://en.wikipedia.org/wiki/Uniform_polyhedra "
+"compound of an icosahedron and a dodecahedron. "
+"https://en.wikipedia.org/wiki/List_of_Tron_characters#Bit "
+"https://en.wikipedia.org/wiki/Uniform_polyhedra "
 "https://en.wikipedia.org/wiki/Stellation Written by Jamie Zawinski; 2011."
-msgstr ""
+msgstr "Символ \"Бит\" из фильма \"Трон\". \"Да\" - тетраэдр; \"нет\" - икосаэдр; неактивное состояние колеблется между малым триамбическим икосаэдром и соединением икосаэдра и додекаэдра. https://en.wikipedia.org/wiki/List_of_Tron_characters#Bit https://en.wikipedia.org/wiki/Uniform_polyhedra https://en.wikipedia.org/wiki/Stellation Автор: Джейми Завински; 2011."
 
 #: ../hacks/config/truchet.xml.h:1
 msgid "Truchet"
-msgstr ""
+msgstr "Труше"
 
 #: ../hacks/config/truchet.xml.h:7
 msgid ""
-"Line- and arc-based truchet patterns that tile the screen. https://en."
-"wikipedia.org/wiki/Tessellation Written by Adrian Likins; 1998."
-msgstr ""
+"Line- and arc-based truchet patterns that tile the screen. "
+"https://en.wikipedia.org/wiki/Tessellation Written by Adrian Likins; 1998."
+msgstr "Линейные и дуговые узоры Труше, что укладываются плиткой на экране. https://en.wikipedia.org/wiki/Tessellation Автор: Адриан Ликинс; 1998."
 
 #: ../hacks/config/twang.xml.h:1
 msgid "Twang"
-msgstr ""
+msgstr "Бренчать"
 
 #: ../hacks/config/twang.xml.h:10
 msgid "Jumpy"
@@ -9519,11 +9672,11 @@ msgstr "Толщина границы"
 msgid ""
 "Divides the screen into a grid, and plucks them. Written by Dan Bornstein; "
 "2002."
-msgstr ""
+msgstr "Делит экран на сетки, и дёргивает их. Автор: Дэн Бёрнштейн; 2002."
 
 #: ../hacks/config/unicrud.xml.h:1
 msgid "Unicrud"
-msgstr ""
+msgstr "Юникруд"
 
 #: ../hacks/config/unicrud.xml.h:12
 msgid "Display everything"
@@ -9554,17 +9707,25 @@ msgid ""
 "Chooses a random Unicode character and displays it full screen, along with "
 "some information about it. https://en.wikipedia.org/wiki/Unicode Written by "
 "Jamie Zawinski; 2016."
-msgstr ""
+msgstr "Выбирает случайный символ Юникода и отображает его на весь экран вместе с некоторой информацией о нём. https://en.wikipedia.org/wiki/Unicode Автор: Джейми Завински; 2016."
 
 #: ../hacks/config/unknownpleasures.xml.h:1
 msgid "UnknownPleasures"
-msgstr ""
+msgstr "Неизвестные удовольствия"
 
 #: ../hacks/config/unknownpleasures.xml.h:12
+msgid "Amplitude"
+msgstr "Амплитуда"
+
+#: ../hacks/config/unknownpleasures.xml.h:14
 msgid "Orthographic Projection"
 msgstr "Ортографическая проекция"
 
-#: ../hacks/config/unknownpleasures.xml.h:16
+#: ../hacks/config/unknownpleasures.xml.h:15
+msgid "Buzz"
+msgstr "Жужжание"
+
+#: ../hacks/config/unknownpleasures.xml.h:19
 #, no-c-format
 msgid ""
 "PSR B1919+21 (AKA CP 1919) was the first pulsar ever discovered: a spinning "
@@ -9573,23 +9734,34 @@ msgid ""
 "and later in The Cambridge Encyclopedia of Astronomy in 1977, where it was "
 "seen by Stephen Morris, the drummer of Joy Division, and was consequently "
 "appropriated by Peter Saville for the cover of the band's album \"Unknown "
-"Pleasures\". https://en.wikipedia.org/wiki/Pulsar https://en.wikipedia.org/"
-"wiki/PSR_B1919%2B21 https://en.wikipedia.org/wiki/Unknown_Pleasures https://"
-"en.wikipedia.org/wiki/Peter_Saville_%28graphic_designer%29 https://en."
-"wikipedia.org/wiki/Joy_Division Written by Jamie Zawinski; 2013."
-msgstr ""
+"Pleasures\". https://en.wikipedia.org/wiki/Pulsar "
+"https://en.wikipedia.org/wiki/PSR_B1919%2B21 "
+"https://en.wikipedia.org/wiki/Unknown_Pleasures "
+"https://en.wikipedia.org/wiki/Peter_Saville_%28graphic_designer%29 "
+"https://en.wikipedia.org/wiki/Joy_Division Written by Jamie Zawinski; 2013."
+msgstr "PSR B1919+21 (AKA CP 1919) был первым пульсаром из когда-либо обнаруженных: вращающаяся нейтронная звезда, испускающая периодический сигнал, как маяк. Иллюстрация сигнала, полученного от него была опубликована в журнале \"Ученый американец\" в 1971 году, а затем в Кембридже, в энциклопедии астрономии, в 1977 году,  иллюстрацию увидел Стивен Моррис, барабанщик Joy Division; иллюстрация была использована Питером Сэвиллом для обложки альбома \"Неизвестные удовольствия\".  https://en.wikipedia.org/wiki/Pulsar https://en.wikipedia.org/wiki/PSR_B1919%2B21 https://en.wikipedia.org/wiki/Unknown_Pleasures https://en.wikipedia.org/wiki/Peter_Saville_%28graphic_designer%29 https://en.wikipedia.org/wiki/Joy_Division Автор: Джейми Завински; 2013."
 
 #: ../hacks/config/vermiculate.xml.h:1
 msgid "Vermiculate"
-msgstr ""
+msgstr "Изъеденный червями"
 
 #: ../hacks/config/vermiculate.xml.h:6
 msgid "Squiggly worm-like paths. Written by Tyler Pierce; 2001."
-msgstr ""
+msgstr "Червеобразные пути. Автор: Тайлер Пирс; 2001."
+
+#: ../hacks/config/vfeedback.xml.h:1
+msgid "VFeedback"
+msgstr "Обратная связь видео"
+
+#: ../hacks/config/vfeedback.xml.h:10
+msgid ""
+"Simulates video feedback: pointing a video camera at an NTSC television. "
+"Written by Jamie Zawinski; 2018."
+msgstr "Имитирует обратную связь видео: направляет видеокамеру на телевидение NTSC (\"Национальный комитет по телевизионным системам\"). Автор Джейми Завински; 2018."
 
 #: ../hacks/config/vidwhacker.xml.h:1
 msgid "VidWhacker"
-msgstr ""
+msgstr "VidWhacker"
 
 #: ../hacks/config/vidwhacker.xml.h:2
 msgid "2 seconds"
@@ -9606,13 +9778,13 @@ msgid ""
 "(chosen at random) to manipulate and recombine the video frame in various "
 "ways (edge detection, subtracting the image from a rotated version of "
 "itself, etc.) Then it displays that image for a few seconds, and does it "
-"again. This works really well if you just feed broadcast television into it. "
-"Written by Jamie Zawinski; 1998."
-msgstr ""
+"again. This works really well if you just feed broadcast television into it."
+" Written by Jamie Zawinski; 1998."
+msgstr "Отображает искажённые видеокадры. Это скрипт, который захватывает кадр видео от входного видеосигнала системы, а затем использует некоторые PBM фильтры (выбираются случайным образом), чтобы манипулировать и рекомбинировать видеокадр различными способами (обнаружение края, вычитание изображения из повёрнутой версии и т.д.) Затем он показывает изображение на несколько секунд, и делает это снова. Это работает очень хорошо, если вы просто добавляете в него вещательное телевидение. Автор: Джейми Завински; 1998."
 
 #: ../hacks/config/vigilance.xml.h:1
 msgid "Vigilance"
-msgstr ""
+msgstr "Зоркость"
 
 #: ../hacks/config/vigilance.xml.h:9
 msgid "Number of cameras"
@@ -9623,22 +9795,18 @@ msgid ""
 "Security cameras keep careful track of their surroundings. You can trust "
 "them. Everything is completely under control. Written by Jamie Zawinski; "
 "2017."
-msgstr ""
+msgstr "Камеры видеонаблюдения тщательно отслеживают обстановку. Вы можете доверять им. Всё полностью под контролем. Автор Джейми Завински; 2017."
 
 #: ../hacks/config/vines.xml.h:1
 msgid "Vines"
-msgstr ""
+msgstr "Лоза"
 
 #: ../hacks/config/vines.xml.h:9
 msgid ""
 "This screen saver was removed from the XScreenSaver distribution as of "
 "version 5.08. Generates a continuous sequence of small, curvy geometric "
 "patterns. Written by Tracy Camp and David Hansen; 1997."
-msgstr ""
-
-#: ../hacks/config/voronoi.xml.h:1
-msgid "Voronoi"
-msgstr ""
+msgstr "Эта заставка была удалена из дистрибутива XScreenSaver версии 5.08. Формирует непрерывную последовательность небольших извилистых геометрических узоров. Автор: Трейси Камп и Дэвид Хансен; 1997."
 
 #: ../hacks/config/voronoi.xml.h:10
 msgid "50 pixels"
@@ -9659,27 +9827,27 @@ msgstr "Частота масштабирования"
 #: ../hacks/config/voronoi.xml.h:17
 msgid ""
 "A Voronoi tessellation. Periodically zooms in and adds new points. The "
-"existing points also wander around. There are a set of control points on the "
-"plane, each at the center of a colored cell. Every pixel within that cell is "
-"closer to that cell's control point than to any other control point. That is "
-"what determines the cell's shapes. https://en.wikipedia.org/wiki/"
-"Voronoi_diagram https://en.wikipedia.org/wiki/Tessellation Written by Jamie "
-"Zawinski; 2007."
-msgstr ""
+"existing points also wander around. There are a set of control points on the"
+" plane, each at the center of a colored cell. Every pixel within that cell "
+"is closer to that cell's control point than to any other control point. That"
+" is what determines the cell's shapes. "
+"https://en.wikipedia.org/wiki/Voronoi_diagram "
+"https://en.wikipedia.org/wiki/Tessellation Written by Jamie Zawinski; 2007."
+msgstr "Тесселяции Вороного. Периодически масштабирует и добавляет новые точки.  Есть множество контрольных точек на плоскости, каждая в центре цветной клетки. Каждый пиксель в этой ячейке находится ближе к контрольной точке ячейки, чем в любой другой точке управления. То есть то, что определяет форму клетки. https://en.wikipedia.org/wiki/Voronoi_diagram https://en.wikipedia.org/wiki/Tessellation Автор: Джейми Завински; 2007."
 
 #: ../hacks/config/wander.xml.h:11
 msgid "Draw spots"
-msgstr "Прорисовывать точки"
+msgstr "Прорисовывать пятна"
 
 #: ../hacks/config/wander.xml.h:14
 msgid ""
-"A colorful random-walk. https://en.wikipedia.org/wiki/Random_walk Written by "
-"Rick Campbell; 1999."
-msgstr ""
+"A colorful random-walk. https://en.wikipedia.org/wiki/Random_walk Written by"
+" Rick Campbell; 1999."
+msgstr "Красочное изображение случайной ходьбы. https://en.wikipedia.org/wiki/Random_walk Автор: Рик Кэмпбелл; 1999."
 
 #: ../hacks/config/webcollage.xml.h:1
 msgid "WebCollage"
-msgstr ""
+msgstr "Веб-коллаж"
 
 #: ../hacks/config/webcollage.xml.h:3
 msgid "Delay between images"
@@ -9710,16 +9878,16 @@ msgid ""
 "This is what the Internet looks like. This creates collages out of random "
 "images from the World Wide Web. It finds the images by feeding random words "
 "into various search engines, and pulling images (or sections of images) out "
-"of the pages returned. WARNING: THE INTERNET SOMETIMES CONTAINS PORNOGRAPHY. "
-"The Internet being what it is, absolutely anything might show up in the "
+"of the pages returned. WARNING: THE INTERNET SOMETIMES CONTAINS PORNOGRAPHY."
+" The Internet being what it is, absolutely anything might show up in the "
 "collage including -- quite possibly -- pornography, or even nudity. Please "
 "act accordingly. See also https://www.jwz.org/webcollage/ Written by Jamie "
 "Zawinski; 1999."
-msgstr ""
+msgstr "Интернет, который выглядит случайным образом. Заставка создает коллажи из случайных изображений из World Wide Web (Всемирной паутины). Она находит изображения путём подачи случайных слов в различных поисковых системах, и вытягивает изображения (или группы изображений) из возвращаемых страниц. ПРЕДУПРЕЖДЕНИЕ: ИНТЕРНЕТ СОДЕРЖИТ ИНОГДА порнографию. Интернет, какой он есть; в коллаже может абсолютно ничего  не появиться, вполне возможно, может появиться порнография, или даже - нагота! Пожалуйста, действуйте соответственно. Смотрите также https://www.jwz.org/webcollage/ Автор: Джейми Завински; 1999."
 
 #: ../hacks/config/whirlwindwarp.xml.h:1
 msgid "WhirlWindWarp"
-msgstr ""
+msgstr "Вихревая деформация"
 
 #: ../hacks/config/whirlwindwarp.xml.h:6
 msgid "Trail size"
@@ -9730,126 +9898,126 @@ msgid ""
 "Floating stars are acted upon by a mixture of simple 2D force fields. The "
 "strength of each force field changes continuously, and it is also switched "
 "on and off at random. Written by Paul 'Joey' Clark; 2001."
-msgstr ""
+msgstr "Плавающие звёзды на смеси простых 2D силовых полей. Сила каждого силового поля постоянно меняется; включается и выключается в случайном порядке. Автор: Пол 'Джой' Кларк; 2001."
 
 #: ../hacks/config/whirlygig.xml.h:1
 msgid "Whirlygig"
-msgstr ""
+msgstr "Волчок"
 
 #: ../hacks/config/whirlygig.xml.h:2
 msgid "Whirlies"
-msgstr ""
+msgstr "Шторма"
 
 #: ../hacks/config/whirlygig.xml.h:5
 msgid "X speed"
-msgstr ""
+msgstr "Скорость по X"
 
 #: ../hacks/config/whirlygig.xml.h:7
 msgid "Y speed"
-msgstr ""
+msgstr "Скорость по Y"
 
 #: ../hacks/config/whirlygig.xml.h:8
 msgid "X amplitude"
-msgstr ""
+msgstr "Амплитуда по Х"
 
 #: ../hacks/config/whirlygig.xml.h:9
 msgid "Y amplitude"
-msgstr ""
+msgstr "Амплитуда по Y"
 
 #: ../hacks/config/whirlygig.xml.h:10
 msgid "X random"
-msgstr ""
+msgstr "Случайность по Х"
 
 #: ../hacks/config/whirlygig.xml.h:11
 msgid "X spin"
-msgstr ""
+msgstr "Вращение вокруг оси Х"
 
 #: ../hacks/config/whirlygig.xml.h:12
 msgid "X funky"
-msgstr ""
+msgstr "Фанк по X"
 
 #: ../hacks/config/whirlygig.xml.h:13
 msgid "X circle"
-msgstr ""
+msgstr "Круг по X"
 
 #: ../hacks/config/whirlygig.xml.h:14
 msgid "X linear"
-msgstr ""
+msgstr "Линейность по Х"
 
 #: ../hacks/config/whirlygig.xml.h:15
 msgid "X test"
-msgstr ""
+msgstr "Тест по Х"
 
 #: ../hacks/config/whirlygig.xml.h:16
 msgid "X fun"
-msgstr ""
+msgstr "Функция по Х"
 
 #: ../hacks/config/whirlygig.xml.h:17
 msgid "X innie"
-msgstr ""
+msgstr "Втянутость по X"
 
 #: ../hacks/config/whirlygig.xml.h:18
 msgid "X lissajous"
-msgstr ""
+msgstr "Лиссажу по X"
 
 #: ../hacks/config/whirlygig.xml.h:19
 msgid "Y random"
-msgstr ""
+msgstr "Случайность по Y"
 
 #: ../hacks/config/whirlygig.xml.h:20
 msgid "Y spin"
-msgstr ""
+msgstr "Вращение вокруг оси Y"
 
 #: ../hacks/config/whirlygig.xml.h:21
 msgid "Y funky"
-msgstr ""
+msgstr "Фанк по Y"
 
 #: ../hacks/config/whirlygig.xml.h:22
 msgid "Y circle"
-msgstr ""
+msgstr "Круг по Y"
 
 #: ../hacks/config/whirlygig.xml.h:23
 msgid "Y linear"
-msgstr ""
+msgstr "Линейность по Y"
 
 #: ../hacks/config/whirlygig.xml.h:24
 msgid "Y test"
-msgstr ""
+msgstr "Тест по Y"
 
 #: ../hacks/config/whirlygig.xml.h:25
 msgid "Y fun"
-msgstr ""
+msgstr "Функция по Y"
 
 #: ../hacks/config/whirlygig.xml.h:26
 msgid "Y innie"
-msgstr ""
+msgstr "Втянутость по Y"
 
 #: ../hacks/config/whirlygig.xml.h:27
 msgid "Y lissajous"
-msgstr ""
+msgstr "Лиссажу по Y"
 
 #: ../hacks/config/whirlygig.xml.h:28
 msgid "Leave a trail"
-msgstr ""
+msgstr "Оставить след"
 
 #: ../hacks/config/whirlygig.xml.h:29
 msgid "Explain modes"
-msgstr ""
+msgstr "Объяснение режимов"
 
 #: ../hacks/config/whirlygig.xml.h:30
 msgid "Wrap the screen"
-msgstr ""
+msgstr "Обернуть экран"
 
 #: ../hacks/config/whirlygig.xml.h:32
 msgid ""
 "This screen saver was removed from the XScreenSaver distribution as of "
 "version 5.08. Zooming chains of sinusoidal spots. Written by Ashton Trey "
 "Belew; 2001."
-msgstr ""
+msgstr "Эта заставка была удалена из дистрибутива XScreenSaver  версии 5.08. Увеличенные цепочки синусоидальных пятен. Автор Эштон Трей Белью; 2001 год."
 
 #: ../hacks/config/winduprobot.xml.h:1
 msgid "WindupRobot"
-msgstr ""
+msgstr "Заводной робот"
 
 #: ../hacks/config/winduprobot.xml.h:6
 msgid "Robot speed"
@@ -9885,52 +10053,56 @@ msgstr "Исчезающая прозрачность"
 
 #: ../hacks/config/winduprobot.xml.h:23
 msgid ""
-"A swarm of wind-up toy robots wander around the table-top, bumping into each "
-"other. Each robot contains a mechanically accurate gear system inside, which "
-"you can see when the robot's shell occasionally fades to transparency. Also, "
-"sometimes a cartoony word bubble pops up above a robot, full of random text. "
-"Written by Jamie Zawinski; 2014."
-msgstr ""
+"A swarm of wind-up toy robots wander around the table-top, bumping into each"
+" other. Each robot contains a mechanically accurate gear system inside, "
+"which you can see when the robot's shell occasionally fades to transparency."
+" Also, sometimes a cartoony word bubble pops up above a robot, full of "
+"random text. Written by Jamie Zawinski; 2014."
+msgstr "Рой заводных игрушечных роботов, натыкаясь друг на друга, бродит по столешнице. Каждый робот внутри содержит механическую систему точных шестерёнок, которую вы можете видеть, поскольку иногда оболочки роботов становятся прозрачными. Кроме того, время от времени, пузыри-диалоги, наполненные случайными текстами, всплывают над роботами. Автор: Джейми Завински; 2014 год."
 
 #: ../hacks/config/worm.xml.h:12
 msgid ""
 "This screen saver was removed from the XScreenSaver distribution as of "
-"version 5.08. Draws multicolored worms that crawl around the screen. Written "
-"by Brad Taylor, Dave Lemke, Boris Putanec, and Henrik Theiling; 1991."
-msgstr ""
+"version 5.08. Draws multicolored worms that crawl around the screen. Written"
+" by Brad Taylor, Dave Lemke, Boris Putanec, and Henrik Theiling; 1991."
+msgstr "Эта заставка была удалена из дистрибутива XScreenSaver в версии 5.08. Рисует разноцветных ползающих по экрану червей. Авторы Брэд Тейлор, Дэйв Лимк, Борис Путанец и Генрик Тейлинг; 1991 год."
 
 #: ../hacks/config/wormhole.xml.h:1
 msgid "Wormhole"
-msgstr ""
+msgstr "Червоточины"
 
 #: ../hacks/config/wormhole.xml.h:6
 msgid "Star speed"
-msgstr "Скорость звезд"
+msgstr "Скорость звёзд"
 
 #: ../hacks/config/wormhole.xml.h:9
 msgid "Stars created"
-msgstr "Количество звезд"
+msgstr "Количество звёзд"
 
 #: ../hacks/config/wormhole.xml.h:12
 msgid ""
 "Flying through a colored wormhole in space. Written by Jon Rafkind; 2004."
-msgstr ""
+msgstr "Полёт в пространстве через цветную червоточину. Автор Джон Рафкинд; 2004."
 
 #: ../hacks/config/xanalogtv.xml.h:1
 msgid "XAnalogTV"
-msgstr ""
+msgstr "Х аналоговое телевидение"
+
+#: ../hacks/config/xanalogtv.xml.h:3
+msgid "Colorbars only"
+msgstr "Только цветные полосы"
 
-#: ../hacks/config/xanalogtv.xml.h:9
+#: ../hacks/config/xanalogtv.xml.h:10
 msgid ""
 "An old TV set, including artifacts like snow, bloom, distortion, ghosting, "
 "and hash noise. It also simulates the TV warming up. It will cycle through "
 "12 channels, some with images you give it, and some with color bars or "
 "nothing but static. Written by Trevor Blackwell; 2003."
-msgstr ""
+msgstr "Изображает старый телевизор с такими артефактами, как снег, цветовое искажение, ореолы и запутанный шум. Также имитируется разогрев телевизора. Это цикл из 12 каналов с изображениями, которые вы выберете; возможны цветовые полосы или статическое ничего. Автор: Тревор Блэквелл; 2003."
 
 #: ../hacks/config/xflame.xml.h:1
 msgid "XFlame"
-msgstr ""
+msgstr "Х-пламя"
 
 #. #### -vartrend [20]
 #: ../hacks/config/xflame.xml.h:6
@@ -9941,31 +10113,31 @@ msgstr "Разрешить вспышки"
 msgid ""
 "Pulsing fire. It can also take an arbitrary image and set it on fire too. "
 "Written by Carsten Haitzler and many others; 1999."
-msgstr ""
+msgstr "Пульсирующий огонь. Он также может принимать случайный вид. Автор Карстен Хайтзлер и многие другие; 1999 год."
 
 #: ../hacks/config/xjack.xml.h:1
 msgid "XJack"
-msgstr ""
+msgstr "X-Джек"
 
 #: ../hacks/config/xjack.xml.h:7
 msgid ""
 "This behaves schizophrenically and makes a lot of typos. Written by Jamie "
 "Zawinski; 1997."
-msgstr ""
+msgstr "Эта штука ведет себя шизофренически и делает много опечаток. Автор: Джейми Завински; 1997 год."
 
 #: ../hacks/config/xlyap.xml.h:1
 msgid "XLyap"
-msgstr ""
+msgstr "X-Ляпунов"
 
 #: ../hacks/config/xlyap.xml.h:10
 msgid ""
-"The Lyapunov exponent makes pretty fractal pictures. https://en.wikipedia."
-"org/wiki/Lyapunov_exponent Written by Ron Record; 1997."
-msgstr ""
+"The Lyapunov exponent makes pretty fractal pictures. "
+"https://en.wikipedia.org/wiki/Lyapunov_exponent Written by Ron Record; 1997."
+msgstr "Экспонента Ляпунова делает фрактальные картины. https://en.wikipedia.org/wiki/Lyapunov_exponent Автор: Рон Рекорд; 1997."
 
 #: ../hacks/config/xmatrix.xml.h:1
 msgid "XMatrix"
-msgstr ""
+msgstr "Х-матрица"
 
 #: ../hacks/config/xmatrix.xml.h:2
 msgid "Small font"
@@ -10005,31 +10177,32 @@ msgstr "Номер телефона"
 
 #: ../hacks/config/xmatrix.xml.h:22
 msgid ""
-"The \"digital rain\" effect, as seen on the computer monitors in \"The Matrix"
-"\". See also \"GLMatrix\" for a 3D rendering of the similar effect that "
-"appeared in the movie's title sequence. https://en.wikipedia.org/wiki/"
-"Matrix_digital_rain Written by Jamie Zawinski; 1999."
-msgstr ""
+"The \"digital rain\" effect, as seen on the computer monitors in \"The "
+"Matrix\". See also \"GLMatrix\" for a 3D rendering of the similar effect "
+"that appeared in the movie's title sequence. "
+"https://en.wikipedia.org/wiki/Matrix_digital_rain Written by Jamie Zawinski;"
+" 1999."
+msgstr "Эффект \"Цифрового дождя\", такой же, как на компьютерных мониторах в \"Матрице\". Смотрите также \"GL-матрица\" для 3D-визуализации аналогичного эффекта, который проявился и в названии фильма. https://en.wikipedia.org/wiki/Matrix_digital_rain Автор: Джейми Завински; 1999 год."
 
 #: ../hacks/config/xrayswarm.xml.h:1
 msgid "XRaySwarm"
-msgstr ""
+msgstr "X-поток лучей"
 
 #: ../hacks/config/xrayswarm.xml.h:6
 msgid ""
 "Worm-like swarms of particles with vapor trails. Written by Chris Leger; "
 "2000."
-msgstr ""
+msgstr "Черви, как рои частиц оставляющие инверсионный след. Автор Крис Леже; 2000."
 
 #: ../hacks/config/xspirograph.xml.h:1
 msgid "XSpirograph"
-msgstr ""
+msgstr "Х-спирограф"
 
 #: ../hacks/config/xspirograph.xml.h:10
 msgid ""
-"Simulates that pen-in-nested-plastic-gears toy from your childhood. https://"
-"en.wikipedia.org/wiki/Spirograph Written by Rohit Singh; 2000."
-msgstr ""
+"Simulates that pen-in-nested-plastic-gears toy from your childhood. "
+"https://en.wikipedia.org/wiki/Spirograph Written by Rohit Singh; 2000."
+msgstr "Имитирует игрушку из пластиковых шестерёнок из вашего детства. https://en.wikipedia.org/wiki/Spirograph Автор: Рохит Сингх; 2000."
 
 #: ../hacks/config/zoom.xml.h:8
 msgid "X mag"
@@ -10064,4 +10237,4 @@ msgid ""
 "Fatbits! Zooms in on a part of the screen and then moves around. With the "
 "\"Lenses\" option, the result is like looking through many overlapping "
 "lenses rather than just a simple zoom. Written by James Macnicol; 2001."
-msgstr ""
+msgstr "Заметьте! Приближение части экрана, а затем - движение вокруг. С опцией «линзы», достигается не только простой зум, но и, как бы, взгляд через перекрывающие друг-друга несколько линз. Автор: Джеймс Макникол; 2001 год."
index 5445cd6ad7cc4fa76d6ad3dccbd50fb7a1f4c7bd..01f8fc6efe206d5da847b15202eca8aeac68cca1 100644 (file)
@@ -393,11 +393,13 @@ make_color_path (Screen *screen, Visual *visual, Colormap cmap,
       if (k <= 0)
        return;
 # else
-      for (i = k+1; i < *ncolorsP; i++)
+      if (k <= 0)
+       return;
+      for (i = k; i < *ncolorsP; i++)
         /* #### Should duplicate the allocation of the color cell here
            to avoid a double-color-free on PseudoColor, but it's 2018
            and I don't care, */
-        colors[i] = colors[k];
+        colors[i] = colors[i-1];
 # endif
     }
 
index fdf74968bb4a9cdcfd7c9793a130eefef6bb0825..7e1cbc9c0e6a667080e053daf6918ed3a7e8bac1 100644 (file)
@@ -396,7 +396,7 @@ fizzle (eraser_state *st)
       unsigned int i;
 
       st->fizzle_rnd =
-        (unsigned short *) malloc (sizeof(unsigned short) * chunks);
+        (unsigned short *) calloc (sizeof(unsigned short), chunks);
 
       if (! st->fizzle_rnd)
         return;
index ab999e2b5bfcd614a7430195be52e18f0c8c75dc..f8e650738b6aa4a0afaa2d37a671137e0828ed1d 100644 (file)
@@ -107,26 +107,39 @@ load_font_retry_1 (Display *dpy, int screen, const char *xlfd, Bool xft_p)
         }
       else
         {
-          const char *fixed[] = { "courier",
-                                  "courier new",
-                                  "courier 10 pitch",
-                                  "lucidatypewriter",
-                                  "american typewriter",
-                                  "fixed",
-                                  "ocr a std",
-                                  "*" };
-          const char *variable[] = { "helvetica",
-                                     "arial",
-                                     "bitstream vera sans",
-                                     "gill sans",
-                                     "times",
-                                     "times new roman",
-                                     "new century schoolbook",
-                                     "utopia",
-                                     "palatino",
-                                     "lucida",
-                                     "bitstream charter",
-                                     "*" };
+          const char *variable[] = {
+            "helvetica",
+            "arial",
+            "bitstream vera sans",
+            "gill sans",
+            "times",
+            "times new roman",
+            "new century schoolbook",
+            "utopia",
+            "palatino",
+            "lucida",
+            "bitstream charter",
+
+            /* Don't use a wildcard family. If none of the above worked, then
+               then almost none of the X11 fonts are installed, and it's not
+               unlikely that "-*-*-medium-r-*-*-*-140-*-*-*-10646-1" will
+               match an Arabic or or Japanese font that contains no Latin
+               glyphs at all, even in a Latin locale. So in that case, just
+               let "helvetica" fall back to "fixed".
+             */
+            /* "*" */
+          };
+          const char *fixed[] = {
+            "courier",
+            "courier new",
+            "courier 10 pitch",
+            "lucidatypewriter",
+            "american typewriter",
+            "fixed",
+            "ocr a std",
+            /* As above, but "can't happen" because we already tried fixed? */
+            /* "*" */
+          };
           const char *charsets[] = { "iso10646-1", "iso8859-1", "*-*" };
           const char *weights[]  = { "bold", "medium" };
           const char *slants[]   = { "o", "i", "r" };
index 5ad5d47cad8efde111b5f2ba15564023fa11ded8..71c86333b1e7be542422442567e305a585d94216 100644 (file)
@@ -960,7 +960,7 @@ void *io_thread_create(struct io_thread *self, void *parent, void *(*start_routi
                        attr_ptr = &attr;
                        if(pthread_attr_init(&attr))
                                return NULL;
-#   if defined _POSIX_SOURCE || defined _POSIX_C_SOURCE || defined _XOPEN_SOURCE
+#   if (defined _POSIX_SOURCE || defined _POSIX_C_SOURCE || defined _XOPEN_SOURCE) && !defined __GNU__
                        /* PTHREAD_STACK_MIN needs the above test. */
                        assert(stacksize >= PTHREAD_STACK_MIN);
 #   endif
index 7bdae95e5b30993f99bf343817714340ba34134a..19a6ca35793647cd07428b41955c423a1e0777e7 100644 (file)
@@ -1,2 +1,2 @@
 static const char screensaver_id[] =
-       "@(#)xscreensaver 5.42 (28-Dec-2018), by Jamie Zawinski (jwz@jwz.org)";
+       "@(#)xscreensaver 5.43 (01-Jul-2019), by Jamie Zawinski (jwz@jwz.org)";
index da913e63ef989e81cb6f84d1a62e410b6ab8a1f2..3fc0527d6370563f166e34d3050c7cd6e706f131 100644 (file)
@@ -1,5 +1,5 @@
 %define        name xscreensaver
-%define        version 5.42
+%define        version 5.43
 
 Summary:       X screen saver and locker
 Name:          %{name}