Pascal J. Bourguignon [2014-04-03 02:03]
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..91dc6f6
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,5 @@
+obj
+*.[oa]
+*~
+*.backup
+._*
diff --git a/gnustep/GNUmakefile b/gnustep/GNUmakefile
new file mode 100644
index 0000000..7e2e058
--- /dev/null
+++ b/gnustep/GNUmakefile
@@ -0,0 +1,71 @@
+#
+# GNUmakefile - Generated by ProjectCenter
+#
+ifeq ($(GNUSTEP_MAKEFILES),)
+ GNUSTEP_MAKEFILES := $(shell gnustep-config --variable=GNUSTEP_MAKEFILES 2>/dev/null)
+endif
+ifeq ($(GNUSTEP_MAKEFILES),)
+ $(error You need to set GNUSTEP_MAKEFILES before compiling!)
+endif
+
+include $(GNUSTEP_MAKEFILES)/common.make
+
+#
+# Application
+#
+VERSION = 1.0
+PACKAGE_NAME = hangman
+APP_NAME = hangman
+hangman_APPLICATION_ICON = icon.png
+
+
+#
+# Resource files
+#
+hangman_RESOURCE_FILES = \
+Resources/Main.gsmarkup \
+Resources/MainMenu-GNUstep.gsmarkup \
+Resources/MainMenu-OSX.gsmarkup \
+Resources/hangman.gorm \
+Resources/hung-0.png \
+Resources/hung-1.png \
+Resources/hung-10.png \
+Resources/hung-11.png \
+Resources/hung-2.png \
+Resources/hung-3.png \
+Resources/hung-4.png \
+Resources/hung-5.png \
+Resources/hung-6.png \
+Resources/hung-7.png \
+Resources/hung-8.png \
+Resources/hung-9.png \
+Resources/icon.png
+
+
+#
+# Header files
+#
+hangman_HEADER_FILES = \
+Hangman.h \
+HangmanController.h
+
+#
+# Class files
+#
+hangman_OBJC_FILES = \
+Hangman.m \
+HangmanController.m
+
+#
+# Other sources
+#
+hangman_OBJC_FILES += \
+hangman_main.m
+
+#
+# Makefiles
+#
+-include GNUmakefile.preamble
+include $(GNUSTEP_MAKEFILES)/aggregate.make
+include $(GNUSTEP_MAKEFILES)/application.make
+-include GNUmakefile.postamble
diff --git a/gnustep/GNUmakefile.preamble b/gnustep/GNUmakefile.preamble
new file mode 100644
index 0000000..057635a
--- /dev/null
+++ b/gnustep/GNUmakefile.preamble
@@ -0,0 +1,25 @@
+#
+# GNUmakefile.preamble - Generated by ProjectCenter
+#
+
+# Additional flags to pass to the preprocessor
+ADDITIONAL_CPPFLAGS +=
+
+# Additional flags to pass to Objective C compiler
+ADDITIONAL_OBJCFLAGS += -std=c99
+
+# Additional flags to pass to C compiler
+ADDITIONAL_CFLAGS +=
+
+# Additional flags to pass to the linker
+ADDITIONAL_LDFLAGS +=
+
+# Additional include directories the compiler should search
+ADDITIONAL_INCLUDE_DIRS +=
+
+# Additional library directories the linker should search
+ADDITIONAL_LIB_DIRS +=
+
+# Additional GUI libraries to link
+ADDITIONAL_GUI_LIBS +=
+
diff --git a/gnustep/Hangman.h b/gnustep/Hangman.h
new file mode 120000
index 0000000..04e3d10
--- /dev/null
+++ b/gnustep/Hangman.h
@@ -0,0 +1 @@
+../sources/Hangman.h
\ No newline at end of file
diff --git a/gnustep/Hangman.m b/gnustep/Hangman.m
new file mode 120000
index 0000000..7ff46dc
--- /dev/null
+++ b/gnustep/Hangman.m
@@ -0,0 +1 @@
+../sources/Hangman.m
\ No newline at end of file
diff --git a/gnustep/HangmanController.h b/gnustep/HangmanController.h
new file mode 120000
index 0000000..5f08251
--- /dev/null
+++ b/gnustep/HangmanController.h
@@ -0,0 +1 @@
+../sources/HangmanController.h
\ No newline at end of file
diff --git a/gnustep/HangmanController.m b/gnustep/HangmanController.m
new file mode 120000
index 0000000..2217836
--- /dev/null
+++ b/gnustep/HangmanController.m
@@ -0,0 +1 @@
+../sources/HangmanController.m
\ No newline at end of file
diff --git a/gnustep/Resources/Main.gsmarkup b/gnustep/Resources/Main.gsmarkup
new file mode 100644
index 0000000..e403420
--- /dev/null
+++ b/gnustep/Resources/Main.gsmarkup
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+<!DOCTYPE gsmarkup>
+<gsmarkup>
+
+ <objects>
+ <window/>
+ </objects>
+</gsmarkup>
diff --git a/gnustep/Resources/MainMenu-GNUstep.gsmarkup b/gnustep/Resources/MainMenu-GNUstep.gsmarkup
new file mode 100644
index 0000000..ff72d59
--- /dev/null
+++ b/gnustep/Resources/MainMenu-GNUstep.gsmarkup
@@ -0,0 +1,32 @@
+<?xml version="1.0"?>
+<!DOCTYPE gsmarkup>
+
+<!-- Remove any menu items and submenus which you don't need. Add any
+ menu items and submenus which you need. -->
+
+<gsmarkup>
+ <objects>
+
+ <menu type="main">
+
+ <menu title="Info">
+ <menuItem title="Info Panel..."
+ action="orderFrontStandardInfoPanel:"/>
+ <menuItem title="Preferences..." action=""/>
+ <menuItem title="Help..." action="orderFrontHelpPanel:" key="?"/>
+ </menu>
+
+ <menu title="Windows">
+ <menuItem title="Arrange In Front" action="arrangeInFront:"/>
+ <menuItem title="Miniaturize Window" action="performMiniaturize:"
+ key="m"/>
+ <menuItem title="Close Window" action="performClose:" key="w"/>
+ </menu>
+
+ <menu title="Services" type="services"/>
+
+ <menuItem title="Hide" action="hide:" key="h"/>
+ <menuItem title="Quit" action="terminate:" key="q"/>
+ </menu>
+ </objects>
+</gsmarkup>
diff --git a/gnustep/Resources/MainMenu-OSX.gsmarkup b/gnustep/Resources/MainMenu-OSX.gsmarkup
new file mode 100644
index 0000000..a20024f
--- /dev/null
+++ b/gnustep/Resources/MainMenu-OSX.gsmarkup
@@ -0,0 +1,63 @@
+<?xml version="1.0"?>
+<!DOCTYPE gsmarkup>
+
+<gsmarkup>
+ <objects>
+
+ <menu type="main">
+
+ <menu title="MyApplication" type="apple">
+ <menuItem title="About MyApplication"
+ action="orderFrontStandardAboutPanel:"/>
+ <menuSeparator/>
+ <menuItem title="Preferences..." action="runPreferencesPanel:"/>
+ <menu title="Services" type="services"/>
+ <menuSeparator/>
+ <menuItem title="Hide MyApplication" action="hide:" key="h"/>
+ <menuItem title="Hide Others" action="hideOtherApplications:"/>
+ <menuItem title="Show All" action="unhideAllApplications:"/>
+ <menuSeparator/>
+ <menuItem title="Quit MyApplication" action="terminate:" key="q"/>
+ </menu>
+
+ <menu title="File">
+ <menuItem title="New" action="" key="n"/>
+ <menuItem title="Open..." action="" key="o"/>
+ <menu title="Open Recent" type="openRecent">
+ <menuItem title="Clear menu" action=""/>
+ </menu>
+ <menuSeparator/>
+ <menuItem title="Close" action="performClose:" key="w"/>
+ <menuItem title="Save" action="" key="s"/>
+ <menuItem title="Save As..." action="" key="S"/>
+ <menuItem title="Revert" action=""/>
+ <menuSeparator/>
+ <menuItem title="Page Setup..." action="runPageLayout:" key="P"/>
+ <menuItem title="Print..." action="print:" key="p"/>
+ </menu>
+
+ <menu title="Edit">
+ <menuItem title="Undo" action="undo:" key="z"/>
+ <menuItem title="Redo" action="redo:" key="Z"/>
+ <menuSeparator/>
+ <menuItem title="Cut" action="cut:" key="x"/>
+ <menuItem title="Copy" action="copy:" key="c"/>
+ <menuItem title="Paste" action="paste:" key="v"/>
+ <menuItem title="Delete" action="delete:"/>
+ <menuItem title="Select All" action="selectAll:" key="a"/>
+ </menu>
+
+ <menu title="Window" type="windows">
+ <menuItem title="Close Window" action="performClose:" key="w"/>
+ <menuItem title="Minimize Window" action="performMiniaturize:"
+ key="m"/>
+ <menuSeparator/>
+ <menuItem title="Bring All to Front" action="arrangeInFront:" key=""/>
+ </menu>
+
+ <menu title="Help">
+ <menuItem title="MyApplication Help" action="showHelp:" key="?"/>
+ </menu>
+ </menu>
+ </objects>
+</gsmarkup>
diff --git a/gnustep/Resources/hangman.gorm/data.classes b/gnustep/Resources/hangman.gorm/data.classes
new file mode 100644
index 0000000..609f469
--- /dev/null
+++ b/gnustep/Resources/hangman.gorm/data.classes
@@ -0,0 +1,46 @@
+{
+ "## Comment" = "Do NOT change this file, Gorm maintains it";
+ AppController = {
+ Actions = (
+ "showPrefPanel:"
+ );
+ Outlets = (
+ );
+ Super = NSObject;
+ };
+ FirstResponder = {
+ Actions = (
+ "anotherWord:",
+ "controler:",
+ "newGame:",
+ "orderFrontFontPanel:",
+ "selectLetter:",
+ "showPrefPanel:",
+ "tryALetter:",
+ "willQuit:"
+ );
+ Super = NSObject;
+ };
+ HangmanController = {
+ Actions = (
+ "selectLetter:",
+ "newGame:"
+ );
+ Outlets = (
+ image,
+ letters,
+ message,
+ guessed
+ );
+ Super = NSObject;
+ };
+ WindW = {
+ Actions = (
+ "controler:"
+ );
+ Outlets = (
+ controler
+ );
+ Super = NSObject;
+ };
+}
\ No newline at end of file
diff --git a/gnustep/Resources/hangman.gorm/data.info b/gnustep/Resources/hangman.gorm/data.info
new file mode 100644
index 0000000..234dcc8
Binary files /dev/null and b/gnustep/Resources/hangman.gorm/data.info differ
diff --git a/gnustep/Resources/hangman.gorm/objects.gorm b/gnustep/Resources/hangman.gorm/objects.gorm
new file mode 100644
index 0000000..c9aa3e0
Binary files /dev/null and b/gnustep/Resources/hangman.gorm/objects.gorm differ
diff --git a/gnustep/Resources/hangman.nib/classes.nib b/gnustep/Resources/hangman.nib/classes.nib
new file mode 100644
index 0000000..be2aa7d
--- /dev/null
+++ b/gnustep/Resources/hangman.nib/classes.nib
@@ -0,0 +1,54 @@
+{
+ IBClasses = (
+ {
+ ACTIONS = {
+ newGame = id;
+ selectLetter = id;
+ };
+ CLASS = HangmanController;
+ LANGUAGE = ObjC;
+ OUTLETS = {
+ guessed = id;
+ image = id;
+ letters = id;
+ message = id;
+ };
+ SUPERCLASS = NSObject;
+ },
+ {
+ ACTIONS = {
+ showPrefPanel = id;
+ };
+ CLASS = AppController;
+ LANGUAGE = ObjC;
+ SUPERCLASS = NSObject;
+ },
+ {
+ ACTIONS = {
+ controler = id;
+ };
+ CLASS = WindW;
+ LANGUAGE = ObjC;
+ OUTLETS = {
+ controler = id;
+ };
+ SUPERCLASS = NSObject;
+ },
+ {
+ ACTIONS = {
+ anotherWord = id;
+ controler = id;
+ newGame = id;
+ orderFrontFontPanel = id;
+ selectLetter = id;
+ showPrefPanel = id;
+ tryALetter = id;
+ willQuit = id;
+ };
+ CLASS = FirstResponder;
+ LANGUAGE = ObjC;
+ SUPERCLASS = NSObject;
+ }
+ );
+ IBVersion = 1;
+}
\ No newline at end of file
diff --git a/gnustep/Resources/hangman.nib/info.nib b/gnustep/Resources/hangman.nib/info.nib
new file mode 100644
index 0000000..e51aa2f
--- /dev/null
+++ b/gnustep/Resources/hangman.nib/info.nib
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//GNUstep//DTD plist 0.9//EN" "http://www.gnustep.org/plist-0_9.xml">
+<plist version="0.9">
+<dict>
+ <key>IBDocumentLocation</key>
+ <string>103 298 348 292 0 0 1920 1080</string>
+ <key>IBFramework Version</key>
+ <string>437.0</string>
+ <key>IBOpenItems</key>
+ <array>
+ <integer>26</integer>
+ <integer>2</integer>
+ </array>
+ <key>IBSystem Version</key>
+ <string>8I127</string>
+ <key>IBUsesTextArchiving</key>
+ <true/>
+</dict>
+</plist>
\ No newline at end of file
diff --git a/gnustep/Resources/hangman.nib/keyedobjects.nib b/gnustep/Resources/hangman.nib/keyedobjects.nib
new file mode 100644
index 0000000..b70ab8b
--- /dev/null
+++ b/gnustep/Resources/hangman.nib/keyedobjects.nib
@@ -0,0 +1,6577 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//GNUstep//DTD plist 0.9//EN" "http://www.gnustep.org/plist-0_9.xml">
+<plist version="0.9">
+<dict>
+ <key>$archiver</key>
+ <string>NSKeyedArchiver</string>
+ <key>$objects</key>
+ <array>
+ <string>$null</string>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>459</integer>
+ </dict>
+ <key>NSAccessibilityConnectors</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>2</integer>
+ </dict>
+ <key>NSAccessibilityOidsKeys</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>4</integer>
+ </dict>
+ <key>NSAccessibilityOidsValues</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>5</integer>
+ </dict>
+ <key>NSClassesKeys</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>6</integer>
+ </dict>
+ <key>NSClassesValues</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>7</integer>
+ </dict>
+ <key>NSConnections</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>456</integer>
+ </dict>
+ <key>NSFontManager</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSFramework</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>457</integer>
+ </dict>
+ <key>NSNamesKeys</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>8</integer>
+ </dict>
+ <key>NSNamesValues</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>307</integer>
+ </dict>
+ <key>NSNextOid</key>
+ <integer>65</integer>
+ <key>NSObjectsKeys</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>358</integer>
+ </dict>
+ <key>NSObjectsValues</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>359</integer>
+ </dict>
+ <key>NSOidsKeys</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>360</integer>
+ </dict>
+ <key>NSOidsValues</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>391</integer>
+ </dict>
+ <key>NSRoot</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>296</integer>
+ </dict>
+ <key>NSVisibleWindows</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>458</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>3</integer>
+ </dict>
+ <key>NS.objects</key>
+ <array>
+ </array>
+ </dict>
+ <dict>
+ <key>$classes</key>
+ <array>
+ <string>NSMutableArray</string>
+ <string>NSArray</string>
+ <string>NSObject</string>
+ </array>
+ <key>$classname</key>
+ <string>NSMutableArray</string>
+ </dict>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>3</integer>
+ </dict>
+ <key>NS.objects</key>
+ <array>
+ </array>
+ </dict>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>3</integer>
+ </dict>
+ <key>NS.objects</key>
+ <array>
+ </array>
+ </dict>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>3</integer>
+ </dict>
+ <key>NS.objects</key>
+ <array>
+ </array>
+ </dict>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>3</integer>
+ </dict>
+ <key>NS.objects</key>
+ <array>
+ </array>
+ </dict>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>3</integer>
+ </dict>
+ <key>NS.objects</key>
+ <array>
+ <dict>
+ <key>CF$UID</key>
+ <integer>9</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>242</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>262</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>33</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>145</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>187</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>152</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>292</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>280</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>68</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>124</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>258</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>54</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>180</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>82</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>138</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>61</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>265</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>103</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>166</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>110</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>75</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>40</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>277</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>296</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>131</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>226</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>283</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>251</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>211</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>89</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>231</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>289</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>96</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>159</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>272</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>254</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>26</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>287</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>117</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>47</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>197</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>195</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>268</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>173</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>14</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>299</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>12</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>219</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>274</integer>
+ </dict>
+ </array>
+ </dict>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>25</integer>
+ </dict>
+ <key>NSCell</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>238</integer>
+ </dict>
+ <key>NSEnabled</key>
+ <true/>
+ <key>NSFrame</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>11</integer>
+ </dict>
+ <key>NSNextKeyView</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSPreviousKeyView</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSSubviews</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>10</integer>
+ </dict>
+ <key>NSSuperview</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>12</integer>
+ </dict>
+ <key>NSvFlags</key>
+ <integer>256</integer>
+ </dict>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>3</integer>
+ </dict>
+ <key>NS.objects</key>
+ <array>
+ </array>
+ </dict>
+ <string>{{150, 30}, {25, 24}}</string>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>237</integer>
+ </dict>
+ <key>NSFrame</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>194</integer>
+ </dict>
+ <key>NSNextKeyView</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSPreviousKeyView</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSSubviews</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>13</integer>
+ </dict>
+ <key>NSSuperview</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>195</integer>
+ </dict>
+ <key>NSvFlags</key>
+ <integer>256</integer>
+ </dict>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>3</integer>
+ </dict>
+ <key>NS.objects</key>
+ <array>
+ <dict>
+ <key>CF$UID</key>
+ <integer>14</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>26</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>33</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>40</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>47</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>9</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>54</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>61</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>68</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>75</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>82</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>89</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>96</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>103</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>110</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>117</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>124</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>131</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>138</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>145</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>152</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>159</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>166</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>173</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>180</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>187</integer>
+ </dict>
+ </array>
+ </dict>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>25</integer>
+ </dict>
+ <key>NSCell</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>17</integer>
+ </dict>
+ <key>NSEnabled</key>
+ <true/>
+ <key>NSFrame</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>16</integer>
+ </dict>
+ <key>NSNextKeyView</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSPreviousKeyView</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSSubviews</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>15</integer>
+ </dict>
+ <key>NSSuperview</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>12</integer>
+ </dict>
+ <key>NSvFlags</key>
+ <integer>256</integer>
+ </dict>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>3</integer>
+ </dict>
+ <key>NS.objects</key>
+ <array>
+ </array>
+ </dict>
+ <string>{{0, 30}, {25, 24}}</string>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>24</integer>
+ </dict>
+ <key>NSAlternateContents</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>23</integer>
+ </dict>
+ <key>NSButtonFlags</key>
+ <integer>75628544</integer>
+ <key>NSButtonFlags2</key>
+ <integer>268435456</integer>
+ <key>NSCellFlags</key>
+ <integer>75497536</integer>
+ <key>NSCellFlags2</key>
+ <integer>134217728</integer>
+ <key>NSContents</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>18</integer>
+ </dict>
+ <key>NSControlView</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>14</integer>
+ </dict>
+ <key>NSKeyEquivalent</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>22</integer>
+ </dict>
+ <key>NSPeriodicDelay</key>
+ <integer>0</integer>
+ <key>NSPeriodicInterval</key>
+ <integer>0</integer>
+ <key>NSSupport</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>19</integer>
+ </dict>
+ <key>NSTag</key>
+ <integer>0</integer>
+ </dict>
+ <string>a</string>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>21</integer>
+ </dict>
+ <key>NSName</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>20</integer>
+ </dict>
+ <key>NSSize</key>
+ <real>12</real>
+ </dict>
+ <string>FreeSans</string>
+ <dict>
+ <key>$classes</key>
+ <array>
+ <string>NSFont</string>
+ <string>NSObject</string>
+ </array>
+ <key>$classname</key>
+ <string>NSFont</string>
+ </dict>
+ <string></string>
+ <string></string>
+ <dict>
+ <key>$classes</key>
+ <array>
+ <string>NSButtonCell</string>
+ <string>NSActionCell</string>
+ <string>NSCell</string>
+ <string>NSObject</string>
+ </array>
+ <key>$classname</key>
+ <string>NSButtonCell</string>
+ </dict>
+ <dict>
+ <key>$classes</key>
+ <array>
+ <string>NSButton</string>
+ <string>NSControl</string>
+ <string>NSView</string>
+ <string>NSResponder</string>
+ <string>NSObject</string>
+ </array>
+ <key>$classname</key>
+ <string>NSButton</string>
+ </dict>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>25</integer>
+ </dict>
+ <key>NSCell</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>29</integer>
+ </dict>
+ <key>NSEnabled</key>
+ <true/>
+ <key>NSFrame</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>28</integer>
+ </dict>
+ <key>NSNextKeyView</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSPreviousKeyView</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSSubviews</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>27</integer>
+ </dict>
+ <key>NSSuperview</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>12</integer>
+ </dict>
+ <key>NSvFlags</key>
+ <integer>256</integer>
+ </dict>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>3</integer>
+ </dict>
+ <key>NS.objects</key>
+ <array>
+ </array>
+ </dict>
+ <string>{{30, 30}, {25, 24}}</string>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>24</integer>
+ </dict>
+ <key>NSAlternateContents</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>32</integer>
+ </dict>
+ <key>NSButtonFlags</key>
+ <integer>75628544</integer>
+ <key>NSButtonFlags2</key>
+ <integer>268435456</integer>
+ <key>NSCellFlags</key>
+ <integer>75497536</integer>
+ <key>NSCellFlags2</key>
+ <integer>134217728</integer>
+ <key>NSContents</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>30</integer>
+ </dict>
+ <key>NSControlView</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>26</integer>
+ </dict>
+ <key>NSKeyEquivalent</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>31</integer>
+ </dict>
+ <key>NSPeriodicDelay</key>
+ <integer>0</integer>
+ <key>NSPeriodicInterval</key>
+ <integer>0</integer>
+ <key>NSSupport</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>19</integer>
+ </dict>
+ <key>NSTag</key>
+ <integer>0</integer>
+ </dict>
+ <string>b</string>
+ <string></string>
+ <string></string>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>25</integer>
+ </dict>
+ <key>NSCell</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>36</integer>
+ </dict>
+ <key>NSEnabled</key>
+ <true/>
+ <key>NSFrame</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>35</integer>
+ </dict>
+ <key>NSNextKeyView</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSPreviousKeyView</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSSubviews</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>34</integer>
+ </dict>
+ <key>NSSuperview</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>12</integer>
+ </dict>
+ <key>NSvFlags</key>
+ <integer>256</integer>
+ </dict>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>3</integer>
+ </dict>
+ <key>NS.objects</key>
+ <array>
+ </array>
+ </dict>
+ <string>{{60, 30}, {25, 24}}</string>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>24</integer>
+ </dict>
+ <key>NSAlternateContents</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>39</integer>
+ </dict>
+ <key>NSButtonFlags</key>
+ <integer>75628544</integer>
+ <key>NSButtonFlags2</key>
+ <integer>268435456</integer>
+ <key>NSCellFlags</key>
+ <integer>75497536</integer>
+ <key>NSCellFlags2</key>
+ <integer>134217728</integer>
+ <key>NSContents</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>37</integer>
+ </dict>
+ <key>NSControlView</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>33</integer>
+ </dict>
+ <key>NSKeyEquivalent</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>38</integer>
+ </dict>
+ <key>NSPeriodicDelay</key>
+ <integer>0</integer>
+ <key>NSPeriodicInterval</key>
+ <integer>0</integer>
+ <key>NSSupport</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>19</integer>
+ </dict>
+ <key>NSTag</key>
+ <integer>0</integer>
+ </dict>
+ <string>c</string>
+ <string></string>
+ <string></string>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>25</integer>
+ </dict>
+ <key>NSCell</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>43</integer>
+ </dict>
+ <key>NSEnabled</key>
+ <true/>
+ <key>NSFrame</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>42</integer>
+ </dict>
+ <key>NSNextKeyView</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSPreviousKeyView</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSSubviews</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>41</integer>
+ </dict>
+ <key>NSSuperview</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>12</integer>
+ </dict>
+ <key>NSvFlags</key>
+ <integer>256</integer>
+ </dict>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>3</integer>
+ </dict>
+ <key>NS.objects</key>
+ <array>
+ </array>
+ </dict>
+ <string>{{90, 30}, {25, 24}}</string>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>24</integer>
+ </dict>
+ <key>NSAlternateContents</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>46</integer>
+ </dict>
+ <key>NSButtonFlags</key>
+ <integer>75628544</integer>
+ <key>NSButtonFlags2</key>
+ <integer>268435456</integer>
+ <key>NSCellFlags</key>
+ <integer>75497536</integer>
+ <key>NSCellFlags2</key>
+ <integer>134217728</integer>
+ <key>NSContents</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>44</integer>
+ </dict>
+ <key>NSControlView</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>40</integer>
+ </dict>
+ <key>NSKeyEquivalent</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>45</integer>
+ </dict>
+ <key>NSPeriodicDelay</key>
+ <integer>0</integer>
+ <key>NSPeriodicInterval</key>
+ <integer>0</integer>
+ <key>NSSupport</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>19</integer>
+ </dict>
+ <key>NSTag</key>
+ <integer>0</integer>
+ </dict>
+ <string>d</string>
+ <string></string>
+ <string></string>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>25</integer>
+ </dict>
+ <key>NSCell</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>50</integer>
+ </dict>
+ <key>NSEnabled</key>
+ <true/>
+ <key>NSFrame</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>49</integer>
+ </dict>
+ <key>NSNextKeyView</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSPreviousKeyView</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSSubviews</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>48</integer>
+ </dict>
+ <key>NSSuperview</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>12</integer>
+ </dict>
+ <key>NSvFlags</key>
+ <integer>256</integer>
+ </dict>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>3</integer>
+ </dict>
+ <key>NS.objects</key>
+ <array>
+ </array>
+ </dict>
+ <string>{{120, 30}, {25, 24}}</string>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>24</integer>
+ </dict>
+ <key>NSAlternateContents</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>53</integer>
+ </dict>
+ <key>NSButtonFlags</key>
+ <integer>75628544</integer>
+ <key>NSButtonFlags2</key>
+ <integer>268435456</integer>
+ <key>NSCellFlags</key>
+ <integer>75497536</integer>
+ <key>NSCellFlags2</key>
+ <integer>134217728</integer>
+ <key>NSContents</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>51</integer>
+ </dict>
+ <key>NSControlView</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>47</integer>
+ </dict>
+ <key>NSKeyEquivalent</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>52</integer>
+ </dict>
+ <key>NSPeriodicDelay</key>
+ <integer>0</integer>
+ <key>NSPeriodicInterval</key>
+ <integer>0</integer>
+ <key>NSSupport</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>19</integer>
+ </dict>
+ <key>NSTag</key>
+ <integer>0</integer>
+ </dict>
+ <string>e</string>
+ <string></string>
+ <string></string>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>25</integer>
+ </dict>
+ <key>NSCell</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>57</integer>
+ </dict>
+ <key>NSEnabled</key>
+ <true/>
+ <key>NSFrame</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>56</integer>
+ </dict>
+ <key>NSNextKeyView</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSPreviousKeyView</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSSubviews</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>55</integer>
+ </dict>
+ <key>NSSuperview</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>12</integer>
+ </dict>
+ <key>NSvFlags</key>
+ <integer>256</integer>
+ </dict>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>3</integer>
+ </dict>
+ <key>NS.objects</key>
+ <array>
+ </array>
+ </dict>
+ <string>{{180, 30}, {25, 24}}</string>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>24</integer>
+ </dict>
+ <key>NSAlternateContents</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>60</integer>
+ </dict>
+ <key>NSButtonFlags</key>
+ <integer>75628544</integer>
+ <key>NSButtonFlags2</key>
+ <integer>268435456</integer>
+ <key>NSCellFlags</key>
+ <integer>75497536</integer>
+ <key>NSCellFlags2</key>
+ <integer>134217728</integer>
+ <key>NSContents</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>58</integer>
+ </dict>
+ <key>NSControlView</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>54</integer>
+ </dict>
+ <key>NSKeyEquivalent</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>59</integer>
+ </dict>
+ <key>NSPeriodicDelay</key>
+ <integer>0</integer>
+ <key>NSPeriodicInterval</key>
+ <integer>0</integer>
+ <key>NSSupport</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>19</integer>
+ </dict>
+ <key>NSTag</key>
+ <integer>0</integer>
+ </dict>
+ <string>g</string>
+ <string></string>
+ <string></string>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>25</integer>
+ </dict>
+ <key>NSCell</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>64</integer>
+ </dict>
+ <key>NSEnabled</key>
+ <true/>
+ <key>NSFrame</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>63</integer>
+ </dict>
+ <key>NSNextKeyView</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSPreviousKeyView</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSSubviews</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>62</integer>
+ </dict>
+ <key>NSSuperview</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>12</integer>
+ </dict>
+ <key>NSvFlags</key>
+ <integer>256</integer>
+ </dict>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>3</integer>
+ </dict>
+ <key>NS.objects</key>
+ <array>
+ </array>
+ </dict>
+ <string>{{210, 30}, {25, 24}}</string>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>24</integer>
+ </dict>
+ <key>NSAlternateContents</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>67</integer>
+ </dict>
+ <key>NSButtonFlags</key>
+ <integer>75628544</integer>
+ <key>NSButtonFlags2</key>
+ <integer>268435456</integer>
+ <key>NSCellFlags</key>
+ <integer>75497536</integer>
+ <key>NSCellFlags2</key>
+ <integer>134217728</integer>
+ <key>NSContents</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>65</integer>
+ </dict>
+ <key>NSControlView</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>61</integer>
+ </dict>
+ <key>NSKeyEquivalent</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>66</integer>
+ </dict>
+ <key>NSPeriodicDelay</key>
+ <integer>0</integer>
+ <key>NSPeriodicInterval</key>
+ <integer>0</integer>
+ <key>NSSupport</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>19</integer>
+ </dict>
+ <key>NSTag</key>
+ <integer>0</integer>
+ </dict>
+ <string>h</string>
+ <string></string>
+ <string></string>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>25</integer>
+ </dict>
+ <key>NSCell</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>71</integer>
+ </dict>
+ <key>NSEnabled</key>
+ <true/>
+ <key>NSFrame</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>70</integer>
+ </dict>
+ <key>NSNextKeyView</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSPreviousKeyView</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSSubviews</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>69</integer>
+ </dict>
+ <key>NSSuperview</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>12</integer>
+ </dict>
+ <key>NSvFlags</key>
+ <integer>256</integer>
+ </dict>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>3</integer>
+ </dict>
+ <key>NS.objects</key>
+ <array>
+ </array>
+ </dict>
+ <string>{{240, 30}, {25, 24}}</string>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>24</integer>
+ </dict>
+ <key>NSAlternateContents</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>74</integer>
+ </dict>
+ <key>NSButtonFlags</key>
+ <integer>75628544</integer>
+ <key>NSButtonFlags2</key>
+ <integer>268435456</integer>
+ <key>NSCellFlags</key>
+ <integer>75497536</integer>
+ <key>NSCellFlags2</key>
+ <integer>134217728</integer>
+ <key>NSContents</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>72</integer>
+ </dict>
+ <key>NSControlView</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>68</integer>
+ </dict>
+ <key>NSKeyEquivalent</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>73</integer>
+ </dict>
+ <key>NSPeriodicDelay</key>
+ <integer>0</integer>
+ <key>NSPeriodicInterval</key>
+ <integer>0</integer>
+ <key>NSSupport</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>19</integer>
+ </dict>
+ <key>NSTag</key>
+ <integer>0</integer>
+ </dict>
+ <string>i</string>
+ <string></string>
+ <string></string>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>25</integer>
+ </dict>
+ <key>NSCell</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>78</integer>
+ </dict>
+ <key>NSEnabled</key>
+ <true/>
+ <key>NSFrame</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>77</integer>
+ </dict>
+ <key>NSNextKeyView</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSPreviousKeyView</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSSubviews</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>76</integer>
+ </dict>
+ <key>NSSuperview</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>12</integer>
+ </dict>
+ <key>NSvFlags</key>
+ <integer>256</integer>
+ </dict>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>3</integer>
+ </dict>
+ <key>NS.objects</key>
+ <array>
+ </array>
+ </dict>
+ <string>{{270, 30}, {25, 24}}</string>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>24</integer>
+ </dict>
+ <key>NSAlternateContents</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>81</integer>
+ </dict>
+ <key>NSButtonFlags</key>
+ <integer>75628544</integer>
+ <key>NSButtonFlags2</key>
+ <integer>268435456</integer>
+ <key>NSCellFlags</key>
+ <integer>75497536</integer>
+ <key>NSCellFlags2</key>
+ <integer>134217728</integer>
+ <key>NSContents</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>79</integer>
+ </dict>
+ <key>NSControlView</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>75</integer>
+ </dict>
+ <key>NSKeyEquivalent</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>80</integer>
+ </dict>
+ <key>NSPeriodicDelay</key>
+ <integer>0</integer>
+ <key>NSPeriodicInterval</key>
+ <integer>0</integer>
+ <key>NSSupport</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>19</integer>
+ </dict>
+ <key>NSTag</key>
+ <integer>0</integer>
+ </dict>
+ <string>j</string>
+ <string></string>
+ <string></string>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>25</integer>
+ </dict>
+ <key>NSCell</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>85</integer>
+ </dict>
+ <key>NSEnabled</key>
+ <true/>
+ <key>NSFrame</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>84</integer>
+ </dict>
+ <key>NSNextKeyView</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSPreviousKeyView</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSSubviews</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>83</integer>
+ </dict>
+ <key>NSSuperview</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>12</integer>
+ </dict>
+ <key>NSvFlags</key>
+ <integer>256</integer>
+ </dict>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>3</integer>
+ </dict>
+ <key>NS.objects</key>
+ <array>
+ </array>
+ </dict>
+ <string>{{300, 30}, {25, 24}}</string>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>24</integer>
+ </dict>
+ <key>NSAlternateContents</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>88</integer>
+ </dict>
+ <key>NSButtonFlags</key>
+ <integer>75628544</integer>
+ <key>NSButtonFlags2</key>
+ <integer>268435456</integer>
+ <key>NSCellFlags</key>
+ <integer>75497536</integer>
+ <key>NSCellFlags2</key>
+ <integer>134217728</integer>
+ <key>NSContents</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>86</integer>
+ </dict>
+ <key>NSControlView</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>82</integer>
+ </dict>
+ <key>NSKeyEquivalent</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>87</integer>
+ </dict>
+ <key>NSPeriodicDelay</key>
+ <integer>0</integer>
+ <key>NSPeriodicInterval</key>
+ <integer>0</integer>
+ <key>NSSupport</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>19</integer>
+ </dict>
+ <key>NSTag</key>
+ <integer>0</integer>
+ </dict>
+ <string>k</string>
+ <string></string>
+ <string></string>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>25</integer>
+ </dict>
+ <key>NSCell</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>92</integer>
+ </dict>
+ <key>NSEnabled</key>
+ <true/>
+ <key>NSFrame</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>91</integer>
+ </dict>
+ <key>NSNextKeyView</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSPreviousKeyView</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSSubviews</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>90</integer>
+ </dict>
+ <key>NSSuperview</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>12</integer>
+ </dict>
+ <key>NSvFlags</key>
+ <integer>256</integer>
+ </dict>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>3</integer>
+ </dict>
+ <key>NS.objects</key>
+ <array>
+ </array>
+ </dict>
+ <string>{{329, 29}, {25, 24}}</string>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>24</integer>
+ </dict>
+ <key>NSAlternateContents</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>95</integer>
+ </dict>
+ <key>NSButtonFlags</key>
+ <integer>75628544</integer>
+ <key>NSButtonFlags2</key>
+ <integer>268435456</integer>
+ <key>NSCellFlags</key>
+ <integer>75497536</integer>
+ <key>NSCellFlags2</key>
+ <integer>134217728</integer>
+ <key>NSContents</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>93</integer>
+ </dict>
+ <key>NSControlView</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>89</integer>
+ </dict>
+ <key>NSKeyEquivalent</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>94</integer>
+ </dict>
+ <key>NSPeriodicDelay</key>
+ <integer>0</integer>
+ <key>NSPeriodicInterval</key>
+ <integer>0</integer>
+ <key>NSSupport</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>19</integer>
+ </dict>
+ <key>NSTag</key>
+ <integer>0</integer>
+ </dict>
+ <string>l</string>
+ <string></string>
+ <string></string>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>25</integer>
+ </dict>
+ <key>NSCell</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>99</integer>
+ </dict>
+ <key>NSEnabled</key>
+ <true/>
+ <key>NSFrame</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>98</integer>
+ </dict>
+ <key>NSNextKeyView</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSPreviousKeyView</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSSubviews</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>97</integer>
+ </dict>
+ <key>NSSuperview</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>12</integer>
+ </dict>
+ <key>NSvFlags</key>
+ <integer>256</integer>
+ </dict>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>3</integer>
+ </dict>
+ <key>NS.objects</key>
+ <array>
+ </array>
+ </dict>
+ <string>{{358, 30}, {28, 24}}</string>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>24</integer>
+ </dict>
+ <key>NSAlternateContents</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>102</integer>
+ </dict>
+ <key>NSButtonFlags</key>
+ <integer>75628544</integer>
+ <key>NSButtonFlags2</key>
+ <integer>268435456</integer>
+ <key>NSCellFlags</key>
+ <integer>75497536</integer>
+ <key>NSCellFlags2</key>
+ <integer>134217728</integer>
+ <key>NSContents</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>100</integer>
+ </dict>
+ <key>NSControlView</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>96</integer>
+ </dict>
+ <key>NSKeyEquivalent</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>101</integer>
+ </dict>
+ <key>NSPeriodicDelay</key>
+ <integer>0</integer>
+ <key>NSPeriodicInterval</key>
+ <integer>0</integer>
+ <key>NSSupport</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>19</integer>
+ </dict>
+ <key>NSTag</key>
+ <integer>0</integer>
+ </dict>
+ <string>m</string>
+ <string></string>
+ <string></string>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>25</integer>
+ </dict>
+ <key>NSCell</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>106</integer>
+ </dict>
+ <key>NSEnabled</key>
+ <true/>
+ <key>NSFrame</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>105</integer>
+ </dict>
+ <key>NSNextKeyView</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSPreviousKeyView</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSSubviews</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>104</integer>
+ </dict>
+ <key>NSSuperview</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>12</integer>
+ </dict>
+ <key>NSvFlags</key>
+ <integer>256</integer>
+ </dict>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>3</integer>
+ </dict>
+ <key>NS.objects</key>
+ <array>
+ </array>
+ </dict>
+ <string>{{0, 0}, {25, 24}}</string>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>24</integer>
+ </dict>
+ <key>NSAlternateContents</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>109</integer>
+ </dict>
+ <key>NSButtonFlags</key>
+ <integer>75628544</integer>
+ <key>NSButtonFlags2</key>
+ <integer>268435456</integer>
+ <key>NSCellFlags</key>
+ <integer>75497536</integer>
+ <key>NSCellFlags2</key>
+ <integer>134217728</integer>
+ <key>NSContents</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>107</integer>
+ </dict>
+ <key>NSControlView</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>103</integer>
+ </dict>
+ <key>NSKeyEquivalent</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>108</integer>
+ </dict>
+ <key>NSPeriodicDelay</key>
+ <integer>0</integer>
+ <key>NSPeriodicInterval</key>
+ <integer>0</integer>
+ <key>NSSupport</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>19</integer>
+ </dict>
+ <key>NSTag</key>
+ <integer>0</integer>
+ </dict>
+ <string>n</string>
+ <string></string>
+ <string></string>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>25</integer>
+ </dict>
+ <key>NSCell</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>113</integer>
+ </dict>
+ <key>NSEnabled</key>
+ <true/>
+ <key>NSFrame</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>112</integer>
+ </dict>
+ <key>NSNextKeyView</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSPreviousKeyView</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSSubviews</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>111</integer>
+ </dict>
+ <key>NSSuperview</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>12</integer>
+ </dict>
+ <key>NSvFlags</key>
+ <integer>256</integer>
+ </dict>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>3</integer>
+ </dict>
+ <key>NS.objects</key>
+ <array>
+ </array>
+ </dict>
+ <string>{{30, 0}, {25, 24}}</string>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>24</integer>
+ </dict>
+ <key>NSAlternateContents</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>116</integer>
+ </dict>
+ <key>NSButtonFlags</key>
+ <integer>75628544</integer>
+ <key>NSButtonFlags2</key>
+ <integer>268435456</integer>
+ <key>NSCellFlags</key>
+ <integer>75497536</integer>
+ <key>NSCellFlags2</key>
+ <integer>134217728</integer>
+ <key>NSContents</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>114</integer>
+ </dict>
+ <key>NSControlView</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>110</integer>
+ </dict>
+ <key>NSKeyEquivalent</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>115</integer>
+ </dict>
+ <key>NSPeriodicDelay</key>
+ <integer>0</integer>
+ <key>NSPeriodicInterval</key>
+ <integer>0</integer>
+ <key>NSSupport</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>19</integer>
+ </dict>
+ <key>NSTag</key>
+ <integer>0</integer>
+ </dict>
+ <string>o</string>
+ <string></string>
+ <string></string>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>25</integer>
+ </dict>
+ <key>NSCell</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>120</integer>
+ </dict>
+ <key>NSEnabled</key>
+ <true/>
+ <key>NSFrame</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>119</integer>
+ </dict>
+ <key>NSNextKeyView</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSPreviousKeyView</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSSubviews</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>118</integer>
+ </dict>
+ <key>NSSuperview</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>12</integer>
+ </dict>
+ <key>NSvFlags</key>
+ <integer>256</integer>
+ </dict>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>3</integer>
+ </dict>
+ <key>NS.objects</key>
+ <array>
+ </array>
+ </dict>
+ <string>{{60, 0}, {25, 24}}</string>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>24</integer>
+ </dict>
+ <key>NSAlternateContents</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>123</integer>
+ </dict>
+ <key>NSButtonFlags</key>
+ <integer>75628544</integer>
+ <key>NSButtonFlags2</key>
+ <integer>268435456</integer>
+ <key>NSCellFlags</key>
+ <integer>75497536</integer>
+ <key>NSCellFlags2</key>
+ <integer>134217728</integer>
+ <key>NSContents</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>121</integer>
+ </dict>
+ <key>NSControlView</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>117</integer>
+ </dict>
+ <key>NSKeyEquivalent</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>122</integer>
+ </dict>
+ <key>NSPeriodicDelay</key>
+ <integer>0</integer>
+ <key>NSPeriodicInterval</key>
+ <integer>0</integer>
+ <key>NSSupport</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>19</integer>
+ </dict>
+ <key>NSTag</key>
+ <integer>0</integer>
+ </dict>
+ <string>p</string>
+ <string></string>
+ <string></string>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>25</integer>
+ </dict>
+ <key>NSCell</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>127</integer>
+ </dict>
+ <key>NSEnabled</key>
+ <true/>
+ <key>NSFrame</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>126</integer>
+ </dict>
+ <key>NSNextKeyView</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSPreviousKeyView</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSSubviews</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>125</integer>
+ </dict>
+ <key>NSSuperview</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>12</integer>
+ </dict>
+ <key>NSvFlags</key>
+ <integer>256</integer>
+ </dict>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>3</integer>
+ </dict>
+ <key>NS.objects</key>
+ <array>
+ </array>
+ </dict>
+ <string>{{90, 0}, {25, 24}}</string>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>24</integer>
+ </dict>
+ <key>NSAlternateContents</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>130</integer>
+ </dict>
+ <key>NSButtonFlags</key>
+ <integer>75628544</integer>
+ <key>NSButtonFlags2</key>
+ <integer>268435456</integer>
+ <key>NSCellFlags</key>
+ <integer>75497536</integer>
+ <key>NSCellFlags2</key>
+ <integer>134217728</integer>
+ <key>NSContents</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>128</integer>
+ </dict>
+ <key>NSControlView</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>124</integer>
+ </dict>
+ <key>NSKeyEquivalent</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>129</integer>
+ </dict>
+ <key>NSPeriodicDelay</key>
+ <integer>0</integer>
+ <key>NSPeriodicInterval</key>
+ <integer>0</integer>
+ <key>NSSupport</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>19</integer>
+ </dict>
+ <key>NSTag</key>
+ <integer>0</integer>
+ </dict>
+ <string>q</string>
+ <string></string>
+ <string></string>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>25</integer>
+ </dict>
+ <key>NSCell</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>134</integer>
+ </dict>
+ <key>NSEnabled</key>
+ <true/>
+ <key>NSFrame</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>133</integer>
+ </dict>
+ <key>NSNextKeyView</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSPreviousKeyView</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSSubviews</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>132</integer>
+ </dict>
+ <key>NSSuperview</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>12</integer>
+ </dict>
+ <key>NSvFlags</key>
+ <integer>256</integer>
+ </dict>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>3</integer>
+ </dict>
+ <key>NS.objects</key>
+ <array>
+ </array>
+ </dict>
+ <string>{{120, 0}, {25, 24}}</string>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>24</integer>
+ </dict>
+ <key>NSAlternateContents</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>137</integer>
+ </dict>
+ <key>NSButtonFlags</key>
+ <integer>75628544</integer>
+ <key>NSButtonFlags2</key>
+ <integer>268435456</integer>
+ <key>NSCellFlags</key>
+ <integer>75497536</integer>
+ <key>NSCellFlags2</key>
+ <integer>134217728</integer>
+ <key>NSContents</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>135</integer>
+ </dict>
+ <key>NSControlView</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>131</integer>
+ </dict>
+ <key>NSKeyEquivalent</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>136</integer>
+ </dict>
+ <key>NSPeriodicDelay</key>
+ <integer>0</integer>
+ <key>NSPeriodicInterval</key>
+ <integer>0</integer>
+ <key>NSSupport</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>19</integer>
+ </dict>
+ <key>NSTag</key>
+ <integer>0</integer>
+ </dict>
+ <string>r</string>
+ <string></string>
+ <string></string>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>25</integer>
+ </dict>
+ <key>NSCell</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>141</integer>
+ </dict>
+ <key>NSEnabled</key>
+ <true/>
+ <key>NSFrame</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>140</integer>
+ </dict>
+ <key>NSNextKeyView</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSPreviousKeyView</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSSubviews</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>139</integer>
+ </dict>
+ <key>NSSuperview</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>12</integer>
+ </dict>
+ <key>NSvFlags</key>
+ <integer>256</integer>
+ </dict>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>3</integer>
+ </dict>
+ <key>NS.objects</key>
+ <array>
+ </array>
+ </dict>
+ <string>{{150, 0}, {25, 24}}</string>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>24</integer>
+ </dict>
+ <key>NSAlternateContents</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>144</integer>
+ </dict>
+ <key>NSButtonFlags</key>
+ <integer>75628544</integer>
+ <key>NSButtonFlags2</key>
+ <integer>268435456</integer>
+ <key>NSCellFlags</key>
+ <integer>75497536</integer>
+ <key>NSCellFlags2</key>
+ <integer>134217728</integer>
+ <key>NSContents</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>142</integer>
+ </dict>
+ <key>NSControlView</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>138</integer>
+ </dict>
+ <key>NSKeyEquivalent</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>143</integer>
+ </dict>
+ <key>NSPeriodicDelay</key>
+ <integer>0</integer>
+ <key>NSPeriodicInterval</key>
+ <integer>0</integer>
+ <key>NSSupport</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>19</integer>
+ </dict>
+ <key>NSTag</key>
+ <integer>0</integer>
+ </dict>
+ <string>s</string>
+ <string></string>
+ <string></string>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>25</integer>
+ </dict>
+ <key>NSCell</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>148</integer>
+ </dict>
+ <key>NSEnabled</key>
+ <true/>
+ <key>NSFrame</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>147</integer>
+ </dict>
+ <key>NSNextKeyView</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSPreviousKeyView</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSSubviews</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>146</integer>
+ </dict>
+ <key>NSSuperview</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>12</integer>
+ </dict>
+ <key>NSvFlags</key>
+ <integer>256</integer>
+ </dict>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>3</integer>
+ </dict>
+ <key>NS.objects</key>
+ <array>
+ </array>
+ </dict>
+ <string>{{180, 0}, {25, 24}}</string>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>24</integer>
+ </dict>
+ <key>NSAlternateContents</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>151</integer>
+ </dict>
+ <key>NSButtonFlags</key>
+ <integer>75628544</integer>
+ <key>NSButtonFlags2</key>
+ <integer>268435456</integer>
+ <key>NSCellFlags</key>
+ <integer>75497536</integer>
+ <key>NSCellFlags2</key>
+ <integer>134217728</integer>
+ <key>NSContents</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>149</integer>
+ </dict>
+ <key>NSControlView</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>145</integer>
+ </dict>
+ <key>NSKeyEquivalent</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>150</integer>
+ </dict>
+ <key>NSPeriodicDelay</key>
+ <integer>0</integer>
+ <key>NSPeriodicInterval</key>
+ <integer>0</integer>
+ <key>NSSupport</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>19</integer>
+ </dict>
+ <key>NSTag</key>
+ <integer>0</integer>
+ </dict>
+ <string>t</string>
+ <string></string>
+ <string></string>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>25</integer>
+ </dict>
+ <key>NSCell</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>155</integer>
+ </dict>
+ <key>NSEnabled</key>
+ <true/>
+ <key>NSFrame</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>154</integer>
+ </dict>
+ <key>NSNextKeyView</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSPreviousKeyView</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSSubviews</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>153</integer>
+ </dict>
+ <key>NSSuperview</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>12</integer>
+ </dict>
+ <key>NSvFlags</key>
+ <integer>256</integer>
+ </dict>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>3</integer>
+ </dict>
+ <key>NS.objects</key>
+ <array>
+ </array>
+ </dict>
+ <string>{{210, 0}, {25, 24}}</string>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>24</integer>
+ </dict>
+ <key>NSAlternateContents</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>158</integer>
+ </dict>
+ <key>NSButtonFlags</key>
+ <integer>75628544</integer>
+ <key>NSButtonFlags2</key>
+ <integer>268435456</integer>
+ <key>NSCellFlags</key>
+ <integer>75497536</integer>
+ <key>NSCellFlags2</key>
+ <integer>134217728</integer>
+ <key>NSContents</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>156</integer>
+ </dict>
+ <key>NSControlView</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>152</integer>
+ </dict>
+ <key>NSKeyEquivalent</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>157</integer>
+ </dict>
+ <key>NSPeriodicDelay</key>
+ <integer>0</integer>
+ <key>NSPeriodicInterval</key>
+ <integer>0</integer>
+ <key>NSSupport</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>19</integer>
+ </dict>
+ <key>NSTag</key>
+ <integer>0</integer>
+ </dict>
+ <string>u</string>
+ <string></string>
+ <string></string>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>25</integer>
+ </dict>
+ <key>NSCell</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>162</integer>
+ </dict>
+ <key>NSEnabled</key>
+ <true/>
+ <key>NSFrame</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>161</integer>
+ </dict>
+ <key>NSNextKeyView</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSPreviousKeyView</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSSubviews</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>160</integer>
+ </dict>
+ <key>NSSuperview</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>12</integer>
+ </dict>
+ <key>NSvFlags</key>
+ <integer>256</integer>
+ </dict>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>3</integer>
+ </dict>
+ <key>NS.objects</key>
+ <array>
+ </array>
+ </dict>
+ <string>{{240, 0}, {25, 24}}</string>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>24</integer>
+ </dict>
+ <key>NSAlternateContents</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>165</integer>
+ </dict>
+ <key>NSButtonFlags</key>
+ <integer>75628544</integer>
+ <key>NSButtonFlags2</key>
+ <integer>268435456</integer>
+ <key>NSCellFlags</key>
+ <integer>75497536</integer>
+ <key>NSCellFlags2</key>
+ <integer>134217728</integer>
+ <key>NSContents</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>163</integer>
+ </dict>
+ <key>NSControlView</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>159</integer>
+ </dict>
+ <key>NSKeyEquivalent</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>164</integer>
+ </dict>
+ <key>NSPeriodicDelay</key>
+ <integer>0</integer>
+ <key>NSPeriodicInterval</key>
+ <integer>0</integer>
+ <key>NSSupport</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>19</integer>
+ </dict>
+ <key>NSTag</key>
+ <integer>0</integer>
+ </dict>
+ <string>v</string>
+ <string></string>
+ <string></string>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>25</integer>
+ </dict>
+ <key>NSCell</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>169</integer>
+ </dict>
+ <key>NSEnabled</key>
+ <true/>
+ <key>NSFrame</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>168</integer>
+ </dict>
+ <key>NSNextKeyView</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSPreviousKeyView</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSSubviews</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>167</integer>
+ </dict>
+ <key>NSSuperview</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>12</integer>
+ </dict>
+ <key>NSvFlags</key>
+ <integer>256</integer>
+ </dict>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>3</integer>
+ </dict>
+ <key>NS.objects</key>
+ <array>
+ </array>
+ </dict>
+ <string>{{269, 0}, {27, 24}}</string>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>24</integer>
+ </dict>
+ <key>NSAlternateContents</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>172</integer>
+ </dict>
+ <key>NSButtonFlags</key>
+ <integer>75628544</integer>
+ <key>NSButtonFlags2</key>
+ <integer>268435456</integer>
+ <key>NSCellFlags</key>
+ <integer>75497536</integer>
+ <key>NSCellFlags2</key>
+ <integer>134217728</integer>
+ <key>NSContents</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>170</integer>
+ </dict>
+ <key>NSControlView</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>166</integer>
+ </dict>
+ <key>NSKeyEquivalent</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>171</integer>
+ </dict>
+ <key>NSPeriodicDelay</key>
+ <integer>0</integer>
+ <key>NSPeriodicInterval</key>
+ <integer>0</integer>
+ <key>NSSupport</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>19</integer>
+ </dict>
+ <key>NSTag</key>
+ <integer>0</integer>
+ </dict>
+ <string>w</string>
+ <string></string>
+ <string></string>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>25</integer>
+ </dict>
+ <key>NSCell</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>176</integer>
+ </dict>
+ <key>NSEnabled</key>
+ <true/>
+ <key>NSFrame</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>175</integer>
+ </dict>
+ <key>NSNextKeyView</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSPreviousKeyView</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSSubviews</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>174</integer>
+ </dict>
+ <key>NSSuperview</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>12</integer>
+ </dict>
+ <key>NSvFlags</key>
+ <integer>256</integer>
+ </dict>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>3</integer>
+ </dict>
+ <key>NS.objects</key>
+ <array>
+ </array>
+ </dict>
+ <string>{{300, 0}, {25, 24}}</string>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>24</integer>
+ </dict>
+ <key>NSAlternateContents</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>179</integer>
+ </dict>
+ <key>NSButtonFlags</key>
+ <integer>75628544</integer>
+ <key>NSButtonFlags2</key>
+ <integer>268435456</integer>
+ <key>NSCellFlags</key>
+ <integer>75497536</integer>
+ <key>NSCellFlags2</key>
+ <integer>134217728</integer>
+ <key>NSContents</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>177</integer>
+ </dict>
+ <key>NSControlView</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>173</integer>
+ </dict>
+ <key>NSKeyEquivalent</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>178</integer>
+ </dict>
+ <key>NSPeriodicDelay</key>
+ <integer>0</integer>
+ <key>NSPeriodicInterval</key>
+ <integer>0</integer>
+ <key>NSSupport</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>19</integer>
+ </dict>
+ <key>NSTag</key>
+ <integer>0</integer>
+ </dict>
+ <string>x</string>
+ <string></string>
+ <string></string>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>25</integer>
+ </dict>
+ <key>NSCell</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>183</integer>
+ </dict>
+ <key>NSEnabled</key>
+ <true/>
+ <key>NSFrame</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>182</integer>
+ </dict>
+ <key>NSNextKeyView</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSPreviousKeyView</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSSubviews</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>181</integer>
+ </dict>
+ <key>NSSuperview</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>12</integer>
+ </dict>
+ <key>NSvFlags</key>
+ <integer>256</integer>
+ </dict>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>3</integer>
+ </dict>
+ <key>NS.objects</key>
+ <array>
+ </array>
+ </dict>
+ <string>{{330, 0}, {25, 24}}</string>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>24</integer>
+ </dict>
+ <key>NSAlternateContents</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>186</integer>
+ </dict>
+ <key>NSButtonFlags</key>
+ <integer>75628544</integer>
+ <key>NSButtonFlags2</key>
+ <integer>268435456</integer>
+ <key>NSCellFlags</key>
+ <integer>75497536</integer>
+ <key>NSCellFlags2</key>
+ <integer>134217728</integer>
+ <key>NSContents</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>184</integer>
+ </dict>
+ <key>NSControlView</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>180</integer>
+ </dict>
+ <key>NSKeyEquivalent</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>185</integer>
+ </dict>
+ <key>NSPeriodicDelay</key>
+ <integer>0</integer>
+ <key>NSPeriodicInterval</key>
+ <integer>0</integer>
+ <key>NSSupport</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>19</integer>
+ </dict>
+ <key>NSTag</key>
+ <integer>0</integer>
+ </dict>
+ <string>y</string>
+ <string></string>
+ <string></string>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>25</integer>
+ </dict>
+ <key>NSCell</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>190</integer>
+ </dict>
+ <key>NSEnabled</key>
+ <true/>
+ <key>NSFrame</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>189</integer>
+ </dict>
+ <key>NSNextKeyView</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSPreviousKeyView</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSSubviews</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>188</integer>
+ </dict>
+ <key>NSSuperview</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>12</integer>
+ </dict>
+ <key>NSvFlags</key>
+ <integer>256</integer>
+ </dict>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>3</integer>
+ </dict>
+ <key>NS.objects</key>
+ <array>
+ </array>
+ </dict>
+ <string>{{359, 0}, {27, 24}}</string>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>24</integer>
+ </dict>
+ <key>NSAlternateContents</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>193</integer>
+ </dict>
+ <key>NSButtonFlags</key>
+ <integer>75628544</integer>
+ <key>NSButtonFlags2</key>
+ <integer>268435456</integer>
+ <key>NSCellFlags</key>
+ <integer>75497536</integer>
+ <key>NSCellFlags2</key>
+ <integer>134217728</integer>
+ <key>NSContents</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>191</integer>
+ </dict>
+ <key>NSControlView</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>187</integer>
+ </dict>
+ <key>NSKeyEquivalent</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>192</integer>
+ </dict>
+ <key>NSPeriodicDelay</key>
+ <integer>0</integer>
+ <key>NSPeriodicInterval</key>
+ <integer>0</integer>
+ <key>NSSupport</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>19</integer>
+ </dict>
+ <key>NSTag</key>
+ <integer>0</integer>
+ </dict>
+ <string>z</string>
+ <string></string>
+ <string></string>
+ <string>{{105, 58}, {386, 54}}</string>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>237</integer>
+ </dict>
+ <key>NSFrame</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>236</integer>
+ </dict>
+ <key>NSNextKeyView</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSPreviousKeyView</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSSubviews</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>196</integer>
+ </dict>
+ <key>NSvFlags</key>
+ <integer>274</integer>
+ </dict>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>3</integer>
+ </dict>
+ <key>NS.objects</key>
+ <array>
+ <dict>
+ <key>CF$UID</key>
+ <integer>197</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>211</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>219</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>12</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>226</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>231</integer>
+ </dict>
+ </array>
+ </dict>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>210</integer>
+ </dict>
+ <key>NSCell</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>200</integer>
+ </dict>
+ <key>NSEnabled</key>
+ <true/>
+ <key>NSFrame</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>199</integer>
+ </dict>
+ <key>NSNextKeyView</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSPreviousKeyView</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSSubviews</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>198</integer>
+ </dict>
+ <key>NSSuperview</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>195</integer>
+ </dict>
+ <key>NSvFlags</key>
+ <integer>256</integer>
+ </dict>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>3</integer>
+ </dict>
+ <key>NS.objects</key>
+ <array>
+ </array>
+ </dict>
+ <string>{{11, 94}, {82, 18}}</string>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>209</integer>
+ </dict>
+ <key>NSBackgroundColor</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>203</integer>
+ </dict>
+ <key>NSCellFlags</key>
+ <integer>-2080374720</integer>
+ <key>NSCellFlags2</key>
+ <integer>0</integer>
+ <key>NSContents</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>201</integer>
+ </dict>
+ <key>NSControlView</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>197</integer>
+ </dict>
+ <key>NSDrawsBackground</key>
+ <false/>
+ <key>NSSupport</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>202</integer>
+ </dict>
+ <key>NSTag</key>
+ <integer>0</integer>
+ <key>NSTextColor</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>207</integer>
+ </dict>
+ </dict>
+ <string>Select a letter:</string>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>21</integer>
+ </dict>
+ <key>NSName</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>20</integer>
+ </dict>
+ <key>NSSize</key>
+ <real>12</real>
+ </dict>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>206</integer>
+ </dict>
+ <key>NSCatalogName</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>204</integer>
+ </dict>
+ <key>NSColorName</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>205</integer>
+ </dict>
+ <key>NSColorSpace</key>
+ <integer>6</integer>
+ </dict>
+ <string>System</string>
+ <string>textBackgroundColor</string>
+ <dict>
+ <key>$classes</key>
+ <array>
+ <string>NSColor</string>
+ <string>NSObject</string>
+ </array>
+ <key>$classname</key>
+ <string>NSColor</string>
+ </dict>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>206</integer>
+ </dict>
+ <key>NSCatalogName</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>204</integer>
+ </dict>
+ <key>NSColorName</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>208</integer>
+ </dict>
+ <key>NSColorSpace</key>
+ <integer>6</integer>
+ </dict>
+ <string>textColor</string>
+ <dict>
+ <key>$classes</key>
+ <array>
+ <string>NSTextFieldCell</string>
+ <string>NSActionCell</string>
+ <string>NSCell</string>
+ <string>NSObject</string>
+ </array>
+ <key>$classname</key>
+ <string>NSTextFieldCell</string>
+ </dict>
+ <dict>
+ <key>$classes</key>
+ <array>
+ <string>NSTextField</string>
+ <string>NSControl</string>
+ <string>NSView</string>
+ <string>NSResponder</string>
+ <string>NSObject</string>
+ </array>
+ <key>$classname</key>
+ <string>NSTextField</string>
+ </dict>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>218</integer>
+ </dict>
+ <key>NSCell</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>214</integer>
+ </dict>
+ <key>NSDragTypes</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>216</integer>
+ </dict>
+ <key>NSEditable</key>
+ <false/>
+ <key>NSEnabled</key>
+ <true/>
+ <key>NSFrame</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>213</integer>
+ </dict>
+ <key>NSNextKeyView</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSPreviousKeyView</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSSubviews</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>212</integer>
+ </dict>
+ <key>NSSuperview</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>195</integer>
+ </dict>
+ <key>NSvFlags</key>
+ <integer>268</integer>
+ </dict>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>3</integer>
+ </dict>
+ <key>NS.objects</key>
+ <array>
+ </array>
+ </dict>
+ <string>{{194, 172}, {107, 65}}</string>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>215</integer>
+ </dict>
+ <key>NSAlign</key>
+ <integer>0</integer>
+ <key>NSAnimates</key>
+ <false/>
+ <key>NSCellFlags</key>
+ <integer>64</integer>
+ <key>NSCellFlags2</key>
+ <integer>0</integer>
+ <key>NSContents</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSScale</key>
+ <integer>0</integer>
+ <key>NSStyle</key>
+ <integer>1</integer>
+ </dict>
+ <dict>
+ <key>$classes</key>
+ <array>
+ <string>NSImageCell</string>
+ <string>NSCell</string>
+ <string>NSObject</string>
+ </array>
+ <key>$classname</key>
+ <string>NSImageCell</string>
+ </dict>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>3</integer>
+ </dict>
+ <key>NS.objects</key>
+ <array>
+ <dict>
+ <key>CF$UID</key>
+ <integer>217</integer>
+ </dict>
+ </array>
+ </dict>
+ <string>NSTIFFPboardType</string>
+ <dict>
+ <key>$classes</key>
+ <array>
+ <string>NSImageView</string>
+ <string>NSControl</string>
+ <string>NSView</string>
+ <string>NSResponder</string>
+ <string>NSObject</string>
+ </array>
+ <key>$classname</key>
+ <string>NSImageView</string>
+ </dict>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>25</integer>
+ </dict>
+ <key>NSCell</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>222</integer>
+ </dict>
+ <key>NSEnabled</key>
+ <true/>
+ <key>NSFrame</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>221</integer>
+ </dict>
+ <key>NSNextKeyView</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSPreviousKeyView</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSSubviews</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>220</integer>
+ </dict>
+ <key>NSSuperview</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>195</integer>
+ </dict>
+ <key>NSvFlags</key>
+ <integer>256</integer>
+ </dict>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>3</integer>
+ </dict>
+ <key>NS.objects</key>
+ <array>
+ </array>
+ </dict>
+ <string>{{224, 18}, {77, 24}}</string>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>24</integer>
+ </dict>
+ <key>NSAlternateContents</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>225</integer>
+ </dict>
+ <key>NSButtonFlags</key>
+ <integer>-2105409536</integer>
+ <key>NSButtonFlags2</key>
+ <integer>268435456</integer>
+ <key>NSCellFlags</key>
+ <integer>75497536</integer>
+ <key>NSCellFlags2</key>
+ <integer>134217728</integer>
+ <key>NSContents</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>223</integer>
+ </dict>
+ <key>NSControlView</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>219</integer>
+ </dict>
+ <key>NSKeyEquivalent</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>224</integer>
+ </dict>
+ <key>NSPeriodicDelay</key>
+ <integer>0</integer>
+ <key>NSPeriodicInterval</key>
+ <integer>0</integer>
+ <key>NSSupport</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>19</integer>
+ </dict>
+ <key>NSTag</key>
+ <integer>0</integer>
+ </dict>
+ <string>New Game</string>
+ <string></string>
+ <string></string>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>210</integer>
+ </dict>
+ <key>NSCell</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>229</integer>
+ </dict>
+ <key>NSEnabled</key>
+ <true/>
+ <key>NSFrame</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>228</integer>
+ </dict>
+ <key>NSNextKeyView</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSPreviousKeyView</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSSubviews</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>227</integer>
+ </dict>
+ <key>NSSuperview</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>195</integer>
+ </dict>
+ <key>NSvFlags</key>
+ <integer>256</integer>
+ </dict>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>3</integer>
+ </dict>
+ <key>NS.objects</key>
+ <array>
+ </array>
+ </dict>
+ <string>{{315, 179}, {167, 46}}</string>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>209</integer>
+ </dict>
+ <key>NSBackgroundColor</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>203</integer>
+ </dict>
+ <key>NSCellFlags</key>
+ <integer>-2080374720</integer>
+ <key>NSCellFlags2</key>
+ <integer>0</integer>
+ <key>NSContents</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>230</integer>
+ </dict>
+ <key>NSControlView</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>226</integer>
+ </dict>
+ <key>NSDrawsBackground</key>
+ <false/>
+ <key>NSSupport</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>202</integer>
+ </dict>
+ <key>NSTag</key>
+ <integer>0</integer>
+ <key>NSTextColor</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>207</integer>
+ </dict>
+ </dict>
+ <string>Play Hangman</string>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>210</integer>
+ </dict>
+ <key>NSCell</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>234</integer>
+ </dict>
+ <key>NSEnabled</key>
+ <true/>
+ <key>NSFrame</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>233</integer>
+ </dict>
+ <key>NSNextKeyView</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSPreviousKeyView</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSSubviews</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>232</integer>
+ </dict>
+ <key>NSSuperview</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>195</integer>
+ </dict>
+ <key>NSvFlags</key>
+ <integer>256</integer>
+ </dict>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>3</integer>
+ </dict>
+ <key>NS.objects</key>
+ <array>
+ </array>
+ </dict>
+ <string>{{66, 124}, {377, 35}}</string>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>209</integer>
+ </dict>
+ <key>NSBackgroundColor</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>203</integer>
+ </dict>
+ <key>NSCellFlags</key>
+ <integer>-2080374720</integer>
+ <key>NSCellFlags2</key>
+ <integer>134217728</integer>
+ <key>NSContents</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>235</integer>
+ </dict>
+ <key>NSControlView</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>231</integer>
+ </dict>
+ <key>NSDrawsBackground</key>
+ <false/>
+ <key>NSSupport</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>202</integer>
+ </dict>
+ <key>NSTag</key>
+ <integer>0</integer>
+ <key>NSTextColor</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>207</integer>
+ </dict>
+ </dict>
+ <string>Word</string>
+ <string>{{1, 9}, {503, 248}}</string>
+ <dict>
+ <key>$classes</key>
+ <array>
+ <string>NSView</string>
+ <string>NSResponder</string>
+ <string>NSObject</string>
+ </array>
+ <key>$classname</key>
+ <string>NSView</string>
+ </dict>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>24</integer>
+ </dict>
+ <key>NSAlternateContents</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>241</integer>
+ </dict>
+ <key>NSButtonFlags</key>
+ <integer>75628544</integer>
+ <key>NSButtonFlags2</key>
+ <integer>268435456</integer>
+ <key>NSCellFlags</key>
+ <integer>75497536</integer>
+ <key>NSCellFlags2</key>
+ <integer>134217728</integer>
+ <key>NSContents</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>239</integer>
+ </dict>
+ <key>NSControlView</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>9</integer>
+ </dict>
+ <key>NSKeyEquivalent</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>240</integer>
+ </dict>
+ <key>NSPeriodicDelay</key>
+ <integer>0</integer>
+ <key>NSPeriodicInterval</key>
+ <integer>0</integer>
+ <key>NSSupport</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>19</integer>
+ </dict>
+ <key>NSTag</key>
+ <integer>0</integer>
+ </dict>
+ <string>f</string>
+ <string></string>
+ <string></string>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>257</integer>
+ </dict>
+ <key>NSAction</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSIsDisabled</key>
+ <true/>
+ <key>NSKeyEquiv</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>244</integer>
+ </dict>
+ <key>NSKeyEquivModMask</key>
+ <integer>1048576</integer>
+ <key>NSMenu</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>251</integer>
+ </dict>
+ <key>NSMixedImage</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>249</integer>
+ </dict>
+ <key>NSMnemonicLoc</key>
+ <integer>255</integer>
+ <key>NSOffImage</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSOnImage</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>245</integer>
+ </dict>
+ <key>NSState</key>
+ <integer>0</integer>
+ <key>NSSubmenu</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSTarget</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSTitle</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>243</integer>
+ </dict>
+ </dict>
+ <string>Close Window</string>
+ <string>w</string>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>248</integer>
+ </dict>
+ <key>NSColor</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>246</integer>
+ </dict>
+ <key>NSImageFlags</key>
+ <integer>0</integer>
+ <key>NSSize</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>247</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>206</integer>
+ </dict>
+ <key>NSColorSpace</key>
+ <integer>3</integer>
+ <key>NSWhite</key>
+ <data>
+MC4wMDAwMDA=</data>
+ </dict>
+ <string>{0, 0}</string>
+ <dict>
+ <key>$classes</key>
+ <array>
+ <string>NSImage</string>
+ <string>NSObject</string>
+ </array>
+ <key>$classname</key>
+ <string>NSImage</string>
+ </dict>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>248</integer>
+ </dict>
+ <key>NSColor</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>246</integer>
+ </dict>
+ <key>NSImageFlags</key>
+ <integer>0</integer>
+ <key>NSSize</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>250</integer>
+ </dict>
+ </dict>
+ <string>{0, 0}</string>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>261</integer>
+ </dict>
+ <key>NSMenuItems</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>253</integer>
+ </dict>
+ <key>NSTitle</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>252</integer>
+ </dict>
+ </dict>
+ <string>Windows</string>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>3</integer>
+ </dict>
+ <key>NS.objects</key>
+ <array>
+ <dict>
+ <key>CF$UID</key>
+ <integer>254</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>258</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>242</integer>
+ </dict>
+ </array>
+ </dict>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>257</integer>
+ </dict>
+ <key>NSAction</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSIsDisabled</key>
+ <true/>
+ <key>NSKeyEquiv</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>256</integer>
+ </dict>
+ <key>NSKeyEquivModMask</key>
+ <integer>1048576</integer>
+ <key>NSMenu</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>251</integer>
+ </dict>
+ <key>NSMixedImage</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>249</integer>
+ </dict>
+ <key>NSMnemonicLoc</key>
+ <integer>255</integer>
+ <key>NSOffImage</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSOnImage</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>245</integer>
+ </dict>
+ <key>NSState</key>
+ <integer>0</integer>
+ <key>NSSubmenu</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSTarget</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSTitle</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>255</integer>
+ </dict>
+ </dict>
+ <string>Arrange In Front</string>
+ <string></string>
+ <dict>
+ <key>$classes</key>
+ <array>
+ <string>NSMenuItem</string>
+ <string>NSObject</string>
+ </array>
+ <key>$classname</key>
+ <string>NSMenuItem</string>
+ </dict>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>257</integer>
+ </dict>
+ <key>NSAction</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSIsDisabled</key>
+ <true/>
+ <key>NSKeyEquiv</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>260</integer>
+ </dict>
+ <key>NSKeyEquivModMask</key>
+ <integer>1048576</integer>
+ <key>NSMenu</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>251</integer>
+ </dict>
+ <key>NSMixedImage</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>249</integer>
+ </dict>
+ <key>NSMnemonicLoc</key>
+ <integer>255</integer>
+ <key>NSOffImage</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSOnImage</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>245</integer>
+ </dict>
+ <key>NSState</key>
+ <integer>0</integer>
+ <key>NSSubmenu</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSTarget</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSTitle</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>259</integer>
+ </dict>
+ </dict>
+ <string>Miniaturize Window</string>
+ <string>m</string>
+ <dict>
+ <key>$classes</key>
+ <array>
+ <string>NSMenu</string>
+ <string>NSObject</string>
+ </array>
+ <key>$classname</key>
+ <string>NSMenu</string>
+ </dict>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>257</integer>
+ </dict>
+ <key>NSAction</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>263</integer>
+ </dict>
+ <key>NSIsDisabled</key>
+ <false/>
+ <key>NSKeyEquiv</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>264</integer>
+ </dict>
+ <key>NSKeyEquivModMask</key>
+ <integer>1048576</integer>
+ <key>NSMenu</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>265</integer>
+ </dict>
+ <key>NSMixedImage</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>249</integer>
+ </dict>
+ <key>NSMnemonicLoc</key>
+ <integer>255</integer>
+ <key>NSOffImage</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSOnImage</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>245</integer>
+ </dict>
+ <key>NSState</key>
+ <integer>0</integer>
+ <key>NSSubmenu</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>251</integer>
+ </dict>
+ <key>NSTarget</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>265</integer>
+ </dict>
+ <key>NSTitle</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>252</integer>
+ </dict>
+ </dict>
+ <string>submenuAction:</string>
+ <string></string>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>261</integer>
+ </dict>
+ <key>NSMenuItems</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>267</integer>
+ </dict>
+ <key>NSName</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>295</integer>
+ </dict>
+ <key>NSTitle</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>266</integer>
+ </dict>
+ </dict>
+ <string>Hang Man</string>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>3</integer>
+ </dict>
+ <key>NS.objects</key>
+ <array>
+ <dict>
+ <key>CF$UID</key>
+ <integer>268</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>262</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>283</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>289</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>292</integer>
+ </dict>
+ </array>
+ </dict>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>257</integer>
+ </dict>
+ <key>NSAction</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>270</integer>
+ </dict>
+ <key>NSIsDisabled</key>
+ <true/>
+ <key>NSKeyEquiv</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>271</integer>
+ </dict>
+ <key>NSKeyEquivModMask</key>
+ <integer>1048576</integer>
+ <key>NSMenu</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>265</integer>
+ </dict>
+ <key>NSMixedImage</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>249</integer>
+ </dict>
+ <key>NSMnemonicLoc</key>
+ <integer>255</integer>
+ <key>NSOffImage</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSOnImage</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>245</integer>
+ </dict>
+ <key>NSState</key>
+ <integer>0</integer>
+ <key>NSSubmenu</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>272</integer>
+ </dict>
+ <key>NSTarget</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>265</integer>
+ </dict>
+ <key>NSTitle</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>269</integer>
+ </dict>
+ </dict>
+ <string>Info</string>
+ <string>submenuAction:</string>
+ <string></string>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>261</integer>
+ </dict>
+ <key>NSMenuItems</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>273</integer>
+ </dict>
+ <key>NSTitle</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>269</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>3</integer>
+ </dict>
+ <key>NS.objects</key>
+ <array>
+ <dict>
+ <key>CF$UID</key>
+ <integer>274</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>277</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>280</integer>
+ </dict>
+ </array>
+ </dict>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>257</integer>
+ </dict>
+ <key>NSAction</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSIsDisabled</key>
+ <true/>
+ <key>NSKeyEquiv</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>276</integer>
+ </dict>
+ <key>NSKeyEquivModMask</key>
+ <integer>1048576</integer>
+ <key>NSMenu</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>272</integer>
+ </dict>
+ <key>NSMixedImage</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>249</integer>
+ </dict>
+ <key>NSMnemonicLoc</key>
+ <integer>255</integer>
+ <key>NSOffImage</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSOnImage</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>245</integer>
+ </dict>
+ <key>NSState</key>
+ <integer>0</integer>
+ <key>NSSubmenu</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSTarget</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSTitle</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>275</integer>
+ </dict>
+ </dict>
+ <string>Info Panel...</string>
+ <string></string>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>257</integer>
+ </dict>
+ <key>NSAction</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSIsDisabled</key>
+ <true/>
+ <key>NSKeyEquiv</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>279</integer>
+ </dict>
+ <key>NSKeyEquivModMask</key>
+ <integer>1048576</integer>
+ <key>NSMenu</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>272</integer>
+ </dict>
+ <key>NSMixedImage</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>249</integer>
+ </dict>
+ <key>NSMnemonicLoc</key>
+ <integer>255</integer>
+ <key>NSOffImage</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSOnImage</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>245</integer>
+ </dict>
+ <key>NSState</key>
+ <integer>0</integer>
+ <key>NSSubmenu</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSTarget</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSTitle</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>278</integer>
+ </dict>
+ </dict>
+ <string>Preferences...</string>
+ <string></string>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>257</integer>
+ </dict>
+ <key>NSAction</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSIsDisabled</key>
+ <true/>
+ <key>NSKeyEquiv</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>282</integer>
+ </dict>
+ <key>NSKeyEquivModMask</key>
+ <integer>1048576</integer>
+ <key>NSMenu</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>272</integer>
+ </dict>
+ <key>NSMixedImage</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>249</integer>
+ </dict>
+ <key>NSMnemonicLoc</key>
+ <integer>255</integer>
+ <key>NSOffImage</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSOnImage</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>245</integer>
+ </dict>
+ <key>NSState</key>
+ <integer>0</integer>
+ <key>NSSubmenu</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSTarget</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSTitle</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>281</integer>
+ </dict>
+ </dict>
+ <string>Help...</string>
+ <string>?</string>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>257</integer>
+ </dict>
+ <key>NSAction</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>285</integer>
+ </dict>
+ <key>NSIsDisabled</key>
+ <false/>
+ <key>NSKeyEquiv</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>286</integer>
+ </dict>
+ <key>NSKeyEquivModMask</key>
+ <integer>1048576</integer>
+ <key>NSMenu</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>265</integer>
+ </dict>
+ <key>NSMixedImage</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>249</integer>
+ </dict>
+ <key>NSMnemonicLoc</key>
+ <integer>255</integer>
+ <key>NSOffImage</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSOnImage</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>245</integer>
+ </dict>
+ <key>NSState</key>
+ <integer>0</integer>
+ <key>NSSubmenu</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>287</integer>
+ </dict>
+ <key>NSTarget</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>265</integer>
+ </dict>
+ <key>NSTitle</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>284</integer>
+ </dict>
+ </dict>
+ <string>Services</string>
+ <string>submenuAction:</string>
+ <string></string>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>261</integer>
+ </dict>
+ <key>NSMenuItems</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>288</integer>
+ </dict>
+ <key>NSTitle</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>284</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>3</integer>
+ </dict>
+ <key>NS.objects</key>
+ <array>
+ </array>
+ </dict>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>257</integer>
+ </dict>
+ <key>NSAction</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSIsDisabled</key>
+ <true/>
+ <key>NSKeyEquiv</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>291</integer>
+ </dict>
+ <key>NSKeyEquivModMask</key>
+ <integer>1048576</integer>
+ <key>NSMenu</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>265</integer>
+ </dict>
+ <key>NSMixedImage</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>249</integer>
+ </dict>
+ <key>NSMnemonicLoc</key>
+ <integer>255</integer>
+ <key>NSOffImage</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSOnImage</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>245</integer>
+ </dict>
+ <key>NSState</key>
+ <integer>0</integer>
+ <key>NSSubmenu</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSTarget</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSTitle</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>290</integer>
+ </dict>
+ </dict>
+ <string>Hide</string>
+ <string>h</string>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>257</integer>
+ </dict>
+ <key>NSAction</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSIsDisabled</key>
+ <true/>
+ <key>NSKeyEquiv</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>294</integer>
+ </dict>
+ <key>NSKeyEquivModMask</key>
+ <integer>1048576</integer>
+ <key>NSMenu</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>265</integer>
+ </dict>
+ <key>NSMixedImage</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>249</integer>
+ </dict>
+ <key>NSMnemonicLoc</key>
+ <integer>255</integer>
+ <key>NSOffImage</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSOnImage</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>245</integer>
+ </dict>
+ <key>NSState</key>
+ <integer>0</integer>
+ <key>NSSubmenu</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSTarget</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSTitle</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>293</integer>
+ </dict>
+ </dict>
+ <string>Quit</string>
+ <string>q</string>
+ <string>_NSMainMenu</string>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>298</integer>
+ </dict>
+ <key>NSClassName</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>297</integer>
+ </dict>
+ </dict>
+ <string>HangmanController</string>
+ <dict>
+ <key>$classes</key>
+ <array>
+ <string>NSCustomObject</string>
+ <string>NSObject</string>
+ </array>
+ <key>$classname</key>
+ <string>NSCustomObject</string>
+ </dict>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>306</integer>
+ </dict>
+ <key>NSFrameAutosaveName</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSMaxSize</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>303</integer>
+ </dict>
+ <key>NSMinSize</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>302</integer>
+ </dict>
+ <key>NSViewClass</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>300</integer>
+ </dict>
+ <key>NSWTFlags</key>
+ <integer>1308884992</integer>
+ <key>NSWindowBacking</key>
+ <integer>2</integer>
+ <key>NSWindowClass</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>301</integer>
+ </dict>
+ <key>NSWindowRect</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>304</integer>
+ </dict>
+ <key>NSWindowStyleMask</key>
+ <integer>15</integer>
+ <key>NSWindowTitle</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>305</integer>
+ </dict>
+ <key>NSWindowView</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>195</integer>
+ </dict>
+ </dict>
+ <string>NSView</string>
+ <string>NSPanel</string>
+ <string>{3, 33}</string>
+ <string>{10000, 10000}</string>
+ <string>{{452, 594}, {503, 248}}</string>
+ <string>Hangman Game</string>
+ <dict>
+ <key>$classes</key>
+ <array>
+ <string>NSWindowTemplate</string>
+ <string>NSObject</string>
+ </array>
+ <key>$classname</key>
+ <string>NSWindowTemplate</string>
+ </dict>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>3</integer>
+ </dict>
+ <key>NS.objects</key>
+ <array>
+ <dict>
+ <key>CF$UID</key>
+ <integer>308</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>309</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>310</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>311</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>312</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>313</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>314</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>315</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>316</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>317</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>318</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>319</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>320</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>321</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>322</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>323</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>324</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>325</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>326</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>327</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>328</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>329</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>330</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>331</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>332</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>333</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>334</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>335</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>336</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>337</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>338</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>339</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>340</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>341</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>342</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>343</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>344</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>345</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>346</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>347</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>348</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>349</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>350</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>351</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>352</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>353</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>354</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>355</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>356</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>357</integer>
+ </dict>
+ </array>
+ </dict>
+ <string>Button(5)</string>
+ <string>MenuItem18</string>
+ <string>MenuItem15</string>
+ <string>Button(2)</string>
+ <string>Button(19)</string>
+ <string>Button(25)</string>
+ <string>Button(20)</string>
+ <string>MenuItem25</string>
+ <string>MenuItem23</string>
+ <string>Button(8)</string>
+ <string>Button(16)</string>
+ <string>MenuItem17</string>
+ <string>Button(6)</string>
+ <string>Button(24)</string>
+ <string>Button(10)</string>
+ <string>Button(18)</string>
+ <string>Button(7)</string>
+ <string>MainMenu</string>
+ <string>Button(13)</string>
+ <string>Button(22)</string>
+ <string>Button(14)</string>
+ <string>Button(9)</string>
+ <string>Button(3)</string>
+ <string>MenuItem22</string>
+ <string>File's Owner</string>
+ <string>Button(17)</string>
+ <string>TextField(0)</string>
+ <string>MenuItem24</string>
+ <string>NSWindowsMenu</string>
+ <string>ImageView(0)</string>
+ <string>Button(11)</string>
+ <string>TextField(2)</string>
+ <string>MenuItem14</string>
+ <string>Button(12)</string>
+ <string>Button(21)</string>
+ <string>GormNSMenu3</string>
+ <string>MenuItem16</string>
+ <string>Button(1)</string>
+ <string>NSServicesMenu</string>
+ <string>Button(15)</string>
+ <string>Button(4)</string>
+ <string>TextField(1)</string>
+ <string>View(0)</string>
+ <string>MenuItem26</string>
+ <string>Button(23)</string>
+ <string>Button(0)</string>
+ <string>Panel(0)</string>
+ <string>View(1)</string>
+ <string>Button(26)</string>
+ <string>MenuItem21</string>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>3</integer>
+ </dict>
+ <key>NS.objects</key>
+ <array>
+ <dict>
+ <key>CF$UID</key>
+ <integer>9</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>242</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>262</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>33</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>145</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>187</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>152</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>292</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>280</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>68</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>124</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>258</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>54</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>180</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>82</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>138</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>61</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>265</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>103</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>166</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>110</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>75</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>40</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>277</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>131</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>226</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>283</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>251</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>211</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>89</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>231</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>289</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>96</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>159</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>272</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>254</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>26</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>287</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>117</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>47</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>197</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>195</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>268</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>173</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>14</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>299</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>219</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>12</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>274</integer>
+ </dict>
+ </array>
+ </dict>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>3</integer>
+ </dict>
+ <key>NS.objects</key>
+ <array>
+ <dict>
+ <key>CF$UID</key>
+ <integer>12</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>251</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>265</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>12</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>12</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>12</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>12</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>265</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>272</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>12</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>12</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>251</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>12</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>12</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>12</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>12</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>12</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>296</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>12</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>12</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>12</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>12</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>12</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>272</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>12</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>195</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>265</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>262</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>195</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>12</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>195</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>265</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>12</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>12</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>268</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>251</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>12</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>283</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>12</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>12</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>195</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>299</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>265</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>12</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>12</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>296</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>195</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>195</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>272</integer>
+ </dict>
+ </array>
+ </dict>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>3</integer>
+ </dict>
+ <key>NS.objects</key>
+ <array>
+ <dict>
+ <key>CF$UID</key>
+ <integer>9</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>242</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>361</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>262</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>145</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>33</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>364</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>187</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>367</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>152</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>292</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>280</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>68</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>124</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>258</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>54</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>180</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>369</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>138</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>82</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>371</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>373</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>265</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>61</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>103</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>166</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>110</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>75</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>375</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>377</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>40</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>379</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>277</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>296</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>131</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>226</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>283</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>251</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>211</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>89</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>231</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>289</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>96</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>159</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>272</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>381</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>383</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>385</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>254</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>287</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>26</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>387</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>117</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>47</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>197</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>195</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>268</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>173</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>299</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>14</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>389</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>12</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>219</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>274</integer>
+ </dict>
+ </array>
+ </dict>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>363</integer>
+ </dict>
+ <key>NSDestination</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>265</integer>
+ </dict>
+ <key>NSLabel</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>362</integer>
+ </dict>
+ <key>NSSource</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>283</integer>
+ </dict>
+ </dict>
+ <string>submenuAction:</string>
+ <dict>
+ <key>$classes</key>
+ <array>
+ <string>NSNibControlConnector</string>
+ <string>NSNibConnector</string>
+ <string>NSObject</string>
+ </array>
+ <key>$classname</key>
+ <string>NSNibControlConnector</string>
+ </dict>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>366</integer>
+ </dict>
+ <key>NSDestination</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>231</integer>
+ </dict>
+ <key>NSLabel</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>365</integer>
+ </dict>
+ <key>NSSource</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>296</integer>
+ </dict>
+ </dict>
+ <string>guessed</string>
+ <dict>
+ <key>$classes</key>
+ <array>
+ <string>NSNibOutletConnector</string>
+ <string>NSNibConnector</string>
+ <string>NSObject</string>
+ </array>
+ <key>$classname</key>
+ <string>NSNibOutletConnector</string>
+ </dict>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>363</integer>
+ </dict>
+ <key>NSDestination</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSLabel</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>368</integer>
+ </dict>
+ <key>NSSource</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>254</integer>
+ </dict>
+ </dict>
+ <string>arrangeInFront:</string>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>366</integer>
+ </dict>
+ <key>NSDestination</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>211</integer>
+ </dict>
+ <key>NSLabel</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>370</integer>
+ </dict>
+ <key>NSSource</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>296</integer>
+ </dict>
+ </dict>
+ <string>image</string>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>363</integer>
+ </dict>
+ <key>NSDestination</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSLabel</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>372</integer>
+ </dict>
+ <key>NSSource</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>258</integer>
+ </dict>
+ </dict>
+ <string>performMiniaturize:</string>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>363</integer>
+ </dict>
+ <key>NSDestination</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSLabel</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>374</integer>
+ </dict>
+ <key>NSSource</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>289</integer>
+ </dict>
+ </dict>
+ <string>hide:</string>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>366</integer>
+ </dict>
+ <key>NSDestination</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>12</integer>
+ </dict>
+ <key>NSLabel</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>376</integer>
+ </dict>
+ <key>NSSource</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>296</integer>
+ </dict>
+ </dict>
+ <string>letters</string>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>363</integer>
+ </dict>
+ <key>NSDestination</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>265</integer>
+ </dict>
+ <key>NSLabel</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>378</integer>
+ </dict>
+ <key>NSSource</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>268</integer>
+ </dict>
+ </dict>
+ <string>submenuAction:</string>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>363</integer>
+ </dict>
+ <key>NSDestination</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSLabel</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>380</integer>
+ </dict>
+ <key>NSSource</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>292</integer>
+ </dict>
+ </dict>
+ <string>terminate:</string>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>363</integer>
+ </dict>
+ <key>NSDestination</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSLabel</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>382</integer>
+ </dict>
+ <key>NSSource</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>242</integer>
+ </dict>
+ </dict>
+ <string>performClose:</string>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>363</integer>
+ </dict>
+ <key>NSDestination</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>296</integer>
+ </dict>
+ <key>NSLabel</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>384</integer>
+ </dict>
+ <key>NSSource</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>219</integer>
+ </dict>
+ </dict>
+ <string>newGame:</string>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>363</integer>
+ </dict>
+ <key>NSDestination</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>265</integer>
+ </dict>
+ <key>NSLabel</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>386</integer>
+ </dict>
+ <key>NSSource</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>262</integer>
+ </dict>
+ </dict>
+ <string>submenuAction:</string>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>363</integer>
+ </dict>
+ <key>NSDestination</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NSLabel</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>388</integer>
+ </dict>
+ <key>NSSource</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>274</integer>
+ </dict>
+ </dict>
+ <string>orderFrontStandardInfoPanel:</string>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>366</integer>
+ </dict>
+ <key>NSDestination</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>226</integer>
+ </dict>
+ <key>NSLabel</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>390</integer>
+ </dict>
+ <key>NSSource</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>296</integer>
+ </dict>
+ </dict>
+ <string>message</string>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>3</integer>
+ </dict>
+ <key>NS.objects</key>
+ <array>
+ <dict>
+ <key>CF$UID</key>
+ <integer>392</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>393</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>394</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>395</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>396</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>397</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>398</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>399</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>400</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>401</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>402</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>403</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>404</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>405</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>406</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>407</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>408</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>409</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>410</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>411</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>412</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>413</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>414</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>415</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>416</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>417</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>418</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>419</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>420</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>421</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>422</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>423</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>424</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>425</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>426</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>427</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>428</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>429</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>430</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>431</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>432</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>433</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>434</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>435</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>436</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>437</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>438</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>439</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>440</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>441</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>442</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>443</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>444</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>445</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>446</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>447</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>448</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>449</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>450</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>451</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>452</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>453</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>454</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>455</integer>
+ </dict>
+ </array>
+ </dict>
+ <integer>35</integer>
+ <integer>16</integer>
+ <integer>19</integer>
+ <integer>12</integer>
+ <integer>49</integer>
+ <integer>32</integer>
+ <integer>61</integer>
+ <integer>55</integer>
+ <integer>23</integer>
+ <integer>50</integer>
+ <integer>4</integer>
+ <integer>9</integer>
+ <integer>38</integer>
+ <integer>46</integer>
+ <integer>15</integer>
+ <integer>36</integer>
+ <integer>54</integer>
+ <integer>62</integer>
+ <integer>48</integer>
+ <integer>40</integer>
+ <integer>24</integer>
+ <integer>20</integer>
+ <integer>2</integer>
+ <integer>37</integer>
+ <integer>43</integer>
+ <integer>52</integer>
+ <integer>44</integer>
+ <integer>39</integer>
+ <integer>63</integer>
+ <integer>17</integer>
+ <integer>33</integer>
+ <integer>21</integer>
+ <integer>8</integer>
+ <integer>1</integer>
+ <integer>47</integer>
+ <integer>58</integer>
+ <integer>10</integer>
+ <integer>13</integer>
+ <integer>30</integer>
+ <integer>41</integer>
+ <integer>59</integer>
+ <integer>3</integer>
+ <integer>42</integer>
+ <integer>51</integer>
+ <integer>6</integer>
+ <integer>25</integer>
+ <integer>64</integer>
+ <integer>18</integer>
+ <integer>14</integer>
+ <integer>11</integer>
+ <integer>31</integer>
+ <integer>22</integer>
+ <integer>45</integer>
+ <integer>34</integer>
+ <integer>28</integer>
+ <integer>27</integer>
+ <integer>5</integer>
+ <integer>53</integer>
+ <integer>26</integer>
+ <integer>29</integer>
+ <integer>60</integer>
+ <integer>57</integer>
+ <integer>56</integer>
+ <integer>7</integer>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>3</integer>
+ </dict>
+ <key>NS.objects</key>
+ <array>
+ <dict>
+ <key>CF$UID</key>
+ <integer>377</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>385</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>361</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>373</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>379</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>387</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>367</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>371</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>381</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>389</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>364</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>369</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>375</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>383</integer>
+ </dict>
+ </array>
+ </dict>
+ <string>IBCocoaFramework</string>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>3</integer>
+ </dict>
+ <key>NS.objects</key>
+ <array>
+ <dict>
+ <key>CF$UID</key>
+ <integer>299</integer>
+ </dict>
+ </array>
+ </dict>
+ <dict>
+ <key>$classes</key>
+ <array>
+ <string>NSIBObjectData</string>
+ <string>NSObject</string>
+ </array>
+ <key>$classname</key>
+ <string>NSIBObjectData</string>
+ </dict>
+ </array>
+ <key>$top</key>
+ <dict>
+ <key>IB.objectdata</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>1</integer>
+ </dict>
+ </dict>
+ <key>$version</key>
+ <integer>100000</integer>
+</dict>
+</plist>
\ No newline at end of file
diff --git a/gnustep/Resources/hung-0.png b/gnustep/Resources/hung-0.png
new file mode 120000
index 0000000..4804c15
--- /dev/null
+++ b/gnustep/Resources/hung-0.png
@@ -0,0 +1 @@
+../../images/hung-0.png
\ No newline at end of file
diff --git a/gnustep/Resources/hung-1.png b/gnustep/Resources/hung-1.png
new file mode 120000
index 0000000..089b4a4
--- /dev/null
+++ b/gnustep/Resources/hung-1.png
@@ -0,0 +1 @@
+../../images/hung-1.png
\ No newline at end of file
diff --git a/gnustep/Resources/hung-10.png b/gnustep/Resources/hung-10.png
new file mode 120000
index 0000000..15ca402
--- /dev/null
+++ b/gnustep/Resources/hung-10.png
@@ -0,0 +1 @@
+../../images/hung-10.png
\ No newline at end of file
diff --git a/gnustep/Resources/hung-11.png b/gnustep/Resources/hung-11.png
new file mode 120000
index 0000000..f0047c0
--- /dev/null
+++ b/gnustep/Resources/hung-11.png
@@ -0,0 +1 @@
+../../images/hung-11.png
\ No newline at end of file
diff --git a/gnustep/Resources/hung-2.png b/gnustep/Resources/hung-2.png
new file mode 120000
index 0000000..0b6580a
--- /dev/null
+++ b/gnustep/Resources/hung-2.png
@@ -0,0 +1 @@
+../../images/hung-2.png
\ No newline at end of file
diff --git a/gnustep/Resources/hung-3.png b/gnustep/Resources/hung-3.png
new file mode 120000
index 0000000..8fecf08
--- /dev/null
+++ b/gnustep/Resources/hung-3.png
@@ -0,0 +1 @@
+../../images/hung-3.png
\ No newline at end of file
diff --git a/gnustep/Resources/hung-4.png b/gnustep/Resources/hung-4.png
new file mode 120000
index 0000000..a8daad7
--- /dev/null
+++ b/gnustep/Resources/hung-4.png
@@ -0,0 +1 @@
+../../images/hung-4.png
\ No newline at end of file
diff --git a/gnustep/Resources/hung-5.png b/gnustep/Resources/hung-5.png
new file mode 120000
index 0000000..71453a5
--- /dev/null
+++ b/gnustep/Resources/hung-5.png
@@ -0,0 +1 @@
+../../images/hung-5.png
\ No newline at end of file
diff --git a/gnustep/Resources/hung-6.png b/gnustep/Resources/hung-6.png
new file mode 120000
index 0000000..37e06e3
--- /dev/null
+++ b/gnustep/Resources/hung-6.png
@@ -0,0 +1 @@
+../../images/hung-6.png
\ No newline at end of file
diff --git a/gnustep/Resources/hung-7.png b/gnustep/Resources/hung-7.png
new file mode 120000
index 0000000..9ff284c
--- /dev/null
+++ b/gnustep/Resources/hung-7.png
@@ -0,0 +1 @@
+../../images/hung-7.png
\ No newline at end of file
diff --git a/gnustep/Resources/hung-8.png b/gnustep/Resources/hung-8.png
new file mode 120000
index 0000000..250b31b
--- /dev/null
+++ b/gnustep/Resources/hung-8.png
@@ -0,0 +1 @@
+../../images/hung-8.png
\ No newline at end of file
diff --git a/gnustep/Resources/hung-9.png b/gnustep/Resources/hung-9.png
new file mode 120000
index 0000000..269c136
--- /dev/null
+++ b/gnustep/Resources/hung-9.png
@@ -0,0 +1 @@
+../../images/hung-9.png
\ No newline at end of file
diff --git a/gnustep/Resources/icon.png b/gnustep/Resources/icon.png
new file mode 120000
index 0000000..0babf05
--- /dev/null
+++ b/gnustep/Resources/icon.png
@@ -0,0 +1 @@
+../../images/icon.png
\ No newline at end of file
diff --git a/gnustep/hangman.app/Resources/Info-gnustep.plist b/gnustep/hangman.app/Resources/Info-gnustep.plist
new file mode 100644
index 0000000..98eec9d
--- /dev/null
+++ b/gnustep/hangman.app/Resources/Info-gnustep.plist
@@ -0,0 +1,20 @@
+{
+ "!" = "Generated by ProjectCenter, do not edit";
+ ApplicationDescription = "The classical hang man game.";
+ ApplicationIcon = "icon.png";
+ ApplicationName = hangman;
+ ApplicationRelease = "1.0";
+ Authors = (
+ "Pascal J. Bourguignon"
+ );
+ Copyright = "Copyright (C) 2014 Pascal Bourguignon";
+ CopyrightDescription = "Released under the AGPL3.";
+ FullVersionID = "1.0";
+ GSMainMarkupFile = "";
+ NOTE = "Automatically generated, do not edit!";
+ NSExecutable = hangman;
+ NSIcon = "icon.png";
+ NSMainNibFile = "hangman.gorm";
+ NSPrincipalClass = NSApplication;
+ NSRole = Application;
+}
\ No newline at end of file
diff --git a/gnustep/hangman.app/Resources/Main.gsmarkup b/gnustep/hangman.app/Resources/Main.gsmarkup
new file mode 100644
index 0000000..e403420
--- /dev/null
+++ b/gnustep/hangman.app/Resources/Main.gsmarkup
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+<!DOCTYPE gsmarkup>
+<gsmarkup>
+
+ <objects>
+ <window/>
+ </objects>
+</gsmarkup>
diff --git a/gnustep/hangman.app/Resources/MainMenu-GNUstep.gsmarkup b/gnustep/hangman.app/Resources/MainMenu-GNUstep.gsmarkup
new file mode 100644
index 0000000..ff72d59
--- /dev/null
+++ b/gnustep/hangman.app/Resources/MainMenu-GNUstep.gsmarkup
@@ -0,0 +1,32 @@
+<?xml version="1.0"?>
+<!DOCTYPE gsmarkup>
+
+<!-- Remove any menu items and submenus which you don't need. Add any
+ menu items and submenus which you need. -->
+
+<gsmarkup>
+ <objects>
+
+ <menu type="main">
+
+ <menu title="Info">
+ <menuItem title="Info Panel..."
+ action="orderFrontStandardInfoPanel:"/>
+ <menuItem title="Preferences..." action=""/>
+ <menuItem title="Help..." action="orderFrontHelpPanel:" key="?"/>
+ </menu>
+
+ <menu title="Windows">
+ <menuItem title="Arrange In Front" action="arrangeInFront:"/>
+ <menuItem title="Miniaturize Window" action="performMiniaturize:"
+ key="m"/>
+ <menuItem title="Close Window" action="performClose:" key="w"/>
+ </menu>
+
+ <menu title="Services" type="services"/>
+
+ <menuItem title="Hide" action="hide:" key="h"/>
+ <menuItem title="Quit" action="terminate:" key="q"/>
+ </menu>
+ </objects>
+</gsmarkup>
diff --git a/gnustep/hangman.app/Resources/MainMenu-OSX.gsmarkup b/gnustep/hangman.app/Resources/MainMenu-OSX.gsmarkup
new file mode 100644
index 0000000..a20024f
--- /dev/null
+++ b/gnustep/hangman.app/Resources/MainMenu-OSX.gsmarkup
@@ -0,0 +1,63 @@
+<?xml version="1.0"?>
+<!DOCTYPE gsmarkup>
+
+<gsmarkup>
+ <objects>
+
+ <menu type="main">
+
+ <menu title="MyApplication" type="apple">
+ <menuItem title="About MyApplication"
+ action="orderFrontStandardAboutPanel:"/>
+ <menuSeparator/>
+ <menuItem title="Preferences..." action="runPreferencesPanel:"/>
+ <menu title="Services" type="services"/>
+ <menuSeparator/>
+ <menuItem title="Hide MyApplication" action="hide:" key="h"/>
+ <menuItem title="Hide Others" action="hideOtherApplications:"/>
+ <menuItem title="Show All" action="unhideAllApplications:"/>
+ <menuSeparator/>
+ <menuItem title="Quit MyApplication" action="terminate:" key="q"/>
+ </menu>
+
+ <menu title="File">
+ <menuItem title="New" action="" key="n"/>
+ <menuItem title="Open..." action="" key="o"/>
+ <menu title="Open Recent" type="openRecent">
+ <menuItem title="Clear menu" action=""/>
+ </menu>
+ <menuSeparator/>
+ <menuItem title="Close" action="performClose:" key="w"/>
+ <menuItem title="Save" action="" key="s"/>
+ <menuItem title="Save As..." action="" key="S"/>
+ <menuItem title="Revert" action=""/>
+ <menuSeparator/>
+ <menuItem title="Page Setup..." action="runPageLayout:" key="P"/>
+ <menuItem title="Print..." action="print:" key="p"/>
+ </menu>
+
+ <menu title="Edit">
+ <menuItem title="Undo" action="undo:" key="z"/>
+ <menuItem title="Redo" action="redo:" key="Z"/>
+ <menuSeparator/>
+ <menuItem title="Cut" action="cut:" key="x"/>
+ <menuItem title="Copy" action="copy:" key="c"/>
+ <menuItem title="Paste" action="paste:" key="v"/>
+ <menuItem title="Delete" action="delete:"/>
+ <menuItem title="Select All" action="selectAll:" key="a"/>
+ </menu>
+
+ <menu title="Window" type="windows">
+ <menuItem title="Close Window" action="performClose:" key="w"/>
+ <menuItem title="Minimize Window" action="performMiniaturize:"
+ key="m"/>
+ <menuSeparator/>
+ <menuItem title="Bring All to Front" action="arrangeInFront:" key=""/>
+ </menu>
+
+ <menu title="Help">
+ <menuItem title="MyApplication Help" action="showHelp:" key="?"/>
+ </menu>
+ </menu>
+ </objects>
+</gsmarkup>
diff --git a/gnustep/hangman.app/Resources/hangman.desktop b/gnustep/hangman.app/Resources/hangman.desktop
new file mode 100755
index 0000000..eabd777
--- /dev/null
+++ b/gnustep/hangman.app/Resources/hangman.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Encoding=UTF-8
+Type=Application
+Categories=X-GNUstep;
+Name=hangman
+Comment=The classical hang man game.
+Icon=/usr/local/lib/GNUstep/Applications/hangman.app/Resources/icon.png
+Exec=/usr/bin/openapp hangman
+FilePattern=hangman.app;hangman;
diff --git a/gnustep/hangman.app/Resources/hangman.gorm/data.classes b/gnustep/hangman.app/Resources/hangman.gorm/data.classes
new file mode 100644
index 0000000..609f469
--- /dev/null
+++ b/gnustep/hangman.app/Resources/hangman.gorm/data.classes
@@ -0,0 +1,46 @@
+{
+ "## Comment" = "Do NOT change this file, Gorm maintains it";
+ AppController = {
+ Actions = (
+ "showPrefPanel:"
+ );
+ Outlets = (
+ );
+ Super = NSObject;
+ };
+ FirstResponder = {
+ Actions = (
+ "anotherWord:",
+ "controler:",
+ "newGame:",
+ "orderFrontFontPanel:",
+ "selectLetter:",
+ "showPrefPanel:",
+ "tryALetter:",
+ "willQuit:"
+ );
+ Super = NSObject;
+ };
+ HangmanController = {
+ Actions = (
+ "selectLetter:",
+ "newGame:"
+ );
+ Outlets = (
+ image,
+ letters,
+ message,
+ guessed
+ );
+ Super = NSObject;
+ };
+ WindW = {
+ Actions = (
+ "controler:"
+ );
+ Outlets = (
+ controler
+ );
+ Super = NSObject;
+ };
+}
\ No newline at end of file
diff --git a/gnustep/hangman.app/Resources/hangman.gorm/data.info b/gnustep/hangman.app/Resources/hangman.gorm/data.info
new file mode 100644
index 0000000..234dcc8
Binary files /dev/null and b/gnustep/hangman.app/Resources/hangman.gorm/data.info differ
diff --git a/gnustep/hangman.app/Resources/hangman.gorm/objects.gorm b/gnustep/hangman.app/Resources/hangman.gorm/objects.gorm
new file mode 100644
index 0000000..c9aa3e0
Binary files /dev/null and b/gnustep/hangman.app/Resources/hangman.gorm/objects.gorm differ
diff --git a/gnustep/hangman.app/Resources/hung-0.png b/gnustep/hangman.app/Resources/hung-0.png
new file mode 100644
index 0000000..d4eacb0
Binary files /dev/null and b/gnustep/hangman.app/Resources/hung-0.png differ
diff --git a/gnustep/hangman.app/Resources/hung-1.png b/gnustep/hangman.app/Resources/hung-1.png
new file mode 100644
index 0000000..eda3dc8
Binary files /dev/null and b/gnustep/hangman.app/Resources/hung-1.png differ
diff --git a/gnustep/hangman.app/Resources/hung-10.png b/gnustep/hangman.app/Resources/hung-10.png
new file mode 100644
index 0000000..a33aa80
Binary files /dev/null and b/gnustep/hangman.app/Resources/hung-10.png differ
diff --git a/gnustep/hangman.app/Resources/hung-11.png b/gnustep/hangman.app/Resources/hung-11.png
new file mode 100644
index 0000000..7af18a9
Binary files /dev/null and b/gnustep/hangman.app/Resources/hung-11.png differ
diff --git a/gnustep/hangman.app/Resources/hung-2.png b/gnustep/hangman.app/Resources/hung-2.png
new file mode 100644
index 0000000..1690e71
Binary files /dev/null and b/gnustep/hangman.app/Resources/hung-2.png differ
diff --git a/gnustep/hangman.app/Resources/hung-3.png b/gnustep/hangman.app/Resources/hung-3.png
new file mode 100644
index 0000000..70b3501
Binary files /dev/null and b/gnustep/hangman.app/Resources/hung-3.png differ
diff --git a/gnustep/hangman.app/Resources/hung-4.png b/gnustep/hangman.app/Resources/hung-4.png
new file mode 100644
index 0000000..814ad5f
Binary files /dev/null and b/gnustep/hangman.app/Resources/hung-4.png differ
diff --git a/gnustep/hangman.app/Resources/hung-5.png b/gnustep/hangman.app/Resources/hung-5.png
new file mode 100644
index 0000000..7e42e79
Binary files /dev/null and b/gnustep/hangman.app/Resources/hung-5.png differ
diff --git a/gnustep/hangman.app/Resources/hung-6.png b/gnustep/hangman.app/Resources/hung-6.png
new file mode 100644
index 0000000..a3bf17c
Binary files /dev/null and b/gnustep/hangman.app/Resources/hung-6.png differ
diff --git a/gnustep/hangman.app/Resources/hung-7.png b/gnustep/hangman.app/Resources/hung-7.png
new file mode 100644
index 0000000..4f4586b
Binary files /dev/null and b/gnustep/hangman.app/Resources/hung-7.png differ
diff --git a/gnustep/hangman.app/Resources/hung-8.png b/gnustep/hangman.app/Resources/hung-8.png
new file mode 100644
index 0000000..a347ba0
Binary files /dev/null and b/gnustep/hangman.app/Resources/hung-8.png differ
diff --git a/gnustep/hangman.app/Resources/hung-9.png b/gnustep/hangman.app/Resources/hung-9.png
new file mode 100644
index 0000000..61734a4
Binary files /dev/null and b/gnustep/hangman.app/Resources/hung-9.png differ
diff --git a/gnustep/hangman.app/Resources/icon.png b/gnustep/hangman.app/Resources/icon.png
new file mode 100644
index 0000000..2a28c6a
Binary files /dev/null and b/gnustep/hangman.app/Resources/icon.png differ
diff --git a/gnustep/hangman.app/hangman b/gnustep/hangman.app/hangman
new file mode 100755
index 0000000..50db19a
Binary files /dev/null and b/gnustep/hangman.app/hangman differ
diff --git a/gnustep/hangman.app/stamp.make b/gnustep/hangman.app/stamp.make
new file mode 100644
index 0000000..ab0f150
--- /dev/null
+++ b/gnustep/hangman.app/stamp.make
@@ -0,0 +1 @@
+OLD_GNUSTEP_STAMP_ASTRING = _NSApplication-icon.png--
diff --git a/gnustep/hangman.pcproj/PC.project b/gnustep/hangman.pcproj/PC.project
new file mode 100644
index 0000000..8f86e94
--- /dev/null
+++ b/gnustep/hangman.pcproj/PC.project
@@ -0,0 +1,99 @@
+{
+ APPLICATIONICON = "icon.png";
+ "APP_DOCUMENT_BASED" = NO;
+ "APP_TYPE" = GORM;
+ "BUILDER_TARGETS" = (
+ all,
+ install,
+ uninstall,
+ clean,
+ distclean,
+ dist
+ );
+ "CLASS_FILES" = (
+ "Hangman.m",
+ "HangmanController.m"
+ );
+ COMPILEROPTIONS = "";
+ CPPOPTIONS = "";
+ "CREATION_DATE" = "2012-05-04 02:15:36 +0200";
+ "DOCU_FILES" = (
+ );
+ FRAMEWORKS = (
+ );
+ "HEADER_FILES" = (
+ "Hangman.h",
+ "HangmanController.h"
+ );
+ IMAGES = (
+ "hung-0.png",
+ "hung-1.png",
+ "hung-10.png",
+ "hung-11.png",
+ "hung-2.png",
+ "hung-3.png",
+ "hung-4.png",
+ "hung-5.png",
+ "hung-6.png",
+ "hung-7.png",
+ "hung-8.png",
+ "hung-9.png",
+ "icon.png"
+ );
+ INSTALLDIR = "$(HOME)/GNUstep";
+ INTERFACES = (
+ "Main.gsmarkup",
+ "MainMenu-GNUstep.gsmarkup",
+ "MainMenu-OSX.gsmarkup",
+ "hangman.gorm"
+ );
+ LANGUAGE = English;
+ LIBRARIES = (
+ "gnustep-base",
+ "gnustep-gui"
+ );
+ LINKEROPTIONS = "";
+ "LOCALIZED_RESOURCES" = (
+ );
+ MAININTERFACE = "hangman.gorm";
+ MAKEFILEDIR = "$(GNUSTEP_MAKEFILES)";
+ "OBJC_COMPILEROPTIONS" = "-std=c99";
+ "OTHER_RESOURCES" = (
+ );
+ "OTHER_SOURCES" = (
+ "hangman_main.m"
+ );
+ "PRINCIPAL_CLASS" = NSApplication;
+ "PROJECT_AUTHORS" = (
+ "Pascal J. Bourguignon"
+ );
+ "PROJECT_COPYRIGHT" = "Copyright (C) 2014 Pascal Bourguignon";
+ "PROJECT_COPYRIGHT_DESC" = "Released under the AGPL3.";
+ "PROJECT_CREATOR" = "Pascal J. Bourguignon";
+ "PROJECT_DESCRIPTION" = "The classical hang man game.";
+ "PROJECT_DOCUMENTTYPES" = (
+ );
+ "PROJECT_GROUP" = "No group avaliable!";
+ "PROJECT_MAINTAINER" = "Pascal J. Bourguignon";
+ "PROJECT_NAME" = hangman;
+ "PROJECT_RELEASE" = "1.0";
+ "PROJECT_SUMMARY" = "No summary avaliable!";
+ "PROJECT_TYPE" = Application;
+ "PROJECT_URL" = "";
+ "SEARCH_HEADER_DIRS" = (
+ );
+ "SEARCH_LIB_DIRS" = (
+ );
+ SUBPROJECTS = (
+ );
+ "SUPPORTING_FILES" = (
+ "GNUmakefile.preamble",
+ GNUmakefile,
+ "GNUmakefile.postamble",
+ "hangmanInfo.plist"
+ );
+ "USER_LANGUAGES" = (
+ AmericanEnglish,
+ English
+ );
+}
\ No newline at end of file
diff --git a/gnustep/hangmanInfo.plist b/gnustep/hangmanInfo.plist
new file mode 100644
index 0000000..69fe62b
--- /dev/null
+++ b/gnustep/hangmanInfo.plist
@@ -0,0 +1,18 @@
+{
+ "!" = "Generated by ProjectCenter, do not edit";
+ ApplicationDescription = "The classical hang man game.";
+ ApplicationIcon = "icon.png";
+ ApplicationName = hangman;
+ ApplicationRelease = "1.0";
+ Authors = (
+ "Pascal J. Bourguignon"
+ );
+ Copyright = "Copyright (C) 2014 Pascal Bourguignon";
+ CopyrightDescription = "Released under the AGPL3.";
+ FullVersionID = "1.0";
+ NSExecutable = hangman;
+ NSIcon = "icon.png";
+ NSMainNibFile = "hangman.gorm";
+ NSPrincipalClass = NSApplication;
+ NSRole = Application;
+}
\ No newline at end of file
diff --git a/gnustep/hangman_main.m b/gnustep/hangman_main.m
new file mode 100644
index 0000000..eba23d0
--- /dev/null
+++ b/gnustep/hangman_main.m
@@ -0,0 +1,32 @@
+/* -*- mode:objc; coding:utf-8 -*- */
+/*
+ Project: hangman
+
+ Author: Pascal J. Bourguignon
+
+ Created: 2012-05-04 02:15:36 +0200 by pjb
+*/
+
+#import <AppKit/AppKit.h>
+
+int
+main(int argc, const char *argv[])
+{
+// Uncomment if your application is Renaissance application
+/* CREATE_AUTORELEASE_POOL (pool);
+ [NSApplication sharedApplication];
+ [NSApp setDelegate: [AppController new]];
+
+ #ifdef GNUSTEP
+ [NSBundle loadGSMarkupNamed: @"MainMenu-GNUstep" owner: [NSApp delegate]];
+ #else
+ [NSBundle loadGSMarkupNamed: @"MainMenu-OSX" owner: [NSApp delegate]];
+ #endif
+
+ RELEASE (pool);
+*/
+
+ return NSApplicationMain (argc, argv);
+}
+
+//// THE END ////
diff --git a/hangman.xcodeproj/project.pbxproj b/hangman.xcodeproj/project.pbxproj
index 09474b3..6ff2841 100644
--- a/hangman.xcodeproj/project.pbxproj
+++ b/hangman.xcodeproj/project.pbxproj
@@ -11,13 +11,27 @@
2AFD04A318ECDEE3006D41DA /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 2AFD04A118ECDEE3006D41DA /* InfoPlist.strings */; };
2AFD04A518ECDEE3006D41DA /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 2AFD04A418ECDEE3006D41DA /* main.m */; };
2AFD04A918ECDEE4006D41DA /* Credits.rtf in Resources */ = {isa = PBXBuildFile; fileRef = 2AFD04A718ECDEE4006D41DA /* Credits.rtf */; };
- 2AFD04AC18ECDEE4006D41DA /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 2AFD04AB18ECDEE4006D41DA /* AppDelegate.m */; };
2AFD04AF18ECDEE4006D41DA /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 2AFD04AD18ECDEE4006D41DA /* MainMenu.xib */; };
2AFD04B118ECDEE5006D41DA /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 2AFD04B018ECDEE5006D41DA /* Images.xcassets */; };
2AFD04B818ECDEE5006D41DA /* XCTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2AFD04B718ECDEE5006D41DA /* XCTest.framework */; };
2AFD04B918ECDEE5006D41DA /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2AFD049818ECDEE3006D41DA /* Cocoa.framework */; };
2AFD04C118ECDEE5006D41DA /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 2AFD04BF18ECDEE5006D41DA /* InfoPlist.strings */; };
2AFD04C318ECDEE5006D41DA /* hangmanTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 2AFD04C218ECDEE5006D41DA /* hangmanTests.m */; };
+ 2AFD04E918ECE55F006D41DA /* hung-4.png in Resources */ = {isa = PBXBuildFile; fileRef = 2AFD04D718ECE55F006D41DA /* hung-4.png */; };
+ 2AFD04EA18ECE55F006D41DA /* hung-9.png in Resources */ = {isa = PBXBuildFile; fileRef = 2AFD04D818ECE55F006D41DA /* hung-9.png */; };
+ 2AFD04EB18ECE55F006D41DA /* hung-3.png in Resources */ = {isa = PBXBuildFile; fileRef = 2AFD04D918ECE55F006D41DA /* hung-3.png */; };
+ 2AFD04EC18ECE55F006D41DA /* hung-10.png in Resources */ = {isa = PBXBuildFile; fileRef = 2AFD04DA18ECE55F006D41DA /* hung-10.png */; };
+ 2AFD04ED18ECE55F006D41DA /* icon.png in Resources */ = {isa = PBXBuildFile; fileRef = 2AFD04DB18ECE55F006D41DA /* icon.png */; };
+ 2AFD04EE18ECE55F006D41DA /* hung-0.png in Resources */ = {isa = PBXBuildFile; fileRef = 2AFD04DC18ECE55F006D41DA /* hung-0.png */; };
+ 2AFD04EF18ECE55F006D41DA /* hung-2.png in Resources */ = {isa = PBXBuildFile; fileRef = 2AFD04DD18ECE55F006D41DA /* hung-2.png */; };
+ 2AFD04F018ECE55F006D41DA /* hung-5.png in Resources */ = {isa = PBXBuildFile; fileRef = 2AFD04DE18ECE55F006D41DA /* hung-5.png */; };
+ 2AFD04F118ECE55F006D41DA /* hung-7.png in Resources */ = {isa = PBXBuildFile; fileRef = 2AFD04DF18ECE55F006D41DA /* hung-7.png */; };
+ 2AFD04F218ECE55F006D41DA /* hung-6.png in Resources */ = {isa = PBXBuildFile; fileRef = 2AFD04E018ECE55F006D41DA /* hung-6.png */; };
+ 2AFD04F318ECE55F006D41DA /* hung-8.png in Resources */ = {isa = PBXBuildFile; fileRef = 2AFD04E118ECE55F006D41DA /* hung-8.png */; };
+ 2AFD04F418ECE55F006D41DA /* hung-11.png in Resources */ = {isa = PBXBuildFile; fileRef = 2AFD04E218ECE55F006D41DA /* hung-11.png */; };
+ 2AFD04F518ECE55F006D41DA /* hung-1.png in Resources */ = {isa = PBXBuildFile; fileRef = 2AFD04E318ECE55F006D41DA /* hung-1.png */; };
+ 2AFD04F618ECE55F006D41DA /* Hangman.m in Sources */ = {isa = PBXBuildFile; fileRef = 2AFD04E518ECE55F006D41DA /* Hangman.m */; };
+ 2AFD04F718ECE55F006D41DA /* HangmanController.m in Sources */ = {isa = PBXBuildFile; fileRef = 2AFD04E818ECE55F006D41DA /* HangmanController.m */; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
@@ -41,8 +55,6 @@
2AFD04A418ECDEE3006D41DA /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
2AFD04A618ECDEE4006D41DA /* hangman-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "hangman-Prefix.pch"; sourceTree = "<group>"; };
2AFD04A818ECDEE4006D41DA /* en */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; name = en; path = en.lproj/Credits.rtf; sourceTree = "<group>"; };
- 2AFD04AA18ECDEE4006D41DA /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
- 2AFD04AB18ECDEE4006D41DA /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
2AFD04AE18ECDEE4006D41DA /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainMenu.xib; sourceTree = "<group>"; };
2AFD04B018ECDEE5006D41DA /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = "<group>"; };
2AFD04B618ECDEE5006D41DA /* hangmanTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = hangmanTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
@@ -50,6 +62,23 @@
2AFD04BE18ECDEE5006D41DA /* hangmanTests-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "hangmanTests-Info.plist"; sourceTree = "<group>"; };
2AFD04C018ECDEE5006D41DA /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
2AFD04C218ECDEE5006D41DA /* hangmanTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = hangmanTests.m; sourceTree = "<group>"; };
+ 2AFD04D718ECE55F006D41DA /* hung-4.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "hung-4.png"; sourceTree = "<group>"; };
+ 2AFD04D818ECE55F006D41DA /* hung-9.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "hung-9.png"; sourceTree = "<group>"; };
+ 2AFD04D918ECE55F006D41DA /* hung-3.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "hung-3.png"; sourceTree = "<group>"; };
+ 2AFD04DA18ECE55F006D41DA /* hung-10.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "hung-10.png"; sourceTree = "<group>"; };
+ 2AFD04DB18ECE55F006D41DA /* icon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = icon.png; sourceTree = "<group>"; };
+ 2AFD04DC18ECE55F006D41DA /* hung-0.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "hung-0.png"; sourceTree = "<group>"; };
+ 2AFD04DD18ECE55F006D41DA /* hung-2.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "hung-2.png"; sourceTree = "<group>"; };
+ 2AFD04DE18ECE55F006D41DA /* hung-5.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "hung-5.png"; sourceTree = "<group>"; };
+ 2AFD04DF18ECE55F006D41DA /* hung-7.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "hung-7.png"; sourceTree = "<group>"; };
+ 2AFD04E018ECE55F006D41DA /* hung-6.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "hung-6.png"; sourceTree = "<group>"; };
+ 2AFD04E118ECE55F006D41DA /* hung-8.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "hung-8.png"; sourceTree = "<group>"; };
+ 2AFD04E218ECE55F006D41DA /* hung-11.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "hung-11.png"; sourceTree = "<group>"; };
+ 2AFD04E318ECE55F006D41DA /* hung-1.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "hung-1.png"; sourceTree = "<group>"; };
+ 2AFD04E518ECE55F006D41DA /* Hangman.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Hangman.m; sourceTree = "<group>"; };
+ 2AFD04E618ECE55F006D41DA /* Hangman.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Hangman.h; sourceTree = "<group>"; };
+ 2AFD04E718ECE55F006D41DA /* HangmanController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HangmanController.h; sourceTree = "<group>"; };
+ 2AFD04E818ECE55F006D41DA /* HangmanController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HangmanController.m; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
@@ -115,8 +144,8 @@
2AFD049E18ECDEE3006D41DA /* hangman */ = {
isa = PBXGroup;
children = (
- 2AFD04AA18ECDEE4006D41DA /* AppDelegate.h */,
- 2AFD04AB18ECDEE4006D41DA /* AppDelegate.m */,
+ 2AFD04D618ECE55F006D41DA /* images */,
+ 2AFD04E418ECE55F006D41DA /* sources */,
2AFD04AD18ECDEE4006D41DA /* MainMenu.xib */,
2AFD04B018ECDEE5006D41DA /* Images.xcassets */,
2AFD049F18ECDEE3006D41DA /* Supporting Files */,
@@ -154,6 +183,37 @@
name = "Supporting Files";
sourceTree = "<group>";
};
+ 2AFD04D618ECE55F006D41DA /* images */ = {
+ isa = PBXGroup;
+ children = (
+ 2AFD04D718ECE55F006D41DA /* hung-4.png */,
+ 2AFD04D818ECE55F006D41DA /* hung-9.png */,
+ 2AFD04D918ECE55F006D41DA /* hung-3.png */,
+ 2AFD04DA18ECE55F006D41DA /* hung-10.png */,
+ 2AFD04DB18ECE55F006D41DA /* icon.png */,
+ 2AFD04DC18ECE55F006D41DA /* hung-0.png */,
+ 2AFD04DD18ECE55F006D41DA /* hung-2.png */,
+ 2AFD04DE18ECE55F006D41DA /* hung-5.png */,
+ 2AFD04DF18ECE55F006D41DA /* hung-7.png */,
+ 2AFD04E018ECE55F006D41DA /* hung-6.png */,
+ 2AFD04E118ECE55F006D41DA /* hung-8.png */,
+ 2AFD04E218ECE55F006D41DA /* hung-11.png */,
+ 2AFD04E318ECE55F006D41DA /* hung-1.png */,
+ );
+ path = images;
+ sourceTree = SOURCE_ROOT;
+ };
+ 2AFD04E418ECE55F006D41DA /* sources */ = {
+ isa = PBXGroup;
+ children = (
+ 2AFD04E518ECE55F006D41DA /* Hangman.m */,
+ 2AFD04E618ECE55F006D41DA /* Hangman.h */,
+ 2AFD04E718ECE55F006D41DA /* HangmanController.h */,
+ 2AFD04E818ECE55F006D41DA /* HangmanController.m */,
+ );
+ path = sources;
+ sourceTree = SOURCE_ROOT;
+ };
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
@@ -230,10 +290,23 @@
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
+ 2AFD04F318ECE55F006D41DA /* hung-8.png in Resources */,
+ 2AFD04F118ECE55F006D41DA /* hung-7.png in Resources */,
+ 2AFD04EE18ECE55F006D41DA /* hung-0.png in Resources */,
+ 2AFD04F218ECE55F006D41DA /* hung-6.png in Resources */,
+ 2AFD04E918ECE55F006D41DA /* hung-4.png in Resources */,
+ 2AFD04EF18ECE55F006D41DA /* hung-2.png in Resources */,
2AFD04A318ECDEE3006D41DA /* InfoPlist.strings in Resources */,
+ 2AFD04ED18ECE55F006D41DA /* icon.png in Resources */,
2AFD04B118ECDEE5006D41DA /* Images.xcassets in Resources */,
2AFD04A918ECDEE4006D41DA /* Credits.rtf in Resources */,
2AFD04AF18ECDEE4006D41DA /* MainMenu.xib in Resources */,
+ 2AFD04EB18ECE55F006D41DA /* hung-3.png in Resources */,
+ 2AFD04F018ECE55F006D41DA /* hung-5.png in Resources */,
+ 2AFD04EC18ECE55F006D41DA /* hung-10.png in Resources */,
+ 2AFD04EA18ECE55F006D41DA /* hung-9.png in Resources */,
+ 2AFD04F518ECE55F006D41DA /* hung-1.png in Resources */,
+ 2AFD04F418ECE55F006D41DA /* hung-11.png in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -252,7 +325,8 @@
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
- 2AFD04AC18ECDEE4006D41DA /* AppDelegate.m in Sources */,
+ 2AFD04F718ECE55F006D41DA /* HangmanController.m in Sources */,
+ 2AFD04F618ECE55F006D41DA /* Hangman.m in Sources */,
2AFD04A518ECDEE3006D41DA /* main.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
diff --git a/hangman/._AppDelegate.h b/hangman/._AppDelegate.h
deleted file mode 100644
index 466a7ac..0000000
Binary files a/hangman/._AppDelegate.h and /dev/null differ
diff --git a/hangman/._AppDelegate.m b/hangman/._AppDelegate.m
deleted file mode 100644
index 1aa3ea4..0000000
Binary files a/hangman/._AppDelegate.m and /dev/null differ
diff --git a/hangman/AppDelegate.h b/hangman/AppDelegate.h
deleted file mode 100644
index d25d10e..0000000
--- a/hangman/AppDelegate.h
+++ /dev/null
@@ -1,15 +0,0 @@
-//
-// AppDelegate.h
-// hangman
-//
-// Created by Pascal Bourguignon on 2014-04-03.
-// Copyright (c) 2014 informatimago. All rights reserved.
-//
-
-#import <Cocoa/Cocoa.h>
-
-@interface AppDelegate : NSObject <NSApplicationDelegate>
-
-@property (assign) IBOutlet NSWindow *window;
-
-@end
diff --git a/hangman/AppDelegate.m b/hangman/AppDelegate.m
deleted file mode 100644
index 182ddaa..0000000
--- a/hangman/AppDelegate.m
+++ /dev/null
@@ -1,18 +0,0 @@
-//
-// AppDelegate.m
-// hangman
-//
-// Created by Pascal Bourguignon on 2014-04-03.
-// Copyright (c) 2014 informatimago. All rights reserved.
-//
-
-#import "AppDelegate.h"
-
-@implementation AppDelegate
-
-- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
-{
- // Insert code here to initialize your application
-}
-
-@end
diff --git a/hangman/Base.lproj/._MainMenu.xib b/hangman/Base.lproj/._MainMenu.xib
deleted file mode 100644
index e77e4b0..0000000
Binary files a/hangman/Base.lproj/._MainMenu.xib and /dev/null differ
diff --git a/hangman/Base.lproj/MainMenu.xib b/hangman/Base.lproj/MainMenu.xib
index e7ae7f4..fd0d08e 100644
--- a/hangman/Base.lproj/MainMenu.xib
+++ b/hangman/Base.lproj/MainMenu.xib
@@ -1,98 +1,15 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="4439" systemVersion="13A451" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
+<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="4514" systemVersion="12F45" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
<dependencies>
- <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="4439"/>
+ <deployment defaultVersion="1080" identifier="macosx"/>
+ <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="4514"/>
</dependencies>
<objects>
- <customObject id="-2" userLabel="File's Owner" customClass="NSApplication">
- <connections>
- <action selector="orderFrontStandardAboutPanel:" destination="58" id="142"/>
- <outlet property="delegate" destination="494" id="495"/>
- </connections>
- </customObject>
- <customObject id="-1" userLabel="First Responder" customClass="FirstResponder">
- <connections>
- <action selector="alignCenter:" destination="499" id="518"/>
- <action selector="alignJustified:" destination="500" id="523"/>
- <action selector="alignLeft:" destination="498" id="524"/>
- <action selector="alignRight:" destination="501" id="521"/>
- <action selector="arrangeInFront:" destination="5" id="39"/>
- <action selector="capitalizeWord:" destination="466" id="467"/>
- <action selector="centerSelectionInVisibleArea:" destination="210" id="245"/>
- <action selector="checkSpelling:" destination="201" id="225"/>
- <action selector="clearRecentDocuments:" destination="126" id="127"/>
- <action selector="copy:" destination="197" id="224"/>
- <action selector="copyFont:" destination="403" id="428"/>
- <action selector="copyRuler:" destination="506" id="522"/>
- <action selector="cut:" destination="199" id="228"/>
- <action selector="delete:" destination="202" id="235"/>
- <action selector="hide:" destination="134" id="367"/>
- <action selector="hideOtherApplications:" destination="145" id="368"/>
- <action selector="loosenKerning:" destination="419" id="435"/>
- <action selector="lowerBaseline:" destination="410" id="427"/>
- <action selector="lowercaseWord:" destination="465" id="468"/>
- <action selector="makeBaseWritingDirectionLeftToRight:" destination="511" id="526"/>
- <action selector="makeBaseWritingDirectionNatural:" destination="510" id="525"/>
- <action selector="makeBaseWritingDirectionRightToLeft:" destination="512" id="527"/>
- <action selector="makeTextWritingDirectionLeftToRight:" destination="516" id="529"/>
- <action selector="makeTextWritingDirectionNatural:" destination="515" id="528"/>
- <action selector="makeTextWritingDirectionRightToLeft:" destination="517" id="530"/>
- <action selector="newDocument:" destination="82" id="373"/>
- <action selector="openDocument:" destination="72" id="374"/>
- <action selector="orderFrontColorPanel:" destination="401" id="433"/>
- <action selector="orderFrontSubstitutionsPanel:" destination="457" id="458"/>
- <action selector="paste:" destination="203" id="226"/>
- <action selector="pasteAsPlainText:" destination="485" id="486"/>
- <action selector="pasteFont:" destination="404" id="436"/>
- <action selector="pasteRuler:" destination="507" id="519"/>
- <action selector="performClose:" destination="73" id="193"/>
- <action selector="performFindPanelAction:" destination="209" id="241"/>
- <action selector="performFindPanelAction:" destination="208" id="487"/>
- <action selector="performFindPanelAction:" destination="213" id="488"/>
- <action selector="performFindPanelAction:" destination="221" id="489"/>
- <action selector="performFindPanelAction:" destination="534" id="535"/>
- <action selector="performMiniaturize:" destination="23" id="37"/>
- <action selector="performZoom:" destination="239" id="240"/>
- <action selector="print:" destination="78" id="86"/>
- <action selector="raiseBaseline:" destination="409" id="426"/>
- <action selector="redo:" destination="215" id="231"/>
- <action selector="revertDocumentToSaved:" destination="112" id="364"/>
- <action selector="runPageLayout:" destination="77" id="87"/>
- <action selector="runToolbarCustomizationPalette:" destination="298" id="365"/>
- <action selector="saveDocument:" destination="75" id="362"/>
- <action selector="selectAll:" destination="198" id="232"/>
- <action selector="showGuessPanel:" destination="204" id="230"/>
- <action selector="showHelp:" destination="492" id="493"/>
- <action selector="startSpeaking:" destination="196" id="233"/>
- <action selector="stopSpeaking:" destination="195" id="227"/>
- <action selector="subscript:" destination="408" id="429"/>
- <action selector="superscript:" destination="407" id="430"/>
- <action selector="tightenKerning:" destination="418" id="431"/>
- <action selector="toggleAutomaticDashSubstitution:" destination="460" id="461"/>
- <action selector="toggleAutomaticLinkDetection:" destination="354" id="357"/>
- <action selector="toggleAutomaticQuoteSubstitution:" destination="351" id="356"/>
- <action selector="toggleAutomaticSpellingCorrection:" destination="454" id="456"/>
- <action selector="toggleAutomaticTextReplacement:" destination="462" id="463"/>
- <action selector="toggleContinuousSpellChecking:" destination="219" id="222"/>
- <action selector="toggleGrammarChecking:" destination="346" id="347"/>
- <action selector="toggleRuler:" destination="505" id="520"/>
- <action selector="toggleSmartInsertDelete:" destination="350" id="355"/>
- <action selector="toggleToolbarShown:" destination="297" id="366"/>
- <action selector="turnOffKerning:" destination="417" id="441"/>
- <action selector="turnOffLigatures:" destination="413" id="440"/>
- <action selector="underline:" destination="392" id="432"/>
- <action selector="undo:" destination="207" id="223"/>
- <action selector="unhideAllApplications:" destination="150" id="370"/>
- <action selector="unscript:" destination="406" id="437"/>
- <action selector="uppercaseWord:" destination="452" id="464"/>
- <action selector="useAllLigatures:" destination="414" id="434"/>
- <action selector="useStandardKerning:" destination="416" id="438"/>
- <action selector="useStandardLigatures:" destination="412" id="439"/>
- </connections>
- </customObject>
+ <customObject id="-2" userLabel="File's Owner" customClass="NSApplication"/>
+ <customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
<customObject id="-3" userLabel="Application">
<connections>
- <action selector="terminate:" destination="136" id="449"/>
+ <outlet property="delegate" destination="TTM-ut-PQ8" id="pzd-XQ-n2l"/>
</connections>
</customObject>
<menu title="AMainMenu" systemMenu="main" id="29">
@@ -102,6 +19,9 @@
<items>
<menuItem title="About hangman" id="58">
<modifierMask key="keyEquivalentModifierMask"/>
+ <connections>
+ <action selector="orderFrontStandardAboutPanel:" target="-2" id="142"/>
+ </connections>
</menuItem>
<menuItem isSeparatorItem="YES" id="236">
<modifierMask key="keyEquivalentModifierMask" command="YES"/>
@@ -116,316 +36,54 @@
<menuItem isSeparatorItem="YES" id="144">
<modifierMask key="keyEquivalentModifierMask" command="YES"/>
</menuItem>
- <menuItem title="Hide hangman" keyEquivalent="h" id="134"/>
+ <menuItem title="Hide hangman" keyEquivalent="h" id="134">
+ <connections>
+ <action selector="hide:" target="-1" id="367"/>
+ </connections>
+ </menuItem>
<menuItem title="Hide Others" keyEquivalent="h" id="145">
<modifierMask key="keyEquivalentModifierMask" option="YES" command="YES"/>
+ <connections>
+ <action selector="hideOtherApplications:" target="-1" id="368"/>
+ </connections>
</menuItem>
- <menuItem title="Show All" id="150"/>
- <menuItem isSeparatorItem="YES" id="149">
- <modifierMask key="keyEquivalentModifierMask" command="YES"/>
- </menuItem>
- <menuItem title="Quit hangman" keyEquivalent="q" id="136"/>
- </items>
- </menu>
- </menuItem>
- <menuItem title="File" id="83">
- <menu key="submenu" title="File" id="81">
- <items>
- <menuItem title="New" keyEquivalent="n" id="82"/>
- <menuItem title="Open…" keyEquivalent="o" id="72"/>
- <menuItem title="Open Recent" id="124">
- <menu key="submenu" title="Open Recent" systemMenu="recentDocuments" id="125">
- <items>
- <menuItem title="Clear Menu" id="126"/>
- </items>
- </menu>
- </menuItem>
- <menuItem isSeparatorItem="YES" id="79">
- <modifierMask key="keyEquivalentModifierMask" command="YES"/>
- </menuItem>
- <menuItem title="Close" keyEquivalent="w" id="73"/>
- <menuItem title="Save…" keyEquivalent="s" id="75"/>
- <menuItem title="Revert to Saved" id="112">
- <modifierMask key="keyEquivalentModifierMask"/>
- </menuItem>
- <menuItem isSeparatorItem="YES" id="74">
- <modifierMask key="keyEquivalentModifierMask" command="YES"/>
- </menuItem>
- <menuItem title="Page Setup..." keyEquivalent="P" id="77">
- <modifierMask key="keyEquivalentModifierMask" shift="YES" command="YES"/>
- </menuItem>
- <menuItem title="Print…" keyEquivalent="p" id="78"/>
- </items>
- </menu>
- </menuItem>
- <menuItem title="Edit" id="217">
- <menu key="submenu" title="Edit" id="205">
- <items>
- <menuItem title="Undo" keyEquivalent="z" id="207"/>
- <menuItem title="Redo" keyEquivalent="Z" id="215">
- <modifierMask key="keyEquivalentModifierMask" shift="YES" command="YES"/>
- </menuItem>
- <menuItem isSeparatorItem="YES" id="206">
- <modifierMask key="keyEquivalentModifierMask" command="YES"/>
- </menuItem>
- <menuItem title="Cut" keyEquivalent="x" id="199"/>
- <menuItem title="Copy" keyEquivalent="c" id="197"/>
- <menuItem title="Paste" keyEquivalent="v" id="203"/>
- <menuItem title="Paste and Match Style" keyEquivalent="V" id="485">
- <modifierMask key="keyEquivalentModifierMask" option="YES" command="YES"/>
+ <menuItem title="Show All" id="150">
+ <connections>
+ <action selector="unhideAllApplications:" target="-1" id="370"/>
+ </connections>
</menuItem>
- <menuItem title="Delete" id="202"/>
- <menuItem title="Select All" keyEquivalent="a" id="198"/>
- <menuItem isSeparatorItem="YES" id="214">
+ <menuItem isSeparatorItem="YES" id="149">
<modifierMask key="keyEquivalentModifierMask" command="YES"/>
</menuItem>
- <menuItem title="Find" id="218">
- <menu key="submenu" title="Find" id="220">
- <items>
- <menuItem title="Find…" tag="1" keyEquivalent="f" id="209"/>
- <menuItem title="Find and Replace…" tag="12" keyEquivalent="f" id="534">
- <modifierMask key="keyEquivalentModifierMask" option="YES" command="YES"/>
- </menuItem>
- <menuItem title="Find Next" tag="2" keyEquivalent="g" id="208"/>
- <menuItem title="Find Previous" tag="3" keyEquivalent="G" id="213">
- <modifierMask key="keyEquivalentModifierMask" shift="YES" command="YES"/>
- </menuItem>
- <menuItem title="Use Selection for Find" tag="7" keyEquivalent="e" id="221"/>
- <menuItem title="Jump to Selection" keyEquivalent="j" id="210"/>
- </items>
- </menu>
- </menuItem>
- <menuItem title="Spelling and Grammar" id="216">
- <menu key="submenu" title="Spelling and Grammar" id="200">
- <items>
- <menuItem title="Show Spelling and Grammar" keyEquivalent=":" id="204"/>
- <menuItem title="Check Document Now" keyEquivalent=";" id="201"/>
- <menuItem isSeparatorItem="YES" id="453"/>
- <menuItem title="Check Spelling While Typing" id="219"/>
- <menuItem title="Check Grammar With Spelling" id="346"/>
- <menuItem title="Correct Spelling Automatically" id="454">
- <modifierMask key="keyEquivalentModifierMask"/>
- </menuItem>
- </items>
- </menu>
- </menuItem>
- <menuItem title="Substitutions" id="348">
- <menu key="submenu" title="Substitutions" id="349">
- <items>
- <menuItem title="Show Substitutions" id="457">
- <modifierMask key="keyEquivalentModifierMask"/>
- </menuItem>
- <menuItem isSeparatorItem="YES" id="459"/>
- <menuItem title="Smart Copy/Paste" tag="1" keyEquivalent="f" id="350"/>
- <menuItem title="Smart Quotes" tag="2" keyEquivalent="g" id="351"/>
- <menuItem title="Smart Dashes" id="460">
- <modifierMask key="keyEquivalentModifierMask"/>
- </menuItem>
- <menuItem title="Smart Links" tag="3" keyEquivalent="G" id="354">
- <modifierMask key="keyEquivalentModifierMask" shift="YES" command="YES"/>
- </menuItem>
- <menuItem title="Text Replacement" id="462">
- <modifierMask key="keyEquivalentModifierMask"/>
- </menuItem>
- </items>
- </menu>
- </menuItem>
- <menuItem title="Transformations" id="450">
- <modifierMask key="keyEquivalentModifierMask"/>
- <menu key="submenu" title="Transformations" id="451">
- <items>
- <menuItem title="Make Upper Case" id="452">
- <modifierMask key="keyEquivalentModifierMask"/>
- </menuItem>
- <menuItem title="Make Lower Case" id="465">
- <modifierMask key="keyEquivalentModifierMask"/>
- </menuItem>
- <menuItem title="Capitalize" id="466">
- <modifierMask key="keyEquivalentModifierMask"/>
- </menuItem>
- </items>
- </menu>
- </menuItem>
- <menuItem title="Speech" id="211">
- <menu key="submenu" title="Speech" id="212">
- <items>
- <menuItem title="Start Speaking" id="196"/>
- <menuItem title="Stop Speaking" id="195"/>
- </items>
- </menu>
+ <menuItem title="Quit hangman" keyEquivalent="q" id="136">
+ <connections>
+ <action selector="terminate:" target="-3" id="449"/>
+ </connections>
</menuItem>
</items>
</menu>
</menuItem>
- <menuItem title="Format" id="375">
- <modifierMask key="keyEquivalentModifierMask"/>
- <menu key="submenu" title="Format" id="376">
- <items>
- <menuItem title="Font" id="377">
- <modifierMask key="keyEquivalentModifierMask"/>
- <menu key="submenu" title="Font" systemMenu="font" id="388">
- <items>
- <menuItem title="Show Fonts" keyEquivalent="t" id="389"/>
- <menuItem title="Bold" tag="2" keyEquivalent="b" id="390"/>
- <menuItem title="Italic" tag="1" keyEquivalent="i" id="391"/>
- <menuItem title="Underline" keyEquivalent="u" id="392"/>
- <menuItem isSeparatorItem="YES" id="393"/>
- <menuItem title="Bigger" tag="3" keyEquivalent="+" id="394"/>
- <menuItem title="Smaller" tag="4" keyEquivalent="-" id="395"/>
- <menuItem isSeparatorItem="YES" id="396"/>
- <menuItem title="Kern" id="397">
- <modifierMask key="keyEquivalentModifierMask"/>
- <menu key="submenu" title="Kern" id="415">
- <items>
- <menuItem title="Use Default" id="416">
- <modifierMask key="keyEquivalentModifierMask"/>
- </menuItem>
- <menuItem title="Use None" id="417">
- <modifierMask key="keyEquivalentModifierMask"/>
- </menuItem>
- <menuItem title="Tighten" id="418">
- <modifierMask key="keyEquivalentModifierMask"/>
- </menuItem>
- <menuItem title="Loosen" id="419">
- <modifierMask key="keyEquivalentModifierMask"/>
- </menuItem>
- </items>
- </menu>
- </menuItem>
- <menuItem title="Ligatures" id="398">
- <modifierMask key="keyEquivalentModifierMask"/>
- <menu key="submenu" title="Ligatures" id="411">
- <items>
- <menuItem title="Use Default" id="412">
- <modifierMask key="keyEquivalentModifierMask"/>
- </menuItem>
- <menuItem title="Use None" id="413">
- <modifierMask key="keyEquivalentModifierMask"/>
- </menuItem>
- <menuItem title="Use All" id="414">
- <modifierMask key="keyEquivalentModifierMask"/>
- </menuItem>
- </items>
- </menu>
- </menuItem>
- <menuItem title="Baseline" id="399">
- <modifierMask key="keyEquivalentModifierMask"/>
- <menu key="submenu" title="Baseline" id="405">
- <items>
- <menuItem title="Use Default" id="406">
- <modifierMask key="keyEquivalentModifierMask"/>
- </menuItem>
- <menuItem title="Superscript" id="407">
- <modifierMask key="keyEquivalentModifierMask"/>
- </menuItem>
- <menuItem title="Subscript" id="408">
- <modifierMask key="keyEquivalentModifierMask"/>
- </menuItem>
- <menuItem title="Raise" id="409">
- <modifierMask key="keyEquivalentModifierMask"/>
- </menuItem>
- <menuItem title="Lower" id="410">
- <modifierMask key="keyEquivalentModifierMask"/>
- </menuItem>
- </items>
- </menu>
- </menuItem>
- <menuItem isSeparatorItem="YES" id="400"/>
- <menuItem title="Show Colors" keyEquivalent="C" id="401"/>
- <menuItem isSeparatorItem="YES" id="402"/>
- <menuItem title="Copy Style" keyEquivalent="c" id="403">
- <modifierMask key="keyEquivalentModifierMask" option="YES" command="YES"/>
- </menuItem>
- <menuItem title="Paste Style" keyEquivalent="v" id="404">
- <modifierMask key="keyEquivalentModifierMask" option="YES" command="YES"/>
- </menuItem>
- </items>
- </menu>
- </menuItem>
- <menuItem title="Text" id="496">
- <modifierMask key="keyEquivalentModifierMask"/>
- <menu key="submenu" title="Text" id="497">
- <items>
- <menuItem title="Align Left" keyEquivalent="{" id="498"/>
- <menuItem title="Center" keyEquivalent="|" id="499"/>
- <menuItem title="Justify" id="500">
- <modifierMask key="keyEquivalentModifierMask"/>
- </menuItem>
- <menuItem title="Align Right" keyEquivalent="}" id="501"/>
- <menuItem isSeparatorItem="YES" id="502"/>
- <menuItem title="Writing Direction" id="503">
- <modifierMask key="keyEquivalentModifierMask"/>
- <menu key="submenu" title="Writing Direction" id="508">
- <items>
- <menuItem title="Paragraph" enabled="NO" id="509">
- <modifierMask key="keyEquivalentModifierMask"/>
- </menuItem>
- <menuItem id="510">
- <string key="title"> Default</string>
- <modifierMask key="keyEquivalentModifierMask"/>
- </menuItem>
- <menuItem id="511">
- <string key="title"> Left to Right</string>
- <modifierMask key="keyEquivalentModifierMask"/>
- </menuItem>
- <menuItem id="512">
- <string key="title"> Right to Left</string>
- <modifierMask key="keyEquivalentModifierMask"/>
- </menuItem>
- <menuItem isSeparatorItem="YES" id="513"/>
- <menuItem title="Selection" enabled="NO" id="514">
- <modifierMask key="keyEquivalentModifierMask"/>
- </menuItem>
- <menuItem id="515">
- <string key="title"> Default</string>
- <modifierMask key="keyEquivalentModifierMask"/>
- </menuItem>
- <menuItem id="516">
- <string key="title"> Left to Right</string>
- <modifierMask key="keyEquivalentModifierMask"/>
- </menuItem>
- <menuItem id="517">
- <string key="title"> Right to Left</string>
- <modifierMask key="keyEquivalentModifierMask"/>
- </menuItem>
- </items>
- </menu>
- </menuItem>
- <menuItem isSeparatorItem="YES" id="504"/>
- <menuItem title="Show Ruler" id="505">
- <modifierMask key="keyEquivalentModifierMask"/>
- </menuItem>
- <menuItem title="Copy Ruler" keyEquivalent="c" id="506">
- <modifierMask key="keyEquivalentModifierMask" control="YES" command="YES"/>
- </menuItem>
- <menuItem title="Paste Ruler" keyEquivalent="v" id="507">
- <modifierMask key="keyEquivalentModifierMask" control="YES" command="YES"/>
- </menuItem>
- </items>
- </menu>
- </menuItem>
- </items>
- </menu>
- </menuItem>
- <menuItem title="View" id="295">
- <menu key="submenu" title="View" id="296">
- <items>
- <menuItem title="Show Toolbar" keyEquivalent="t" id="297">
- <modifierMask key="keyEquivalentModifierMask" option="YES" command="YES"/>
- </menuItem>
- <menuItem title="Customize Toolbar…" id="298"/>
- </items>
- </menu>
- </menuItem>
<menuItem title="Window" id="19">
<menu key="submenu" title="Window" systemMenu="window" id="24">
<items>
- <menuItem title="Minimize" keyEquivalent="m" id="23"/>
- <menuItem title="Zoom" id="239"/>
+ <menuItem title="Minimize" keyEquivalent="m" id="23">
+ <connections>
+ <action selector="performMiniaturize:" target="-1" id="37"/>
+ </connections>
+ </menuItem>
+ <menuItem title="Zoom" id="239">
+ <connections>
+ <action selector="performZoom:" target="-1" id="240"/>
+ </connections>
+ </menuItem>
<menuItem isSeparatorItem="YES" id="92">
<modifierMask key="keyEquivalentModifierMask" command="YES"/>
</menuItem>
- <menuItem title="Bring All to Front" id="5"/>
+ <menuItem title="Bring All to Front" id="5">
+ <connections>
+ <action selector="arrangeInFront:" target="-1" id="39"/>
+ </connections>
+ </menuItem>
</items>
</menu>
</menuItem>
@@ -433,35 +91,223 @@
<modifierMask key="keyEquivalentModifierMask"/>
<menu key="submenu" title="Help" systemMenu="help" id="491">
<items>
- <menuItem title="hangman Help" keyEquivalent="?" id="492"/>
+ <menuItem title="hangman Help" keyEquivalent="?" id="492">
+ <connections>
+ <action selector="showHelp:" target="-1" id="493"/>
+ </connections>
+ </menuItem>
</items>
</menu>
</menuItem>
</items>
</menu>
<window title="hangman" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" releasedWhenClosed="NO" animationBehavior="default" id="371">
- <windowStyleMask key="styleMask" titled="YES" closable="YES" miniaturizable="YES" resizable="YES"/>
+ <windowStyleMask key="styleMask" titled="YES" miniaturizable="YES"/>
<windowPositionMask key="initialPositionMask" leftStrut="YES" rightStrut="YES" topStrut="YES" bottomStrut="YES"/>
- <rect key="contentRect" x="335" y="390" width="480" height="360"/>
- <rect key="screenRect" x="0.0" y="0.0" width="2560" height="1418"/>
+ <rect key="contentRect" x="335" y="390" width="472" height="246"/>
+ <rect key="screenRect" x="0.0" y="0.0" width="1920" height="1058"/>
<view key="contentView" id="372">
- <rect key="frame" x="0.0" y="0.0" width="480" height="360"/>
+ <rect key="frame" x="0.0" y="0.0" width="472" height="246"/>
<autoresizingMask key="autoresizingMask"/>
+ <subviews>
+ <button verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="11z-m9-DPw">
+ <rect key="frame" x="192" y="11" width="107" height="32"/>
+ <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
+ <buttonCell key="cell" type="push" title="New Game" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="5Hi-Tc-D19">
+ <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+ <font key="font" metaFont="system"/>
+ </buttonCell>
+ <connections>
+ <action selector="newGame:" target="TTM-ut-PQ8" id="gYM-Tp-fiD"/>
+ </connections>
+ </button>
+ <matrix verticalHuggingPriority="750" fixedFrame="YES" mode="highlight" allowsEmptySelection="NO" autosizesCells="NO" translatesAutoresizingMaskIntoConstraints="NO" id="IIc-jB-fOB">
+ <rect key="frame" x="133" y="59" width="312" height="52"/>
+ <autoresizingMask key="autoresizingMask"/>
+ <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
+ <size key="cellSize" width="24" height="26"/>
+ <buttonCell key="prototype" type="smallSquare" title="a" bezelStyle="smallSquare" imagePosition="overlaps" alignment="center" state="on" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="M7y-zB-O3j">
+ <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+ <font key="font" metaFont="system"/>
+ </buttonCell>
+ <cells>
+ <column>
+ <buttonCell type="smallSquare" title="a" bezelStyle="smallSquare" imagePosition="overlaps" alignment="center" state="on" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="z0x-i5-PXM">
+ <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+ <font key="font" metaFont="system"/>
+ </buttonCell>
+ <buttonCell type="smallSquare" title="n" bezelStyle="smallSquare" imagePosition="overlaps" alignment="center" state="on" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="kdX-5Y-oNC">
+ <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+ <font key="font" metaFont="system"/>
+ </buttonCell>
+ </column>
+ <column>
+ <buttonCell type="smallSquare" title="b" bezelStyle="smallSquare" imagePosition="overlaps" alignment="center" state="on" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="ZVo-9L-Nhf">
+ <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+ <font key="font" metaFont="system"/>
+ </buttonCell>
+ <buttonCell type="smallSquare" title="o" bezelStyle="smallSquare" imagePosition="overlaps" alignment="center" state="on" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="5XP-80-J1F">
+ <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+ <font key="font" metaFont="system"/>
+ </buttonCell>
+ </column>
+ <column>
+ <buttonCell type="smallSquare" title="c" bezelStyle="smallSquare" imagePosition="overlaps" alignment="center" state="on" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="uVy-wx-rwU">
+ <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+ <font key="font" metaFont="system"/>
+ </buttonCell>
+ <buttonCell type="smallSquare" title="p" bezelStyle="smallSquare" imagePosition="overlaps" alignment="center" state="on" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="aMa-N0-Tvf">
+ <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+ <font key="font" metaFont="system"/>
+ </buttonCell>
+ </column>
+ <column>
+ <buttonCell type="smallSquare" title="d" bezelStyle="smallSquare" imagePosition="overlaps" alignment="center" state="on" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="fWN-EE-fpc">
+ <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+ <font key="font" metaFont="system"/>
+ </buttonCell>
+ <buttonCell type="smallSquare" title="q" bezelStyle="smallSquare" imagePosition="overlaps" alignment="center" state="on" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="hqQ-5K-gxk">
+ <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+ <font key="font" metaFont="system"/>
+ </buttonCell>
+ </column>
+ <column>
+ <buttonCell type="smallSquare" title="e" bezelStyle="smallSquare" imagePosition="overlaps" alignment="center" state="on" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="Eku-Ke-d3A">
+ <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+ <font key="font" metaFont="system"/>
+ </buttonCell>
+ <buttonCell type="smallSquare" title="r" bezelStyle="smallSquare" imagePosition="overlaps" alignment="center" state="on" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="bYE-9D-Eye">
+ <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+ <font key="font" metaFont="system"/>
+ </buttonCell>
+ </column>
+ <column>
+ <buttonCell type="smallSquare" title="f" bezelStyle="smallSquare" imagePosition="overlaps" alignment="center" state="on" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="Zy1-Vv-LgR">
+ <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+ <font key="font" metaFont="system"/>
+ </buttonCell>
+ <buttonCell type="smallSquare" title="s" bezelStyle="smallSquare" imagePosition="overlaps" alignment="center" state="on" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="eNX-nQ-LWc">
+ <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+ <font key="font" metaFont="system"/>
+ </buttonCell>
+ </column>
+ <column>
+ <buttonCell type="smallSquare" title="g" bezelStyle="smallSquare" imagePosition="overlaps" alignment="center" state="on" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="ttX-58-xLR">
+ <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+ <font key="font" metaFont="system"/>
+ </buttonCell>
+ <buttonCell type="smallSquare" title="t" bezelStyle="smallSquare" imagePosition="overlaps" alignment="center" state="on" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="dHR-aw-BXR">
+ <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+ <font key="font" metaFont="system"/>
+ </buttonCell>
+ </column>
+ <column>
+ <buttonCell type="smallSquare" title="h" bezelStyle="smallSquare" imagePosition="overlaps" alignment="center" state="on" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="p5T-nG-AQt">
+ <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+ <font key="font" metaFont="system"/>
+ </buttonCell>
+ <buttonCell type="smallSquare" title="u" bezelStyle="smallSquare" imagePosition="overlaps" alignment="center" state="on" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="aNd-rI-DIY">
+ <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+ <font key="font" metaFont="system"/>
+ </buttonCell>
+ </column>
+ <column>
+ <buttonCell type="smallSquare" title="i" bezelStyle="smallSquare" imagePosition="overlaps" alignment="center" state="on" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="D0O-yX-l94">
+ <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+ <font key="font" metaFont="system"/>
+ </buttonCell>
+ <buttonCell type="smallSquare" title="v" bezelStyle="smallSquare" imagePosition="overlaps" alignment="center" state="on" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="fJi-eg-NbT">
+ <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+ <font key="font" metaFont="system"/>
+ </buttonCell>
+ </column>
+ <column>
+ <buttonCell type="smallSquare" title="j" bezelStyle="smallSquare" imagePosition="overlaps" alignment="center" state="on" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="0VQ-hn-jOn">
+ <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+ <font key="font" metaFont="system"/>
+ </buttonCell>
+ <buttonCell type="smallSquare" title="w" bezelStyle="smallSquare" imagePosition="overlaps" alignment="center" state="on" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="N5F-98-ghU">
+ <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+ <font key="font" metaFont="system"/>
+ </buttonCell>
+ </column>
+ <column>
+ <buttonCell type="smallSquare" title="k" bezelStyle="smallSquare" imagePosition="overlaps" alignment="center" state="on" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="2jj-Dv-vid">
+ <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+ <font key="font" metaFont="system"/>
+ </buttonCell>
+ <buttonCell type="smallSquare" title="x" bezelStyle="smallSquare" imagePosition="overlaps" alignment="center" state="on" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="Ttj-aj-zTb">
+ <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+ <font key="font" metaFont="system"/>
+ </buttonCell>
+ </column>
+ <column>
+ <buttonCell type="smallSquare" title="l" bezelStyle="smallSquare" imagePosition="overlaps" alignment="center" state="on" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="pLp-kj-WWm">
+ <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+ <font key="font" metaFont="system"/>
+ </buttonCell>
+ <buttonCell type="smallSquare" title="y" bezelStyle="smallSquare" imagePosition="overlaps" alignment="center" state="on" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="h6f-Ck-WRy">
+ <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+ <font key="font" metaFont="system"/>
+ </buttonCell>
+ </column>
+ <column>
+ <buttonCell type="smallSquare" title="m" bezelStyle="smallSquare" imagePosition="overlaps" alignment="center" state="on" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="bTB-AA-vS1">
+ <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+ <font key="font" metaFont="system"/>
+ </buttonCell>
+ <buttonCell type="smallSquare" title="z" bezelStyle="smallSquare" imagePosition="overlaps" alignment="center" state="on" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="fRq-GV-OAb">
+ <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+ <font key="font" metaFont="system"/>
+ </buttonCell>
+ </column>
+ </cells>
+ <connections>
+ <action selector="selectLetter:" target="TTM-ut-PQ8" id="p3f-51-aKh"/>
+ </connections>
+ </matrix>
+ <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="2KI-Hg-ZY9">
+ <rect key="frame" x="25" y="87" width="94" height="17"/>
+ <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
+ <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Select a letter:" id="nOw-MV-7Dz">
+ <font key="font" metaFont="system"/>
+ <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
+ <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
+ </textFieldCell>
+ </textField>
+ <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="zOS-j2-noc">
+ <rect key="frame" x="313" y="161" width="135" height="65"/>
+ <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
+ <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Play hang man!" id="1ml-k6-BO4">
+ <font key="font" metaFont="system"/>
+ <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
+ <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
+ </textFieldCell>
+ </textField>
+ <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="0RN-73-PRW">
+ <rect key="frame" x="25" y="112" width="430" height="41"/>
+ <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
+ <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="center" title="word" id="NEV-xc-erc">
+ <font key="font" size="19" name="LucidaGrande"/>
+ <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
+ <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
+ </textFieldCell>
+ </textField>
+ <imageView horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="s2s-E0-g7D">
+ <rect key="frame" x="184" y="158" width="112" height="71"/>
+ <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
+ <imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" imageFrameStyle="grayBezel" id="COU-b6-JIX"/>
+ </imageView>
+ </subviews>
</view>
</window>
- <customObject id="494" customClass="AppDelegate">
- <connections>
- <outlet property="window" destination="371" id="532"/>
- </connections>
- </customObject>
- <customObject id="420" customClass="NSFontManager">
+ <customObject id="420" customClass="NSFontManager"/>
+ <customObject id="TTM-ut-PQ8" customClass="HangmanController">
<connections>
- <action selector="addFontTrait:" destination="390" id="421"/>
- <action selector="addFontTrait:" destination="391" id="422"/>
- <action selector="modifyFont:" destination="395" id="423"/>
- <action selector="modifyFont:" destination="394" id="425"/>
- <action selector="orderFrontFontPanel:" destination="389" id="424"/>
+ <outlet property="guessed" destination="0RN-73-PRW" id="vwR-Zc-7LS"/>
+ <outlet property="image" destination="s2s-E0-g7D" id="FdC-qh-1Jy"/>
+ <outlet property="message" destination="zOS-j2-noc" id="d07-qP-znw"/>
</connections>
</customObject>
</objects>
-</document>
+</document>
\ No newline at end of file
diff --git a/images/hung-0.png b/images/hung-0.png
new file mode 100644
index 0000000..d4eacb0
Binary files /dev/null and b/images/hung-0.png differ
diff --git a/images/hung-1.png b/images/hung-1.png
new file mode 100644
index 0000000..eda3dc8
Binary files /dev/null and b/images/hung-1.png differ
diff --git a/images/hung-10.png b/images/hung-10.png
new file mode 100644
index 0000000..a33aa80
Binary files /dev/null and b/images/hung-10.png differ
diff --git a/images/hung-11.png b/images/hung-11.png
new file mode 100644
index 0000000..7af18a9
Binary files /dev/null and b/images/hung-11.png differ
diff --git a/images/hung-2.png b/images/hung-2.png
new file mode 100644
index 0000000..1690e71
Binary files /dev/null and b/images/hung-2.png differ
diff --git a/images/hung-3.png b/images/hung-3.png
new file mode 100644
index 0000000..70b3501
Binary files /dev/null and b/images/hung-3.png differ
diff --git a/images/hung-4.png b/images/hung-4.png
new file mode 100644
index 0000000..814ad5f
Binary files /dev/null and b/images/hung-4.png differ
diff --git a/images/hung-5.png b/images/hung-5.png
new file mode 100644
index 0000000..7e42e79
Binary files /dev/null and b/images/hung-5.png differ
diff --git a/images/hung-6.png b/images/hung-6.png
new file mode 100644
index 0000000..a3bf17c
Binary files /dev/null and b/images/hung-6.png differ
diff --git a/images/hung-7.png b/images/hung-7.png
new file mode 100644
index 0000000..4f4586b
Binary files /dev/null and b/images/hung-7.png differ
diff --git a/images/hung-8.png b/images/hung-8.png
new file mode 100644
index 0000000..a347ba0
Binary files /dev/null and b/images/hung-8.png differ
diff --git a/images/hung-9.png b/images/hung-9.png
new file mode 100644
index 0000000..61734a4
Binary files /dev/null and b/images/hung-9.png differ
diff --git a/images/icon.png b/images/icon.png
new file mode 100644
index 0000000..2a28c6a
Binary files /dev/null and b/images/icon.png differ
diff --git a/sources/Hangman.h b/sources/Hangman.h
new file mode 100644
index 0000000..82b3f9c
--- /dev/null
+++ b/sources/Hangman.h
@@ -0,0 +1,75 @@
+// -*- mode:objc;coding:utf-8 -*-
+//****************************************************************************
+//FILE: Hangman.h
+//LANGUAGE: Objective-C
+//SYSTEM: POSIX
+//USER-INTERFACE: NONE
+//DESCRIPTION
+//
+// The Hangman game model.
+//
+//AUTHORS
+// <PJB> Pascal J. Bourguignon <pjb@informatimago.com>
+//MODIFICATIONS
+// 2014-04-03 <PJB> Created.
+//BUGS
+//LEGAL
+// AGPL3
+//
+// Copyright Pascal J. Bourguignon 2014 - 2014
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see <http://www.gnu.org/licenses/>.
+//****************************************************************************
+#ifndef Hangman_h
+#define Hangman_h
+#include <Foundation/Foundation.h>
+
+
+typedef enum {
+ Hangman_wins,
+ Hangman_loses,
+ Hangman_alreadyTried,
+ Hangman_badGuess,
+ Hangman_newGuessedWord
+} Hangman_status;
+
+
+@interface Hangman:NSObject
+{
+ NSString* word; // the word to guess. Should only contain letters in the alphabet.
+ NSMutableArray* found; // array of yes|no one for each letter in word.
+ NSMutableString* triedLetters; // array of letters tried so far.
+ NSInteger currentErrorCount;
+ NSInteger maximumErrorCount;
+ // Constants:
+ NSString* missingLetter; // "."
+ NSString* alphabet; // abcdefghijklmnopqrstuvwxyz"
+ NSNumber* yes;
+ NSNumber* no;
+}
+
+-(id)initWithWord:(NSString*)aWord maximumErrorCount:(NSInteger)aMaximumErrorCount;
+
+-(NSString*)getWord;
+-(NSString*)getFoundWord;
+
+-(NSInteger)tryLetter:(NSString*)letter;
+// DO: fill the word with the letter where it belongs.
+// RETURN: a Hangman_status code.
+
+-(NSInteger)errorCount;
+-(NSString*)alphabet;
+@end
+#endif
+//// THE END ////
diff --git a/sources/Hangman.m b/sources/Hangman.m
new file mode 100644
index 0000000..cb36c75
--- /dev/null
+++ b/sources/Hangman.m
@@ -0,0 +1,140 @@
+// -*- mode:objc;coding:utf-8 -*-
+//****************************************************************************
+//FILE: Hangman.m
+//LANGUAGE: Objective-C
+//SYSTEM: POSIX
+//USER-INTERFACE: NONE
+//DESCRIPTION
+//
+// The Hangman game model.
+//
+//AUTHORS
+// <PJB> Pascal J. Bourguignon <pjb@informatimago.com>
+//MODIFICATIONS
+// 2014-04-03 <PJB> Created.
+//BUGS
+//LEGAL
+// AGPL3
+//
+// Copyright Pascal J. Bourguignon 2014 - 2014
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see <http://www.gnu.org/licenses/>.
+//****************************************************************************
+#include "Hangman.h"
+
+
+@implementation Hangman
+
+-(void)initializeFound{
+ NSInteger length=[word length];
+ found=[NSMutableArray arrayWithCapacity:length];
+ for(NSInteger i=0;i<length;i++){
+ [found addObject:no];
+ }
+ [found setObject:yes atIndexedSubscript:0];
+ [found setObject:yes atIndexedSubscript:[found count]-1];
+}
+
+-(id)initWithWord:(NSString*)aWord maximumErrorCount:(NSInteger)aMaximumErrorCount
+{
+ if((self=[super init])) {
+ missingLetter=@".";
+ alphabet=@"abcdefghijklmnopqrstuvwxyz";
+ yes=[NSNumber numberWithBool:YES];
+ no=[NSNumber numberWithBool:NO];
+
+ word=[aWord lowercaseString];
+ [self initializeFound];
+ triedLetters=[NSMutableString stringWithCapacity:[alphabet length]];
+ currentErrorCount=0;
+ maximumErrorCount=aMaximumErrorCount;
+ }
+ return(self);
+}
+
+
+-(NSString*)getWord
+{
+ return(word);
+}
+
+-(NSString*)getFoundWord
+{
+ NSMutableString* foundWord=[word mutableCopy];
+ NSInteger length=[foundWord length];
+ for(NSInteger i=0;i<length;i++){
+ if(![[found objectAtIndex:i] boolValue]){
+ [foundWord replaceCharactersInRange:NSMakeRange(i,1) withString:missingLetter];
+ }
+ }
+ return(foundWord);
+}
+
+
+-(NSInteger)tryLetter:(NSString*)letter
+{
+
+ NSRange r=[triedLetters rangeOfString:letter];
+ if(r.length!=0) {
+ if(currentErrorCount<maximumErrorCount){
+ currentErrorCount++;
+ }
+ if(currentErrorCount>=maximumErrorCount){
+ return(Hangman_loses);
+ }else{
+ return(Hangman_alreadyTried);
+ }
+ }
+ [triedLetters appendString:letter];
+
+ NSInteger length=[word length];
+ BOOL error=YES;
+ r=[word rangeOfString:letter];
+ while(r.length>0){
+ error=NO;
+ [found setObject:yes atIndexedSubscript:r.location];
+ NSInteger start=r.location+r.length;
+ NSRange searchRange=NSMakeRange(start,length-start);
+ r=[word rangeOfString:letter options:NSCaseInsensitiveSearch range:searchRange];
+ }
+ if(error){
+ if(currentErrorCount<maximumErrorCount){
+ currentErrorCount++;
+ }
+ }
+ if(currentErrorCount>=maximumErrorCount){
+ return(Hangman_loses);
+ }
+ if(![found containsObject:no]){
+ return(Hangman_wins);
+ }
+ if(error) {
+ return(Hangman_badGuess);
+ }else{
+ return(Hangman_newGuessedWord);
+ }
+}
+
+-(NSInteger)errorCount
+{
+ return(currentErrorCount);
+}
+
+-(NSString*)alphabet
+{
+ return(alphabet);
+}
+
+@end
+//// THE END ////
diff --git a/sources/HangmanController.h b/sources/HangmanController.h
new file mode 100644
index 0000000..9041780
--- /dev/null
+++ b/sources/HangmanController.h
@@ -0,0 +1,81 @@
+// -*- mode:objc;coding:utf-8 -*-
+//****************************************************************************
+//FILE: HangmanController.h
+//LANGUAGE: Objective-C
+//SYSTEM: Linux
+//USER-INTERFACE: GNUstep
+//DESCRIPTION
+//
+// The hangman game controller.
+//
+//AUTHORS
+// <PJB> Pascal J. Bourguignon <pjb@informatimago.com>
+//MODIFICATIONS
+// 2014-04-03 <PJB> Created.
+//BUGS
+//LEGAL
+// AGPL3
+//
+// Copyright Pascal J. Bourguignon 2014 - 2014
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see <http://www.gnu.org/licenses/>.
+//****************************************************************************
+#ifndef HangmanController_h
+#define HangmanController_h
+#include <AppKit/AppKit.h>
+#include "Hangman.h"
+
+@interface HangmanController:NSView
+{
+ // outlets:
+ IBOutlet NSImageView* image;
+ IBOutlet NSView* letters;
+ IBOutlet NSTextField* message;
+ IBOutlet NSTextField* guessed;
+
+ // private:
+ Hangman* hangman;
+ NSArray* words;
+ NSArray* loadedWords;
+ BOOL finished;
+}
+
+-(void)awakeFromNib;
+
+// actions:
+
+-(IBAction)selectLetter:(id)sender;
+-(IBAction)newGame:(id)sender;
+
+
+// application delegate methods:
+
+-(void)applicationDidFinishLaunching:(NSNotification*)aNotification;
+-(BOOL)applicationShouldTerminate:(id)sender;
+-(void)applicationWillTerminate:(NSNotification*)aNotification;
+
+// NSResponder methods:
+
+-(void)keyDown:(NSEvent*)event;
+
+// game methods:
+
+-(void)connectUI;
+-(void)initializeGame;
+-(void)finalizeGame;
+
+
+@end
+#endif
+//// THE END ////
diff --git a/sources/HangmanController.m b/sources/HangmanController.m
new file mode 100644
index 0000000..9a6ec53
--- /dev/null
+++ b/sources/HangmanController.m
@@ -0,0 +1,243 @@
+// -*- mode:objc;coding:utf-8 -*-
+//****************************************************************************
+//FILE: HangmanController.m
+//LANGUAGE: Objective-C
+//SYSTEM: Linux
+//USER-INTERFACE: GNUstep
+//DESCRIPTION
+//
+// The hangman game controller.
+//
+//AUTHORS
+// <PJB> Pascal J. Bourguignon <pjb@informatimago.com>
+//MODIFICATIONS
+// 2014-04-03 <PJB> Created.
+//BUGS
+//LEGAL
+// AGPL3
+//
+// Copyright Pascal J. Bourguignon 2014 - 2014
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see <http://www.gnu.org/licenses/>.
+//****************************************************************************
+#include "HangmanController.h"
+#include <stdlib.h> // for rand().
+
+@implementation HangmanController
+
+
+-(id)initWithFrame:(NSRect)frame {
+ if((self=[super initWithFrame:frame])){
+ words=[NSArray arrayWithObjects:@"along", @"and", @"andor", @"any", @"buffer", @"but", @"can",
+ @"copy", @"create", @"details", @"distributed", @"either", @"enter",
+ @"evaluation", @"even", @"file", @"fitness", @"for", @"foundation",
+ @"free", @"general", @"gnu", @"have", @"hope", @"implied", @"later",
+ @"license", @"lisp", @"merchantability", @"modify", @"more", @"not",
+ @"notes", @"option", @"own", @"particular", @"program", @"public",
+ @"published", @"purpose", @"received", @"redistribute", @"save",
+ @"see", @"should", @"software", @"terms", @"text", @"that", @"the",
+ @"then", @"this", @"under", @"useful", @"version", @"visit", @"want",
+ @"warranty", @"will", @"with", @"without", @"you", @"your",nil];
+ loadedWords=nil;}
+ return(self);}
+
+
+-(void)awakeFromNib{
+ [self connectUI];}
+
+
+// Game methods:
+
+-(void)connectUI{
+ // insert self between the window contentView and all the subviews.
+ NSWindow* window=[image window];
+ NSView* content=[window contentView];
+ [self setFrame:[content frame]];
+ NSArray* subviews=[content subviews];
+ [content setSubviews:[NSArray arrayWithObject:self]];
+ [self setSubviews:subviews];
+ // when the letter buttons are not in matrix (but in a simple view), update their target/action.
+ if(letters!=nil){
+ NSArray* letterButtons=[letters subviews];
+ NSInteger count=[letterButtons count];
+ for(NSInteger i=0;i<count;i++){
+ NSButton* button=[letterButtons objectAtIndex:i];
+ [button setTarget:self];
+ [button setAction:@selector(selectLetter:)];}}}
+
+
+-(NSArray*)words{
+ if(loadedWords!=nil) {
+ words=loadedWords;
+ loadedWords=nil;}
+ return(words);}
+
+
+-(NSArray*)readLinesFromFileHandle:(NSFileHandle*)file{
+ NSMutableArray* lines=[NSMutableArray array];
+ NSData* data=[file readDataToEndOfFile];
+ const char* text=[data bytes];
+ NSInteger length=[data length];
+ NSInteger start=0;
+ while(start<length){
+ NSInteger end=start;
+ while((end<length)&&(text[end]!='\n')){
+ end++;}
+ [lines addObject:[NSString stringWithCString:text+start length:(end-start)]];
+ start=end+1;
+ assert(1<start);}
+ return(lines);}
+
+
+-(BOOL)letterIsInAlphabet:(NSString*)letter{
+ NSString* alphabet=[hangman alphabet];
+ NSRange p=[alphabet rangeOfString:letter];
+ return(p.length!=0);}
+
+-(BOOL)wordIsSatisfactory:(NSString*)word{
+ NSString* alphabet=[hangman alphabet];
+ NSInteger length=[word length];
+ if(length<=2) {
+ return(NO);}
+ NSRange r=NSMakeRange(0,1);
+ while(r.location<length){
+ NSString* letter=[[word substringWithRange:r] lowercaseString];
+ NSRange p=[alphabet rangeOfString:letter];
+ if(p.length==0){
+ return(NO);}
+ r.location++;}
+ return(YES);}
+
+
+-(void)loadWords{
+ NSFileHandle* wordsFile=[NSFileHandle fileHandleForReadingAtPath:@"/usr/share/dict/words"];
+ if(nil==wordsFile){
+ return;}
+ NSArray* readWords=[self readLinesFromFileHandle:wordsFile];
+ [wordsFile closeFile];
+ NSInteger count=[readWords count];
+ NSMutableArray* goodWords=[NSMutableArray arrayWithCapacity:count];
+ for(NSInteger i=0;i<count;i++) {
+ NSString* word=[readWords objectAtIndex:i];
+ if([self wordIsSatisfactory:word]){
+ [goodWords addObject:[word lowercaseString]];}}
+ loadedWords=goodWords;}
+
+-(NSString*)chooseRandomWord{
+ NSArray* wordsToChoose=[self words];
+ NSInteger count=[wordsToChoose count];
+ NSInteger index=rand()%count;
+ NSString* word=[wordsToChoose objectAtIndex:index];
+ return(word);}
+
+
+-(NSInteger)maximumErrorCount{
+ // TODO: Count the images.
+ return(11);}
+
+
+-(void)setHangImage:(NSInteger)index{
+ if((0<=index)&&(index<=[self maximumErrorCount])){
+ NSImage* hungImage=[NSImage imageNamed:[NSString stringWithFormat:@"hung-%ld",(long)index]];
+ [image setImage:hungImage];}}
+
+
+-(void)initializeGame{
+ hangman=[[Hangman alloc] initWithWord:[self chooseRandomWord] maximumErrorCount:[self maximumErrorCount]];
+ [self setHangImage:0];
+ [guessed setStringValue:[hangman getFoundWord]];
+ [message setStringValue:@""];
+ [guessed setStringValue:[hangman getFoundWord]];
+ finished=NO;}
+
+
+-(void)finalizeGame{
+ [message setStringValue:@"Good bye!"];}
+
+
+// Actions:
+
+-(IBAction)newGame:(id)sender{
+ [self initializeGame];}
+
+
+-(NSString*)getLetterFromSender:(id)sender{
+ if([sender isKindOfClass:[NSMatrix class]]) {
+ return [[sender selectedCell] title];
+ }else{
+ return [sender stringValue];}}
+
+
+-(void)processLetter:(NSString*)letter{
+ NSInteger result=[hangman tryLetter:letter];
+ switch(result){
+ case Hangman_wins:
+ [guessed setStringValue:[hangman getWord]];
+ [message setStringValue:@"You win!"];
+ finished=YES;
+ break;
+ case Hangman_loses:
+ [self setHangImage:[hangman errorCount]];
+ [guessed setStringValue:[hangman getWord]];
+ [message setStringValue:@"You lose!"];
+ finished=YES;
+ break;
+ case Hangman_alreadyTried:
+ [self setHangImage:[hangman errorCount]];
+ [guessed setStringValue:[hangman getFoundWord]];
+ [message setStringValue:@"You already tried this letter!"];
+ break;
+ case Hangman_badGuess:
+ [self setHangImage:[hangman errorCount]];
+ [guessed setStringValue:[hangman getFoundWord]];
+ [message setStringValue:@"Bad guess!"];
+ break;
+ case Hangman_newGuessedWord:
+ [self setHangImage:[hangman errorCount]];
+ [guessed setStringValue:[hangman getFoundWord]];
+ [message setStringValue:@"Good guess!"];
+ default:
+ break;}}
+
+
+-(IBAction)selectLetter:(id)sender{
+ if(finished){
+ return;}
+ NSString* letter=[self getLetterFromSender:sender];
+ [self processLetter:letter];}
+
+
+// application delegate methods:
+
+-(void)applicationDidFinishLaunching:(NSNotification *)aNotification{
+ [self initializeGame];}
+
+
+-(BOOL)applicationShouldTerminate:(id)sender{
+ return YES;}
+
+
+-(void)applicationWillTerminate:(NSNotification *)aNotif{
+ [self finalizeGame];}
+
+
+// NSResponder methods:
+
+-(void)keyDown:(NSEvent*)event{
+ NSString* letter=[[event characters] lowercaseString];
+ if(([letter length]==1) && [self letterIsInAlphabet:letter]){
+ [self processLetter:letter];}}
+
+@end
+//// THE END ////