Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

hack in abstract preferences system by jamming the whole thing into p…

…references.rb
  • Loading branch information...
commit a08fe37507dc9da033f6870bc1df2ab943edc3eb 1 parent c808e0a
Greg Borenstein authored
Showing with 1,228 additions and 1,588 deletions.
  1. +2 −2 English.lproj/GEDocument.xib
  2. +1 −0  GEDocument.rb
  3. +4 −0 GEGistListDelegate.rb
  4. +292 −0 Preferences.rb
  5. +189 −0 Preferences.xib
  6. BIN  build/Debug/gisteditor.app/Contents/MacOS/gisteditor
  7. BIN  build/Debug/gisteditor.app/Contents/Resources/English.lproj/GEDocument.nib
  8. BIN  build/Debug/gisteditor.app/Contents/Resources/English.lproj/MainMenu.nib
  9. +1 −0  build/Debug/gisteditor.app/Contents/Resources/GEDocument.rb
  10. +4 −0 build/Debug/gisteditor.app/Contents/Resources/GEGistListDelegate.rb
  11. BIN  build/Debug/gisteditor.app/Contents/Resources/Preferences.nib
  12. +292 −0 build/Debug/gisteditor.app/Contents/Resources/Preferences.rb
  13. BIN  build/gisteditor.build/Debug/gisteditor.build/Objects-normal/i386/main.o
  14. BIN  build/gisteditor.build/gisteditor.pbxindex/categories.pbxbtree
  15. BIN  build/gisteditor.build/gisteditor.pbxindex/cdecls.pbxbtree
  16. BIN  build/gisteditor.build/gisteditor.pbxindex/decls.pbxbtree
  17. BIN  build/gisteditor.build/gisteditor.pbxindex/files.pbxbtree
  18. BIN  build/gisteditor.build/gisteditor.pbxindex/imports.pbxbtree
  19. BIN  build/gisteditor.build/gisteditor.pbxindex/pbxindex.header
  20. BIN  build/gisteditor.build/gisteditor.pbxindex/protocols.pbxbtree
  21. BIN  build/gisteditor.build/gisteditor.pbxindex/refs.pbxbtree
  22. BIN  build/gisteditor.build/gisteditor.pbxindex/strings.pbxstrings/control
  23. BIN  build/gisteditor.build/gisteditor.pbxindex/strings.pbxstrings/strings
  24. BIN  build/gisteditor.build/gisteditor.pbxindex/subclasses.pbxbtree
  25. BIN  build/gisteditor.build/gisteditor.pbxindex/symbols0.pbxsymbols
  26. +25 −74 gisteditor.xcodeproj/greg.mode1v3
  27. +410 −1,512 gisteditor.xcodeproj/greg.pbxuser
  28. +8 −0 gisteditor.xcodeproj/project.pbxproj
View
4 English.lproj/GEDocument.xib
@@ -8,7 +8,7 @@
<string key="IBDocument.HIToolboxVersion">353.00</string>
<object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
<bool key="EncodedWithXMLCoder">YES</bool>
- <integer value="100026"/>
+ <integer value="6"/>
<integer value="100036"/>
</object>
<object class="NSArray" key="IBDocument.PluginDependencies">
@@ -83,7 +83,7 @@
<string>WebURLsWithTitlesPboardType</string>
</object>
</object>
- <string key="NSFrameSize">{598, 77}</string>
+ <string key="NSFrameSize">{598, 14}</string>
<reference key="NSSuperview" ref="561630725"/>
<object class="NSTextContainer" key="NSTextContainer" id="1007486519">
<object class="NSLayoutManager" key="NSLayoutManager">
View
1  GEDocument.rb
@@ -15,6 +15,7 @@ class GEDocument < NSDocument
attr_accessor :associated_library
def applicationDidFinishLaunching(notification)
+
# pass
end
View
4 GEGistListDelegate.rb
@@ -9,6 +9,10 @@
class GEGistListDelegate
attr_accessor :associatedDocument
+ def awakeFromNib()
+ NSLog(preferences.user.login)
+ end
+
def numberOfRowsInTableView(aTableView)
@library = GEGistLibrary.new
@library.gists.length
View
292 Preferences.rb
@@ -0,0 +1,292 @@
+#
+# Preferences.rb
+# gisteditor
+#
+# Created by Greg Borenstein on 6/20/09.
+# Copyright (c) 2009 __MyCompanyName__. All rights reserved.
+#
+
+# require '/Users/greg/code/rubycocoa-prefs/lib/abstract_preferences.rb'
+
+require 'singleton'
+
+class NSUserDefaults
+ def [](str)
+ self.objectForKey(str)
+ end
+
+ def []=(str, obj)
+ self.setObject(obj, forKey:str)
+ end
+end
+
+class Preferences
+ include Singleton
+
+ # Save any unsaved changes to disk.
+ def save
+ Preferences.user_defaults.synchronize
+ end
+
+ class << self
+ # A shortcut method for access to <tt>NSUserDefaults.standardUserDefaults</tt>.
+ def user_defaults
+ NSUserDefaults.standardUserDefaults
+ end
+
+ # A hash of all default values for the user defaults
+ def default_values
+ @default_values ||= {}
+ end
+
+ # Registers the default values with NSUserDefaults.standardUserDefaults
+ # Call this after all your Preferences code has been loaded, for instance
+ # in <tt>awakeFromNib</tt> of your ApplicationController.
+ def register_default_values!
+ user_defaults.registerDefaults(default_values)
+ end
+ end
+
+ class Namespace
+ include Singleton
+
+ class << self
+ # Defines a reader method for the Namespace subclass on the Preferences instance.
+ #
+ # Defines a class <tt>Preferences::Keyword</tt> and <tt>preferences.keyword</tt>:
+ #
+ # class Preferences
+ # class Keyword < Namespace
+ # defaults_accessor :an_option, true
+ # end
+ # end
+ def inherited(klass)
+ super
+ method = klass.name.split('::').last.scan(/[A-Z][a-z]*/).map { |x| x.downcase }.join('_')
+ Preferences.class_eval "def #{method}; #{klass.name}.instance end", __FILE__, __LINE__
+ end
+
+ # The key in the preferences that represents the section class.
+ #
+ # Preferences::General.section_defaults_key # => "Preferences.General"
+ def section_defaults_key
+ @section_defaults_key ||= name.gsub('::', '.')
+ end
+
+ # Defines a reader and writer method for a user defaults key for this section.
+ #
+ # If the preference is a boolean value, inflected from the default value,
+ # a query method is also defined.
+ #
+ # # Defines #confirm_quit, #confirm_quit=, and #confirm_quit? It's default value is <tt>true</tt>.
+ # defaults_accessor :confirm_quit, true
+ def defaults_accessor(name, default_value)
+ key_path = "#{section_defaults_key}.#{name}"
+ Preferences.default_values[key_path] = default_value
+
+ class_eval do
+ define_method(name) do
+ Preferences.user_defaults[key_path]
+ end
+
+ define_method("#{name}=") do |value|
+ Preferences.user_defaults[key_path] = value
+ end
+
+ if default_value == true || default_value == false
+ alias_method "#{name}?", name
+ end
+ end
+
+ key_path
+ end
+
+ # Besides defining a reader and writer method via defaults_accessor,
+ # it also defines a reader method which returns an array of strings
+ # wrapped in KVO compatible string wrappers.
+ #
+ # The name of the wrapper class is defined by <tt>wrapper_class_name</tt>
+ # and can be used as the `Class Name' of a NSArrayController.
+ # The wrapper exposes `string' as a KVC accessor to which a NSTableColumn can be bound.
+ #
+ # # Defines #highlight_words, #highlight_words=, and #highlight_words_wrapped
+ # string_array_defaults_accessor :highlight_words, [], 'HighlightWordWrapper'
+ def string_array_defaults_accessor(name, default_value, wrapper_class_name)
+ wrapper = eval("class ::#{wrapper_class_name} < StringArrayWrapper; self end")
+ wrapper.key_path = defaults_accessor(name, default_value)
+
+ class_eval do
+ define_method("#{name}_wrapped") do
+ ary = []
+ send(name).each_with_index { |string, index| ary << wrapper.alloc.initWithString_index(string, index) }
+ ary
+ end
+ end
+ end
+ end
+
+ # Register an observer for a key.
+ #
+ # Include the <tt>Preferences::KVOCallbackHelper</tt> module in your class
+ # to get rubyish callback handling, instead of handling it yourself by defining
+ # the observeValueForKeyPath_ofObject_change_context method.
+ #
+ # class PreferencesController < OSX::NSWindowController
+ # include Preferences::KVOCallbackHelper
+ #
+ # def init
+ # if super_init
+ # preferences.keyword.observe(:highlight_words, self)
+ # self
+ # end
+ # end
+ #
+ # def highlight_words_changed(new_value)
+ # # Do stuff because a new value has been set.
+ # end
+ # end
+ def observe(name, observer)
+ key_path = "values.#{self.class.section_defaults_key}.#{name}"
+ NSUserDefaultsController.sharedUserDefaultsController.addObserver(observer,
+ forKeyPath:key_path, options:NSKeyValueObservingOptionNew, context:nil
+ )
+ end
+ end
+
+ class StringArrayWrapper < NSObject
+ class << self
+ attr_accessor :key_path
+
+ def array
+ Preferences.user_defaults[key_path]
+ end
+
+ def array=(array)
+ Preferences.user_defaults[key_path] = array
+ end
+
+ def destroy(klass, new_wrappers)
+ # Set the new correct indices on the remaining wrappers
+ new_wrappers.each_with_index do |wrapper, new_index|
+ wrapper.index = new_index
+ end
+
+ # Assign the new result array of strings
+ klass.array = new_wrappers.map { |wrapper| wrapper.string }
+ end
+ end
+
+ attr_accessor :string
+ attr_accessor :index
+
+ def initWithString(string, index:index)
+ if init
+ @string, @index = string, index
+ self
+ end
+ end
+
+ def array
+ self.class.array
+ end
+
+ def array=(array)
+ self.class.array = array
+ end
+
+ def string=(string)
+ @string = string
+ set_string!
+ end
+
+ def set_string!
+ if @index
+ ary = array
+ ary[@index] = string
+ self.array = ary
+ else
+ ary = array
+ ary << @string
+ self.array = ary
+ @index = ary.length - 1
+ end
+ end
+
+ def inspect
+ "#<#{self.class.name}:#{object_id} string=\"#{@string}\" key_path=\"#{self.class.key_path}\" index=\"#{@index}\">"
+ end
+ end
+
+ # Extend your class with this module to get access to a few KVC accessor helper methods.
+ module AccessorHelpers
+ # Defines a kvc_accessor which reads and writes
+ # to the specified preferences path (<tt>path_to_eval_to_object</tt>).
+ #
+ # This is useful for binding, for instance, UI elements
+ # to an array in the NSUserDefaults which is normally immutable.
+ #
+ # class PreferencesController < OSX::NSWindowController
+ # defaults_kvc_accessor :an_array_of_dictionaries, 'preferences.keyword.url_mappings'
+ # end
+ #
+ # Binding a NSArrayController to File's Owner with key path: <tt>an_array_of_dictionaries</tt>,
+ # will perform the following read/write actions on the NSUserDefaults:
+ #
+ # preferences_controller.valueForKey('an_array_of_dictionaries') # => [{'key' => 'value 1'}, {'key' => 'value 2'}]
+ # preferences_controller.setValueForKey([{'key' => 'value 1'}], 'an_array_of_dictionaries')
+ # preferences_controller.valueForKey('an_array_of_dictionaries') # => [{'key' => 'value 1'}]
+ def defaults_kvc_accessor(name, path_to_eval_to_object)
+ kvc_accessor(name)
+
+ class_eval %{
+ def #{name}
+ @#{name} ||= #{path_to_eval_to_object}
+ end
+
+ def #{name}=(new_defaults)
+ #{path_to_eval_to_object} = @#{name} = new_defaults
+ end
+ }, __FILE__, __LINE__
+ end
+
+ # Defines read and write KVC accessors like defaults_kvc_accessor does,
+ # but is used specifically for defaults defined with Namespace#string_array_defaults_accessor.
+ #
+ # class PreferencesController < OSX::NSWindowController
+ # defualts_string_array_kvc_accessor :an_array_of_strings, 'preferences.keyword.highlight_words'
+ # end
+ #
+ # See Namespace#string_array_defaults_accessor for more info.
+ def defualts_string_array_kvc_accessor(name, path_to_eval_to_object)
+ defaults_kvc_accessor(name, "#{path_to_eval_to_object}_wrapped")
+
+ class_eval %{
+ def #{name}=(new_wrappers)
+ if new_wrappers.length < #{name}.length
+ Preferences::StringArrayWrapper.destroy(#{name}.first.class, new_wrappers)
+ end
+ @#{name} = new_wrappers
+ end
+ }, __FILE__, __LINE__
+ end
+ end
+
+end
+
+module Kernel
+ # A shortcut method for easy access anywhere to the shared user defaults.
+ def preferences
+ Preferences.instance
+ end
+end
+
+class Preferences
+ class User < Namespace
+ defaults_accessor :login, "YOUR LOGIN HERE"
+ defaults_accessor :token, "YOUR TOKEN HERE"
+ end
+
+ # Register the default values with NSUserDefaults.standardUserDefaults.
+ register_default_values!
+end
+
View
189 Preferences.xib
@@ -0,0 +1,189 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.01">
+ <data>
+ <string key="IBDocument.SystemVersion">9A369</string>
+ <string key="IBDocument.InterfaceBuilderVersion">592</string>
+ <string key="IBDocument.AppKitVersion">894</string>
+ <string key="IBDocument.HIToolboxVersion">298.00</string>
+ <object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <integer value="1" id="9"/>
+ </object>
+ <object class="NSArray" key="IBDocument.PluginDependencies">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>com.apple.InterfaceBuilderKit</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ </object>
+ <object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSCustomObject" id="1001">
+ <string key="NSClassName">NSObject</string>
+ </object>
+ <object class="NSCustomObject" id="1003">
+ <string key="NSClassName">FirstResponder</string>
+ </object>
+ <object class="NSCustomObject" id="1004">
+ <string key="NSClassName">NSApplication</string>
+ </object>
+ <object class="NSWindowTemplate" id="1005">
+ <int key="NSWindowStyleMask">15</int>
+ <int key="NSWindowBacking">2</int>
+ <string key="NSWindowRect">{{196, 240}, {480, 270}}</string>
+ <int key="NSWTFlags">536870912</int>
+ <string key="NSWindowTitle">Window</string>
+ <string key="NSWindowClass">NSWindow</string>
+ <nil key="NSViewClass"/>
+ <object class="NSView" key="NSWindowView" id="1006">
+ <reference key="NSNextResponder"/>
+ <int key="NSvFlags">256</int>
+ <string key="NSFrameSize">{480, 270}</string>
+ <reference key="NSSuperview"/>
+ <reference key="NSWindow"/>
+ </object>
+ <string key="NSScreenRect">{{0, 0}, {1680, 1028}}</string>
+ </object>
+ </object>
+ <object class="IBObjectContainer" key="IBDocument.Objects">
+ <object class="NSMutableArray" key="connectionRecords">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ <object class="IBMutableOrderedSet" key="objectRecords">
+ <object class="NSArray" key="orderedObjects">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBObjectRecord">
+ <int key="objectID">0</int>
+ <object class="NSArray" key="object" id="1002">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ <reference key="children" ref="1000"/>
+ <nil key="parent"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">-2</int>
+ <reference key="object" ref="1001"/>
+ <reference key="parent" ref="1002"/>
+ <string type="base64-UTF8" key="objectName">RmlsZSdzIE93bmVyA</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">-1</int>
+ <reference key="object" ref="1003"/>
+ <reference key="parent" ref="1002"/>
+ <string key="objectName">First Responder</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">-3</int>
+ <reference key="object" ref="1004"/>
+ <reference key="parent" ref="1002"/>
+ <string key="objectName">Application</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">1</int>
+ <reference key="object" ref="1005"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="1006"/>
+ </object>
+ <reference key="parent" ref="1002"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">2</int>
+ <reference key="object" ref="1006"/>
+ <reference key="parent" ref="1005"/>
+ </object>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="flattenedProperties">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSMutableArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>-1.IBPluginDependency</string>
+ <string>-2.IBPluginDependency</string>
+ <string>-3.IBPluginDependency</string>
+ <string>1.IBPluginDependency</string>
+ <string>1.IBWindowTemplateEditedContentRect</string>
+ <string>1.NSWindowTemplate.visibleAtLaunch</string>
+ <string>1.WindowOrigin</string>
+ <string>1.editorWindowContentRectSynchronizationRect</string>
+ <string>2.IBPluginDependency</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilderKit</string>
+ <string>com.apple.InterfaceBuilderKit</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>{{202, 428}, {480, 270}}</string>
+ <reference ref="9"/>
+ <string>{196, 240}</string>
+ <string>{{202, 428}, {480, 270}}</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="unlocalizedProperties">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ </object>
+ <nil key="activeLocalization"/>
+ <object class="NSMutableDictionary" key="localizations">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ </object>
+ <nil key="sourceID"/>
+ <int key="maxID">2</int>
+ </object>
+ <object class="IBClassDescriber" key="IBDocument.Classes">
+ <object class="NSMutableDictionary" key="localDescriptions">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ </object>
+ </object>
+ <int key="IBDocument.localizationMode">0</int>
+ <object class="NSMutableData" key="IBDocument.RunnableNib">
+ <bytes key="NS.bytes">YnBsaXN0MDDUAQIDBAUGCQpYJHZlcnNpb25UJHRvcFkkYXJjaGl2ZXJYJG9iamVjdHMSAAGGoNEHCF1J
+Qi5vYmplY3RkYXRhgAFfEA9OU0tleWVkQXJjaGl2ZXKvECwLDDE1Njs8QVVWV1gLYwtkaGlscHN3fYCB
+g4mQl5iZmpueoaivsLFSsrW4u1UkbnVsbN8QEg0ODxAREhMUFRYXGBkaGxwdHh8gISIjJCUmJygpKiss
+LS4vMFZOU1Jvb3RWJGNsYXNzXU5TT2JqZWN0c0tleXNfEA9OU0NsYXNzZXNWYWx1ZXNfEBlOU0FjY2Vz
+c2liaWxpdHlPaWRzVmFsdWVzXU5TQ29ubmVjdGlvbnNbTlNOYW1lc0tleXNbTlNGcmFtZXdvcmtdTlND
+bGFzc2VzS2V5c1pOU09pZHNLZXlzXU5TTmFtZXNWYWx1ZXNfEBlOU0FjY2Vzc2liaWxpdHlDb25uZWN0
+b3JzXU5TRm9udE1hbmFnZXJfEBBOU1Zpc2libGVXaW5kb3dzXxAPTlNPYmplY3RzVmFsdWVzXxAXTlNB
+Y2Nlc3NpYmlsaXR5T2lkc0tleXNZTlNOZXh0T2lkXE5TT2lkc1ZhbHVlc4ACgCuAFYAhgCqAE4AagAWA
+IIAigBuAKIAAgAaAGYApEASAI9IOMjM0W05TQ2xhc3NOYW1lgASAA1hOU09iamVjdNI3ODk6WCRjbGFz
+c2VzWiRjbGFzc25hbWWiOjVeTlNDdXN0b21PYmplY3RfEBBJQkNvY29hRnJhbWV3b3Jr0g49Pj9aTlMu
+b2JqZWN0c4ASoUCAB9pCDkNERUZHSElKS0xNTk9QUVJTK1xOU1dpbmRvd1ZpZXdcTlNTY3JlZW5SZWN0
+XU5TV2luZG93VGl0bGVZTlNXVEZsYWdzXU5TV2luZG93Q2xhc3NcTlNXaW5kb3dSZWN0XxAPTlNXaW5k
+b3dCYWNraW5nXxARTlNXaW5kb3dTdHlsZU1hc2tbTlNWaWV3Q2xhc3OAC4ARgBCACRIgAAAAgAqACBAC
+EA+AAF8QGHt7MTk2LCAyNDB9LCB7NDgwLCAyNzB9fVZXaW5kb3dYTlNXaW5kb3fWWQ5aW1dcXV5fYF1i
+XxAPTlNOZXh0UmVzcG9uZGVyWE5TdkZsYWdzW05TRnJhbWVTaXplW05TU3VwZXJ2aWV3gAyADxEBAIAN
+gAyADlp7NDgwLCAyNzB90jc4ZWajZmc1Vk5TVmlld1tOU1Jlc3BvbmRlcl8QFnt7MCwgMH0sIHsxNjgw
+LCAxMDI4fX3SNzhqa6JrNV8QEE5TV2luZG93VGVtcGxhdGXSNzhtbqNubzVcTlNNdXRhYmxlU2V0VU5T
+U2V00g49cXKAFKDSNzh0daN1djVeTlNNdXRhYmxlQXJyYXlXTlNBcnJhedIOPXh5gBijektAgBaAC4AH
+0g4yM3+ABIAXXU5TQXBwbGljYXRpb27SNziCdqJ2NdIOPXiFgBijH0AfgAKAB4AC0g49eIuAGKQfQHpL
+gAKAB4AWgAvSDj14koAYpJOUlZaAHIAdgB6AH1xGaWxlJ3MgT3duZXJfEA9XaW5kb3cgKFdpbmRvdylb
+QXBwbGljYXRpb25cQ29udGVudCBWaWV30g49eJ2AGKDSDj14oIAYoNIOPXijgBikH0B6S4ACgAeAFoAL
+0g49eKqAGKSrrK2ugCSAJYAmgCcQAxABE//////////90g49cbSAFKDSDj14t4AYoNIOPXi6gBig0jc4
+vL2ivTVeTlNJQk9iamVjdERhdGEACAARABoAHwApADIANwA6AEgASgBcAIsAkQC4AL8AxgDUAOYBAgEQ
+ARwBKAE2AUEBTwFrAXkBjAGeAbgBwgHPAdEB0wHVAdcB2QHbAd0B3wHhAeMB5QHnAekB6wHtAe8B8QHz
+AfgCBAIGAggCEQIWAh8CKgItAjwCTwJUAl8CYQJjAmUCegKHApQCogKsAroCxwLZAu0C+QL7Av0C/wMB
+AwYDCAMKAwwDDgMQAysDMgM7A0gDWgNjA28DewN9A38DggOEA4YDiAOTA5gDnAOjA68DyAPNA9AD4wPo
+A+wD+QP/BAQEBgQHBAwEEAQfBCcELAQuBDIENAQ2BDgEPQQ/BEEETwRUBFcEXAReBGIEZARmBGgEbQRv
+BHQEdgR4BHoEfASBBIMEiASKBIwEjgSQBJ0ErwS7BMgEzQTPBNAE1QTXBNgE3QTfBOQE5gToBOoE7ATx
+BPME+AT6BPwE/gUABQIFBAUNBRIFFAUVBRoFHAUdBSIFJAUlBSoFLQAAAAAAAAIBAAAAAAAAAL4AAAAA
+AAAAAAAAAAAAAAU8A</bytes>
+ </object>
+ </data>
+</archive>
View
BIN  build/Debug/gisteditor.app/Contents/MacOS/gisteditor
Binary file not shown
View
BIN  build/Debug/gisteditor.app/Contents/Resources/English.lproj/GEDocument.nib
Binary file not shown
View
BIN  build/Debug/gisteditor.app/Contents/Resources/English.lproj/MainMenu.nib
Binary file not shown
View
1  build/Debug/gisteditor.app/Contents/Resources/GEDocument.rb
@@ -15,6 +15,7 @@ class GEDocument < NSDocument
attr_accessor :associated_library
def applicationDidFinishLaunching(notification)
+
# pass
end
View
4 build/Debug/gisteditor.app/Contents/Resources/GEGistListDelegate.rb
@@ -9,6 +9,10 @@
class GEGistListDelegate
attr_accessor :associatedDocument
+ def awakeFromNib()
+ NSLog(preferences.user.login)
+ end
+
def numberOfRowsInTableView(aTableView)
@library = GEGistLibrary.new
@library.gists.length
View
BIN  build/Debug/gisteditor.app/Contents/Resources/Preferences.nib
Binary file not shown
View
292 build/Debug/gisteditor.app/Contents/Resources/Preferences.rb
@@ -0,0 +1,292 @@
+#
+# Preferences.rb
+# gisteditor
+#
+# Created by Greg Borenstein on 6/20/09.
+# Copyright (c) 2009 __MyCompanyName__. All rights reserved.
+#
+
+# require '/Users/greg/code/rubycocoa-prefs/lib/abstract_preferences.rb'
+
+require 'singleton'
+
+class NSUserDefaults
+ def [](str)
+ self.objectForKey(str)
+ end
+
+ def []=(str, obj)
+ self.setObject(obj, forKey:str)
+ end
+end
+
+class Preferences
+ include Singleton
+
+ # Save any unsaved changes to disk.
+ def save
+ Preferences.user_defaults.synchronize
+ end
+
+ class << self
+ # A shortcut method for access to <tt>NSUserDefaults.standardUserDefaults</tt>.
+ def user_defaults
+ NSUserDefaults.standardUserDefaults
+ end
+
+ # A hash of all default values for the user defaults
+ def default_values
+ @default_values ||= {}
+ end
+
+ # Registers the default values with NSUserDefaults.standardUserDefaults
+ # Call this after all your Preferences code has been loaded, for instance
+ # in <tt>awakeFromNib</tt> of your ApplicationController.
+ def register_default_values!
+ user_defaults.registerDefaults(default_values)
+ end
+ end
+
+ class Namespace
+ include Singleton
+
+ class << self
+ # Defines a reader method for the Namespace subclass on the Preferences instance.
+ #
+ # Defines a class <tt>Preferences::Keyword</tt> and <tt>preferences.keyword</tt>:
+ #
+ # class Preferences
+ # class Keyword < Namespace
+ # defaults_accessor :an_option, true
+ # end
+ # end
+ def inherited(klass)
+ super
+ method = klass.name.split('::').last.scan(/[A-Z][a-z]*/).map { |x| x.downcase }.join('_')
+ Preferences.class_eval "def #{method}; #{klass.name}.instance end", __FILE__, __LINE__
+ end
+
+ # The key in the preferences that represents the section class.
+ #
+ # Preferences::General.section_defaults_key # => "Preferences.General"
+ def section_defaults_key
+ @section_defaults_key ||= name.gsub('::', '.')
+ end
+
+ # Defines a reader and writer method for a user defaults key for this section.
+ #
+ # If the preference is a boolean value, inflected from the default value,
+ # a query method is also defined.
+ #
+ # # Defines #confirm_quit, #confirm_quit=, and #confirm_quit? It's default value is <tt>true</tt>.
+ # defaults_accessor :confirm_quit, true
+ def defaults_accessor(name, default_value)
+ key_path = "#{section_defaults_key}.#{name}"
+ Preferences.default_values[key_path] = default_value
+
+ class_eval do
+ define_method(name) do
+ Preferences.user_defaults[key_path]
+ end
+
+ define_method("#{name}=") do |value|
+ Preferences.user_defaults[key_path] = value
+ end
+
+ if default_value == true || default_value == false
+ alias_method "#{name}?", name
+ end
+ end
+
+ key_path
+ end
+
+ # Besides defining a reader and writer method via defaults_accessor,
+ # it also defines a reader method which returns an array of strings
+ # wrapped in KVO compatible string wrappers.
+ #
+ # The name of the wrapper class is defined by <tt>wrapper_class_name</tt>
+ # and can be used as the `Class Name' of a NSArrayController.
+ # The wrapper exposes `string' as a KVC accessor to which a NSTableColumn can be bound.
+ #
+ # # Defines #highlight_words, #highlight_words=, and #highlight_words_wrapped
+ # string_array_defaults_accessor :highlight_words, [], 'HighlightWordWrapper'
+ def string_array_defaults_accessor(name, default_value, wrapper_class_name)
+ wrapper = eval("class ::#{wrapper_class_name} < StringArrayWrapper; self end")
+ wrapper.key_path = defaults_accessor(name, default_value)
+
+ class_eval do
+ define_method("#{name}_wrapped") do
+ ary = []
+ send(name).each_with_index { |string, index| ary << wrapper.alloc.initWithString_index(string, index) }
+ ary
+ end
+ end
+ end
+ end
+
+ # Register an observer for a key.
+ #
+ # Include the <tt>Preferences::KVOCallbackHelper</tt> module in your class
+ # to get rubyish callback handling, instead of handling it yourself by defining
+ # the observeValueForKeyPath_ofObject_change_context method.
+ #
+ # class PreferencesController < OSX::NSWindowController
+ # include Preferences::KVOCallbackHelper
+ #
+ # def init
+ # if super_init
+ # preferences.keyword.observe(:highlight_words, self)
+ # self
+ # end
+ # end
+ #
+ # def highlight_words_changed(new_value)
+ # # Do stuff because a new value has been set.
+ # end
+ # end
+ def observe(name, observer)
+ key_path = "values.#{self.class.section_defaults_key}.#{name}"
+ NSUserDefaultsController.sharedUserDefaultsController.addObserver(observer,
+ forKeyPath:key_path, options:NSKeyValueObservingOptionNew, context:nil
+ )
+ end
+ end
+
+ class StringArrayWrapper < NSObject
+ class << self
+ attr_accessor :key_path
+
+ def array
+ Preferences.user_defaults[key_path]
+ end
+
+ def array=(array)
+ Preferences.user_defaults[key_path] = array
+ end
+
+ def destroy(klass, new_wrappers)
+ # Set the new correct indices on the remaining wrappers
+ new_wrappers.each_with_index do |wrapper, new_index|
+ wrapper.index = new_index
+ end
+
+ # Assign the new result array of strings
+ klass.array = new_wrappers.map { |wrapper| wrapper.string }
+ end
+ end
+
+ attr_accessor :string
+ attr_accessor :index
+
+ def initWithString(string, index:index)
+ if init
+ @string, @index = string, index
+ self
+ end
+ end
+
+ def array
+ self.class.array
+ end
+
+ def array=(array)
+ self.class.array = array
+ end
+
+ def string=(string)
+ @string = string
+ set_string!
+ end
+
+ def set_string!
+ if @index
+ ary = array
+ ary[@index] = string
+ self.array = ary
+ else
+ ary = array
+ ary << @string
+ self.array = ary
+ @index = ary.length - 1
+ end
+ end
+
+ def inspect
+ "#<#{self.class.name}:#{object_id} string=\"#{@string}\" key_path=\"#{self.class.key_path}\" index=\"#{@index}\">"
+ end
+ end
+
+ # Extend your class with this module to get access to a few KVC accessor helper methods.
+ module AccessorHelpers
+ # Defines a kvc_accessor which reads and writes
+ # to the specified preferences path (<tt>path_to_eval_to_object</tt>).
+ #
+ # This is useful for binding, for instance, UI elements
+ # to an array in the NSUserDefaults which is normally immutable.
+ #
+ # class PreferencesController < OSX::NSWindowController
+ # defaults_kvc_accessor :an_array_of_dictionaries, 'preferences.keyword.url_mappings'
+ # end
+ #
+ # Binding a NSArrayController to File's Owner with key path: <tt>an_array_of_dictionaries</tt>,
+ # will perform the following read/write actions on the NSUserDefaults:
+ #
+ # preferences_controller.valueForKey('an_array_of_dictionaries') # => [{'key' => 'value 1'}, {'key' => 'value 2'}]
+ # preferences_controller.setValueForKey([{'key' => 'value 1'}], 'an_array_of_dictionaries')
+ # preferences_controller.valueForKey('an_array_of_dictionaries') # => [{'key' => 'value 1'}]
+ def defaults_kvc_accessor(name, path_to_eval_to_object)
+ kvc_accessor(name)
+
+ class_eval %{
+ def #{name}
+ @#{name} ||= #{path_to_eval_to_object}
+ end
+
+ def #{name}=(new_defaults)
+ #{path_to_eval_to_object} = @#{name} = new_defaults
+ end
+ }, __FILE__, __LINE__
+ end
+
+ # Defines read and write KVC accessors like defaults_kvc_accessor does,
+ # but is used specifically for defaults defined with Namespace#string_array_defaults_accessor.
+ #
+ # class PreferencesController < OSX::NSWindowController
+ # defualts_string_array_kvc_accessor :an_array_of_strings, 'preferences.keyword.highlight_words'
+ # end
+ #
+ # See Namespace#string_array_defaults_accessor for more info.
+ def defualts_string_array_kvc_accessor(name, path_to_eval_to_object)
+ defaults_kvc_accessor(name, "#{path_to_eval_to_object}_wrapped")
+
+ class_eval %{
+ def #{name}=(new_wrappers)
+ if new_wrappers.length < #{name}.length
+ Preferences::StringArrayWrapper.destroy(#{name}.first.class, new_wrappers)
+ end
+ @#{name} = new_wrappers
+ end
+ }, __FILE__, __LINE__
+ end
+ end
+
+end
+
+module Kernel
+ # A shortcut method for easy access anywhere to the shared user defaults.
+ def preferences
+ Preferences.instance
+ end
+end
+
+class Preferences
+ class User < Namespace
+ defaults_accessor :login, "YOUR LOGIN HERE"
+ defaults_accessor :token, "YOUR TOKEN HERE"
+ end
+
+ # Register the default values with NSUserDefaults.standardUserDefaults.
+ register_default_values!
+end
+
View
BIN  build/gisteditor.build/Debug/gisteditor.build/Objects-normal/i386/main.o
Binary file not shown
View
BIN  build/gisteditor.build/gisteditor.pbxindex/categories.pbxbtree
Binary file not shown
View
BIN  build/gisteditor.build/gisteditor.pbxindex/cdecls.pbxbtree
Binary file not shown
View
BIN  build/gisteditor.build/gisteditor.pbxindex/decls.pbxbtree
Binary file not shown
View
BIN  build/gisteditor.build/gisteditor.pbxindex/files.pbxbtree
Binary file not shown
View
BIN  build/gisteditor.build/gisteditor.pbxindex/imports.pbxbtree
Binary file not shown
View
BIN  build/gisteditor.build/gisteditor.pbxindex/pbxindex.header
Binary file not shown
View
BIN  build/gisteditor.build/gisteditor.pbxindex/protocols.pbxbtree
Binary file not shown
View
BIN  build/gisteditor.build/gisteditor.pbxindex/refs.pbxbtree
Binary file not shown
View
BIN  build/gisteditor.build/gisteditor.pbxindex/strings.pbxstrings/control
Binary file not shown
View
BIN  build/gisteditor.build/gisteditor.pbxindex/strings.pbxstrings/strings
Binary file not shown
View
BIN  build/gisteditor.build/gisteditor.pbxindex/subclasses.pbxbtree
Binary file not shown
View
BIN  build/gisteditor.build/gisteditor.pbxindex/symbols0.pbxsymbols
Binary file not shown
View
99 gisteditor.xcodeproj/greg.mode1v3
@@ -278,8 +278,8 @@
<key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
<array>
<array>
- <integer>15</integer>
- <integer>11</integer>
+ <integer>4</integer>
+ <integer>1</integer>
<integer>0</integer>
</array>
</array>
@@ -321,7 +321,7 @@
<key>PBXProjectModuleGUID</key>
<string>1CE0B20306471E060097A5F4</string>
<key>PBXProjectModuleLabel</key>
- <string>GEDocument.rb</string>
+ <string>Preferences.rb</string>
<key>PBXSplitModuleInNavigatorKey</key>
<dict>
<key>Split0</key>
@@ -329,22 +329,23 @@
<key>PBXProjectModuleGUID</key>
<string>1CE0B20406471E060097A5F4</string>
<key>PBXProjectModuleLabel</key>
- <string>GEDocument.rb</string>
+ <string>Preferences.rb</string>
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
- <string>37895EC80FEB7FF2005EE5EE</string>
+ <string>374E6A860FEF64000062A2C9</string>
<key>history</key>
<array>
<string>37902CD30FD6F6F100DE3FDE</string>
<string>37902CD50FD6F6F100DE3FDE</string>
<string>37902CFD0FD6FBAD00DE3FDE</string>
<string>378DED7E0FDB008200F1958C</string>
- <string>37895EAD0FEB7C30005EE5EE</string>
- <string>37895EB60FEB7F15005EE5EE</string>
- <string>37895EB70FEB7F15005EE5EE</string>
- <string>37895EC30FEB7FC9005EE5EE</string>
- <string>37895EC40FEB7FC9005EE5EE</string>
+ <string>37895EED0FED96FC005EE5EE</string>
+ <string>37895EEE0FED96FC005EE5EE</string>
+ <string>37895EFF0FEDDC30005EE5EE</string>
+ <string>374E6A760FEF635F0062A2C9</string>
+ <string>374E6A780FEF635F0062A2C9</string>
+ <string>374E6A7F0FEF63E70062A2C9</string>
</array>
<key>prevStack</key>
<array>
@@ -357,59 +358,9 @@
<string>378DED8F0FDB20EC00F1958C</string>
<string>37A8359A0FEAD6980064AF4F</string>
<string>37A8359F0FEAD6980064AF4F</string>
- <string>37895DFD0FEB6BDC005EE5EE</string>
- <string>37895DFE0FEB6BDC005EE5EE</string>
- <string>37895DFF0FEB6BDC005EE5EE</string>
- <string>37895E000FEB6BDC005EE5EE</string>
- <string>37895E200FEB6F94005EE5EE</string>
- <string>37895E210FEB6F94005EE5EE</string>
- <string>37895E220FEB6F94005EE5EE</string>
- <string>37895E330FEB7045005EE5EE</string>
- <string>37895E340FEB7045005EE5EE</string>
- <string>37895E350FEB7045005EE5EE</string>
- <string>37895E360FEB7045005EE5EE</string>
- <string>37895E370FEB7045005EE5EE</string>
- <string>37895E380FEB7045005EE5EE</string>
- <string>37895E390FEB7045005EE5EE</string>
- <string>37895E3A0FEB7045005EE5EE</string>
- <string>37895E3B0FEB7045005EE5EE</string>
- <string>37895E3C0FEB7045005EE5EE</string>
- <string>37895E430FEB70F2005EE5EE</string>
- <string>37895E440FEB70F2005EE5EE</string>
- <string>37895E450FEB70F2005EE5EE</string>
- <string>37895E4B0FEB72A0005EE5EE</string>
- <string>37895E4C0FEB72A0005EE5EE</string>
- <string>37895E4D0FEB72A0005EE5EE</string>
- <string>37895E550FEB73D8005EE5EE</string>
- <string>37895E560FEB73D8005EE5EE</string>
- <string>37895E570FEB73D8005EE5EE</string>
- <string>37895E6E0FEB75A7005EE5EE</string>
- <string>37895E780FEB7612005EE5EE</string>
- <string>37895E7C0FEB7683005EE5EE</string>
- <string>37895E7D0FEB7683005EE5EE</string>
- <string>37895E880FEB7795005EE5EE</string>
- <string>37895E890FEB7795005EE5EE</string>
- <string>37895E8A0FEB7795005EE5EE</string>
- <string>37895E8B0FEB7795005EE5EE</string>
- <string>37895E8C0FEB7795005EE5EE</string>
- <string>37895E8D0FEB7795005EE5EE</string>
- <string>37895E8E0FEB7795005EE5EE</string>
- <string>37895E8F0FEB7795005EE5EE</string>
- <string>37895E900FEB7795005EE5EE</string>
- <string>37895E970FEB77ED005EE5EE</string>
- <string>37895E980FEB77ED005EE5EE</string>
- <string>37895E9E0FEB7846005EE5EE</string>
- <string>37895E9F0FEB7846005EE5EE</string>
- <string>37895EA00FEB7846005EE5EE</string>
- <string>37895EA50FEB7885005EE5EE</string>
- <string>37895EAE0FEB7C30005EE5EE</string>
- <string>37895EAF0FEB7C30005EE5EE</string>
- <string>37895EBA0FEB7F15005EE5EE</string>
- <string>37895EBB0FEB7F15005EE5EE</string>
- <string>37895EBC0FEB7F15005EE5EE</string>
- <string>37895EBD0FEB7F15005EE5EE</string>
- <string>37895EBE0FEB7F15005EE5EE</string>
- <string>37895EC50FEB7FC9005EE5EE</string>
+ <string>374E6A7A0FEF635F0062A2C9</string>
+ <string>374E6A7B0FEF635F0062A2C9</string>
+ <string>374E6A7D0FEF635F0062A2C9</string>
</array>
</dict>
<key>SplitCount</key>
@@ -467,9 +418,9 @@
</array>
<key>TableOfContents</key>
<array>
- <string>37895DF50FEB6B35005EE5EE</string>
+ <string>374E6A5B0FEF433B0062A2C9</string>
<string>1CE0B1FE06471DED0097A5F4</string>
- <string>37895DF60FEB6B35005EE5EE</string>
+ <string>374E6A5C0FEF433B0062A2C9</string>
<string>1CE0B20306471E060097A5F4</string>
<string>1CE0B20506471E060097A5F4</string>
</array>
@@ -603,8 +554,8 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>1CD10A99069EF8BA00B06720</string>
<string>37902BD30FD5F14500DE3FDE</string>
+ <string>1CD10A99069EF8BA00B06720</string>
<string>/Users/greg/code/gisteditor/gisteditor.xcodeproj</string>
<string>1C78EAAD065D492600B07095</string>
</array>
@@ -686,7 +637,7 @@
<key>TableOfContents</key>
<array>
<string>37902BD30FD5F14500DE3FDE</string>
- <string>37895E020FEB6BDC005EE5EE</string>
+ <string>374E6A660FEF62A50062A2C9</string>
<string>1CD0528F0623707200166675</string>
<string>XCMainBuildResultsModuleGUID</string>
</array>
@@ -806,13 +757,13 @@
<key>TableOfContents</key>
<array>
<string>1CD10A99069EF8BA00B06720</string>
- <string>37895E030FEB6BDC005EE5EE</string>
+ <string>374E6A670FEF62A50062A2C9</string>
<string>1C162984064C10D400B95A72</string>
- <string>37895E040FEB6BDC005EE5EE</string>
- <string>37895E050FEB6BDC005EE5EE</string>
- <string>37895E060FEB6BDC005EE5EE</string>
- <string>37895E070FEB6BDC005EE5EE</string>
- <string>37895E080FEB6BDC005EE5EE</string>
+ <string>374E6A680FEF62A50062A2C9</string>
+ <string>374E6A690FEF62A50062A2C9</string>
+ <string>374E6A6A0FEF62A50062A2C9</string>
+ <string>374E6A6B0FEF62A50062A2C9</string>
+ <string>374E6A6C0FEF62A50062A2C9</string>
</array>
<key>ToolbarConfiguration</key>
<string>xcode.toolbar.config.debugV3</string>
@@ -976,7 +927,7 @@
<key>TableOfContents</key>
<array>
<string>1C78EAAD065D492600B07095</string>
- <string>37895E090FEB6BDC005EE5EE</string>
+ <string>374E6A6D0FEF62A50062A2C9</string>
<string>1C78EAAC065D492600B07095</string>
</array>
<key>ToolbarConfiguration</key>
View
1,922 gisteditor.xcodeproj/greg.pbxuser
@@ -56,146 +56,96 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 267086633;
- PBXWorkspaceStateSaveDate = 267086633;
+ PBXPerProjectTemplateStateSaveDate = 267338551;
+ PBXWorkspaceStateSaveDate = 267338551;
};
perUserProjectItems = {
- 37895DF40FEB6B35005EE5EE /* PBXTextBookmark */ = 37895DF40FEB6B35005EE5EE /* PBXTextBookmark */;
- 37895DFA0FEB6BDC005EE5EE /* PBXTextBookmark */ = 37895DFA0FEB6BDC005EE5EE /* PBXTextBookmark */;
- 37895DFB0FEB6BDC005EE5EE /* PBXTextBookmark */ = 37895DFB0FEB6BDC005EE5EE /* PBXTextBookmark */;
- 37895DFC0FEB6BDC005EE5EE /* PBXTextBookmark */ = 37895DFC0FEB6BDC005EE5EE /* PBXTextBookmark */;
- 37895DFD0FEB6BDC005EE5EE /* PBXTextBookmark */ = 37895DFD0FEB6BDC005EE5EE /* PBXTextBookmark */;
- 37895DFE0FEB6BDC005EE5EE /* PBXTextBookmark */ = 37895DFE0FEB6BDC005EE5EE /* PBXTextBookmark */;
- 37895DFF0FEB6BDC005EE5EE /* PBXTextBookmark */ = 37895DFF0FEB6BDC005EE5EE /* PBXTextBookmark */;
- 37895E000FEB6BDC005EE5EE /* PBXTextBookmark */ = 37895E000FEB6BDC005EE5EE /* PBXTextBookmark */;
- 37895E010FEB6BDC005EE5EE /* PBXTextBookmark */ = 37895E010FEB6BDC005EE5EE /* PBXTextBookmark */;
- 37895E0E0FEB6BFB005EE5EE /* PBXTextBookmark */ = 37895E0E0FEB6BFB005EE5EE /* PBXTextBookmark */;
- 37895E100FEB6C0B005EE5EE /* PBXTextBookmark */ = 37895E100FEB6C0B005EE5EE /* PBXTextBookmark */;
- 37895E150FEB6C34005EE5EE /* PBXTextBookmark */ = 37895E150FEB6C34005EE5EE /* PBXTextBookmark */;
- 37895E160FEB6C34005EE5EE /* PBXTextBookmark */ = 37895E160FEB6C34005EE5EE /* PBXTextBookmark */;
- 37895E170FEB6CE1005EE5EE /* PBXTextBookmark */ = 37895E170FEB6CE1005EE5EE /* PBXTextBookmark */;
- 37895E190FEB6D52005EE5EE /* PBXTextBookmark */ = 37895E190FEB6D52005EE5EE /* PBXTextBookmark */;
- 37895E1B0FEB6D61005EE5EE /* PBXTextBookmark */ = 37895E1B0FEB6D61005EE5EE /* PBXTextBookmark */;
- 37895E1D0FEB6F94005EE5EE /* PBXTextBookmark */ = 37895E1D0FEB6F94005EE5EE /* PBXTextBookmark */;
- 37895E1E0FEB6F94005EE5EE /* PBXTextBookmark */ = 37895E1E0FEB6F94005EE5EE /* PBXTextBookmark */;
- 37895E1F0FEB6F94005EE5EE /* PBXTextBookmark */ = 37895E1F0FEB6F94005EE5EE /* PBXTextBookmark */;
- 37895E200FEB6F94005EE5EE /* PBXTextBookmark */ = 37895E200FEB6F94005EE5EE /* PBXTextBookmark */;
- 37895E210FEB6F94005EE5EE /* PBXTextBookmark */ = 37895E210FEB6F94005EE5EE /* PBXTextBookmark */;
- 37895E220FEB6F94005EE5EE /* PBXTextBookmark */ = 37895E220FEB6F94005EE5EE /* PBXTextBookmark */;
- 37895E230FEB6F94005EE5EE /* PBXTextBookmark */ = 37895E230FEB6F94005EE5EE /* PBXTextBookmark */;
- 37895E2E0FEB7045005EE5EE /* PBXTextBookmark */ = 37895E2E0FEB7045005EE5EE /* PBXTextBookmark */;
- 37895E2F0FEB7045005EE5EE /* PBXTextBookmark */ = 37895E2F0FEB7045005EE5EE /* PBXTextBookmark */;
- 37895E300FEB7045005EE5EE /* PBXTextBookmark */ = 37895E300FEB7045005EE5EE /* PBXTextBookmark */;
- 37895E310FEB7045005EE5EE /* PBXTextBookmark */ = 37895E310FEB7045005EE5EE /* PBXTextBookmark */;
- 37895E320FEB7045005EE5EE /* PBXTextBookmark */ = 37895E320FEB7045005EE5EE /* PBXTextBookmark */;
- 37895E330FEB7045005EE5EE /* PBXTextBookmark */ = 37895E330FEB7045005EE5EE /* PBXTextBookmark */;
- 37895E340FEB7045005EE5EE /* PBXTextBookmark */ = 37895E340FEB7045005EE5EE /* PBXTextBookmark */;
- 37895E350FEB7045005EE5EE /* PBXTextBookmark */ = 37895E350FEB7045005EE5EE /* PBXTextBookmark */;
- 37895E360FEB7045005EE5EE /* PBXTextBookmark */ = 37895E360FEB7045005EE5EE /* PBXTextBookmark */;
- 37895E370FEB7045005EE5EE /* PBXTextBookmark */ = 37895E370FEB7045005EE5EE /* PBXTextBookmark */;
- 37895E380FEB7045005EE5EE /* PBXTextBookmark */ = 37895E380FEB7045005EE5EE /* PBXTextBookmark */;
- 37895E390FEB7045005EE5EE /* PBXTextBookmark */ = 37895E390FEB7045005EE5EE /* PBXTextBookmark */;
- 37895E3A0FEB7045005EE5EE /* PBXTextBookmark */ = 37895E3A0FEB7045005EE5EE /* PBXTextBookmark */;
- 37895E3B0FEB7045005EE5EE /* PBXTextBookmark */ = 37895E3B0FEB7045005EE5EE /* PBXTextBookmark */;
- 37895E3C0FEB7045005EE5EE /* PBXTextBookmark */ = 37895E3C0FEB7045005EE5EE /* PBXTextBookmark */;
- 37895E3D0FEB7045005EE5EE /* PBXTextBookmark */ = 37895E3D0FEB7045005EE5EE /* PBXTextBookmark */;
- 37895E400FEB70F2005EE5EE /* PBXTextBookmark */ = 37895E400FEB70F2005EE5EE /* PBXTextBookmark */;
- 37895E410FEB70F2005EE5EE /* PBXTextBookmark */ = 37895E410FEB70F2005EE5EE /* PBXTextBookmark */;
- 37895E420FEB70F2005EE5EE /* PBXTextBookmark */ = 37895E420FEB70F2005EE5EE /* PBXTextBookmark */;
- 37895E430FEB70F2005EE5EE /* PBXTextBookmark */ = 37895E430FEB70F2005EE5EE /* PBXTextBookmark */;
- 37895E440FEB70F2005EE5EE /* PBXTextBookmark */ = 37895E440FEB70F2005EE5EE /* PBXTextBookmark */;
- 37895E450FEB70F2005EE5EE /* PBXTextBookmark */ = 37895E450FEB70F2005EE5EE /* PBXTextBookmark */;
- 37895E460FEB70F2005EE5EE /* PBXTextBookmark */ = 37895E460FEB70F2005EE5EE /* PBXTextBookmark */;
- 37895E480FEB72A0005EE5EE /* PBXTextBookmark */ = 37895E480FEB72A0005EE5EE /* PBXTextBookmark */;
- 37895E490FEB72A0005EE5EE /* PBXTextBookmark */ = 37895E490FEB72A0005EE5EE /* PBXTextBookmark */;
- 37895E4A0FEB72A0005EE5EE /* PBXTextBookmark */ = 37895E4A0FEB72A0005EE5EE /* PBXTextBookmark */;
- 37895E4B0FEB72A0005EE5EE /* PBXTextBookmark */ = 37895E4B0FEB72A0005EE5EE /* PBXTextBookmark */;
- 37895E4C0FEB72A0005EE5EE /* PBXTextBookmark */ = 37895E4C0FEB72A0005EE5EE /* PBXTextBookmark */;
- 37895E4D0FEB72A0005EE5EE /* PBXTextBookmark */ = 37895E4D0FEB72A0005EE5EE /* PBXTextBookmark */;
- 37895E4E0FEB72A0005EE5EE /* PBXTextBookmark */ = 37895E4E0FEB72A0005EE5EE /* PBXTextBookmark */;
- 37895E4F0FEB72C9005EE5EE /* PBXTextBookmark */ = 37895E4F0FEB72C9005EE5EE /* PBXTextBookmark */;
- 37895E520FEB73D8005EE5EE /* PBXTextBookmark */ = 37895E520FEB73D8005EE5EE /* PBXTextBookmark */;
- 37895E530FEB73D8005EE5EE /* PBXTextBookmark */ = 37895E530FEB73D8005EE5EE /* PBXTextBookmark */;
- 37895E540FEB73D8005EE5EE /* PBXTextBookmark */ = 37895E540FEB73D8005EE5EE /* PBXTextBookmark */;
- 37895E550FEB73D8005EE5EE /* PBXTextBookmark */ = 37895E550FEB73D8005EE5EE /* PBXTextBookmark */;
- 37895E560FEB73D8005EE5EE /* PBXTextBookmark */ = 37895E560FEB73D8005EE5EE /* PBXTextBookmark */;
- 37895E570FEB73D8005EE5EE /* PBXTextBookmark */ = 37895E570FEB73D8005EE5EE /* PBXTextBookmark */;
- 37895E580FEB73D8005EE5EE /* PBXTextBookmark */ = 37895E580FEB73D8005EE5EE /* PBXTextBookmark */;
- 37895E5B0FEB73EE005EE5EE /* PBXTextBookmark */ = 37895E5B0FEB73EE005EE5EE /* PBXTextBookmark */;
- 37895E600FEB7424005EE5EE /* PBXTextBookmark */ = 37895E600FEB7424005EE5EE /* PBXTextBookmark */;
- 37895E630FEB7467005EE5EE /* PBXTextBookmark */ = 37895E630FEB7467005EE5EE /* PBXTextBookmark */;
- 37895E680FEB7481005EE5EE /* PBXTextBookmark */ = 37895E680FEB7481005EE5EE /* PBXTextBookmark */;
- 37895E6B0FEB7583005EE5EE /* PBXTextBookmark */ = 37895E6B0FEB7583005EE5EE /* PBXTextBookmark */;
- 37895E6C0FEB75A7005EE5EE /* PBXTextBookmark */ = 37895E6C0FEB75A7005EE5EE /* PBXTextBookmark */;
- 37895E6D0FEB75A7005EE5EE /* PBXTextBookmark */ = 37895E6D0FEB75A7005EE5EE /* PBXTextBookmark */;
- 37895E6E0FEB75A7005EE5EE /* PBXTextBookmark */ = 37895E6E0FEB75A7005EE5EE /* PBXTextBookmark */;
- 37895E6F0FEB75A7005EE5EE /* PBXTextBookmark */ = 37895E6F0FEB75A7005EE5EE /* PBXTextBookmark */;
- 37895E750FEB75E7005EE5EE /* PBXTextBookmark */ = 37895E750FEB75E7005EE5EE /* PBXTextBookmark */;
- 37895E760FEB7612005EE5EE /* PBXTextBookmark */ = 37895E760FEB7612005EE5EE /* PBXTextBookmark */;
- 37895E770FEB7612005EE5EE /* PBXTextBookmark */ = 37895E770FEB7612005EE5EE /* PBXTextBookmark */;
- 37895E780FEB7612005EE5EE /* PBXTextBookmark */ = 37895E780FEB7612005EE5EE /* PBXTextBookmark */;
- 37895E790FEB7612005EE5EE /* PBXTextBookmark */ = 37895E790FEB7612005EE5EE /* PBXTextBookmark */;
- 37895E7A0FEB7683005EE5EE /* PBXTextBookmark */ = 37895E7A0FEB7683005EE5EE /* PBXTextBookmark */;
- 37895E7B0FEB7683005EE5EE /* PBXTextBookmark */ = 37895E7B0FEB7683005EE5EE /* PBXTextBookmark */;
- 37895E7C0FEB7683005EE5EE /* PBXTextBookmark */ = 37895E7C0FEB7683005EE5EE /* PBXTextBookmark */;
- 37895E7D0FEB7683005EE5EE /* PBXTextBookmark */ = 37895E7D0FEB7683005EE5EE /* PBXTextBookmark */;
- 37895E7E0FEB7683005EE5EE /* PBXTextBookmark */ = 37895E7E0FEB7683005EE5EE /* PBXTextBookmark */;
- 37895E840FEB7795005EE5EE /* PBXTextBookmark */ = 37895E840FEB7795005EE5EE /* PBXTextBookmark */;
- 37895E850FEB7795005EE5EE /* PBXTextBookmark */ = 37895E850FEB7795005EE5EE /* PBXTextBookmark */;
- 37895E860FEB7795005EE5EE /* PBXTextBookmark */ = 37895E860FEB7795005EE5EE /* PBXTextBookmark */;
- 37895E870FEB7795005EE5EE /* PBXTextBookmark */ = 37895E870FEB7795005EE5EE /* PBXTextBookmark */;
- 37895E880FEB7795005EE5EE /* PBXTextBookmark */ = 37895E880FEB7795005EE5EE /* PBXTextBookmark */;
- 37895E890FEB7795005EE5EE /* PBXTextBookmark */ = 37895E890FEB7795005EE5EE /* PBXTextBookmark */;
- 37895E8A0FEB7795005EE5EE /* PBXTextBookmark */ = 37895E8A0FEB7795005EE5EE /* PBXTextBookmark */;
- 37895E8B0FEB7795005EE5EE /* PBXTextBookmark */ = 37895E8B0FEB7795005EE5EE /* PBXTextBookmark */;
- 37895E8C0FEB7795005EE5EE /* PBXTextBookmark */ = 37895E8C0FEB7795005EE5EE /* PBXTextBookmark */;
- 37895E8D0FEB7795005EE5EE /* PBXTextBookmark */ = 37895E8D0FEB7795005EE5EE /* PBXTextBookmark */;
- 37895E8E0FEB7795005EE5EE /* PBXTextBookmark */ = 37895E8E0FEB7795005EE5EE /* PBXTextBookmark */;
- 37895E8F0FEB7795005EE5EE /* PBXTextBookmark */ = 37895E8F0FEB7795005EE5EE /* PBXTextBookmark */;
- 37895E900FEB7795005EE5EE /* PBXTextBookmark */ = 37895E900FEB7795005EE5EE /* PBXTextBookmark */;
- 37895E910FEB7795005EE5EE /* PBXTextBookmark */ = 37895E910FEB7795005EE5EE /* PBXTextBookmark */;
- 37895E930FEB77AD005EE5EE /* PBXTextBookmark */ = 37895E930FEB77AD005EE5EE /* PBXTextBookmark */;
- 37895E950FEB77ED005EE5EE /* PBXTextBookmark */ = 37895E950FEB77ED005EE5EE /* PBXTextBookmark */;
- 37895E960FEB77ED005EE5EE /* PBXTextBookmark */ = 37895E960FEB77ED005EE5EE /* PBXTextBookmark */;
- 37895E970FEB77ED005EE5EE /* PBXTextBookmark */ = 37895E970FEB77ED005EE5EE /* PBXTextBookmark */;
- 37895E980FEB77ED005EE5EE /* PBXTextBookmark */ = 37895E980FEB77ED005EE5EE /* PBXTextBookmark */;
- 37895E990FEB77ED005EE5EE /* PBXTextBookmark */ = 37895E990FEB77ED005EE5EE /* PBXTextBookmark */;
- 37895E9B0FEB7846005EE5EE /* PBXTextBookmark */ = 37895E9B0FEB7846005EE5EE /* PBXTextBookmark */;
- 37895E9C0FEB7846005EE5EE /* PBXTextBookmark */ = 37895E9C0FEB7846005EE5EE /* PBXTextBookmark */;
- 37895E9D0FEB7846005EE5EE /* PBXTextBookmark */ = 37895E9D0FEB7846005EE5EE /* PBXTextBookmark */;
- 37895E9E0FEB7846005EE5EE /* PBXTextBookmark */ = 37895E9E0FEB7846005EE5EE /* PBXTextBookmark */;
- 37895E9F0FEB7846005EE5EE /* PBXTextBookmark */ = 37895E9F0FEB7846005EE5EE /* PBXTextBookmark */;
- 37895EA00FEB7846005EE5EE /* PBXTextBookmark */ = 37895EA00FEB7846005EE5EE /* PBXTextBookmark */;
- 37895EA10FEB7846005EE5EE /* PBXTextBookmark */ = 37895EA10FEB7846005EE5EE /* PBXTextBookmark */;
- 37895EA30FEB7885005EE5EE /* PBXTextBookmark */ = 37895EA30FEB7885005EE5EE /* PBXTextBookmark */;
- 37895EA40FEB7885005EE5EE /* PBXTextBookmark */ = 37895EA40FEB7885005EE5EE /* PBXTextBookmark */;
- 37895EA50FEB7885005EE5EE /* PBXTextBookmark */ = 37895EA50FEB7885005EE5EE /* PBXTextBookmark */;
- 37895EA60FEB7885005EE5EE /* PBXTextBookmark */ = 37895EA60FEB7885005EE5EE /* PBXTextBookmark */;
- 37895EA80FEB799A005EE5EE /* PBXTextBookmark */ = 37895EA80FEB799A005EE5EE /* PBXTextBookmark */;
- 37895EAA0FEB7C07005EE5EE /* PBXTextBookmark */ = 37895EAA0FEB7C07005EE5EE /* PBXTextBookmark */;
- 37895EAC0FEB7C30005EE5EE /* PBXTextBookmark */ = 37895EAC0FEB7C30005EE5EE /* PBXTextBookmark */;
- 37895EAD0FEB7C30005EE5EE /* PBXTextBookmark */ = 37895EAD0FEB7C30005EE5EE /* PBXTextBookmark */;
- 37895EAE0FEB7C30005EE5EE /* PBXTextBookmark */ = 37895EAE0FEB7C30005EE5EE /* PBXTextBookmark */;
- 37895EAF0FEB7C30005EE5EE /* PBXTextBookmark */ = 37895EAF0FEB7C30005EE5EE /* PBXTextBookmark */;
- 37895EB00FEB7C30005EE5EE /* PBXTextBookmark */ = 37895EB00FEB7C30005EE5EE /* PBXTextBookmark */;
- 37895EB20FEB7CA4005EE5EE /* PBXTextBookmark */ = 37895EB20FEB7CA4005EE5EE /* PBXTextBookmark */;
- 37895EB30FEB7CC3005EE5EE /* PBXTextBookmark */ = 37895EB30FEB7CC3005EE5EE /* PBXTextBookmark */;
- 37895EB60FEB7F15005EE5EE /* PBXTextBookmark */ = 37895EB60FEB7F15005EE5EE /* PBXTextBookmark */;
- 37895EB70FEB7F15005EE5EE /* PBXTextBookmark */ = 37895EB70FEB7F15005EE5EE /* PBXTextBookmark */;
- 37895EB80FEB7F15005EE5EE /* PBXTextBookmark */ = 37895EB80FEB7F15005EE5EE /* PBXTextBookmark */;
- 37895EB90FEB7F15005EE5EE /* PBXTextBookmark */ = 37895EB90FEB7F15005EE5EE /* PBXTextBookmark */;
- 37895EBA0FEB7F15005EE5EE /* PBXTextBookmark */ = 37895EBA0FEB7F15005EE5EE /* PBXTextBookmark */;
- 37895EBB0FEB7F15005EE5EE /* PBXTextBookmark */ = 37895EBB0FEB7F15005EE5EE /* PBXTextBookmark */;
- 37895EBC0FEB7F15005EE5EE /* PBXTextBookmark */ = 37895EBC0FEB7F15005EE5EE /* PBXTextBookmark */;
- 37895EBD0FEB7F15005EE5EE /* PBXTextBookmark */ = 37895EBD0FEB7F15005EE5EE /* PBXTextBookmark */;
- 37895EBE0FEB7F15005EE5EE /* PBXTextBookmark */ = 37895EBE0FEB7F15005EE5EE /* PBXTextBookmark */;
- 37895EBF0FEB7F15005EE5EE /* PBXTextBookmark */ = 37895EBF0FEB7F15005EE5EE /* PBXTextBookmark */;
- 37895EC00FEB7F29005EE5EE /* PBXTextBookmark */ = 37895EC00FEB7F29005EE5EE /* PBXTextBookmark */;
- 37895EC30FEB7FC9005EE5EE /* PBXTextBookmark */ = 37895EC30FEB7FC9005EE5EE /* PBXTextBookmark */;
- 37895EC40FEB7FC9005EE5EE /* PBXTextBookmark */ = 37895EC40FEB7FC9005EE5EE /* PBXTextBookmark */;
- 37895EC50FEB7FC9005EE5EE /* PBXTextBookmark */ = 37895EC50FEB7FC9005EE5EE /* PBXTextBookmark */;
- 37895EC60FEB7FC9005EE5EE /* PBXTextBookmark */ = 37895EC60FEB7FC9005EE5EE /* PBXTextBookmark */;
- 37895EC80FEB7FF2005EE5EE /* PBXTextBookmark */ = 37895EC80FEB7FF2005EE5EE /* PBXTextBookmark */;
+ 374E6A5A0FEF433B0062A2C9 /* PBXTextBookmark */ = 374E6A5A0FEF433B0062A2C9 /* PBXTextBookmark */;
+ 374E6A640FEF62A50062A2C9 /* PBXTextBookmark */ = 374E6A640FEF62A50062A2C9 /* PBXTextBookmark */;
+ 374E6A650FEF62A50062A2C9 /* PBXTextBookmark */ = 374E6A650FEF62A50062A2C9 /* PBXTextBookmark */;
+ 374E6A760FEF635F0062A2C9 /* PBXTextBookmark */ = 374E6A760FEF635F0062A2C9 /* PBXTextBookmark */;
+ 374E6A770FEF635F0062A2C9 /* PBXTextBookmark */ = 374E6A770FEF635F0062A2C9 /* PBXTextBookmark */;
+ 374E6A780FEF635F0062A2C9 /* PBXTextBookmark */ = 374E6A780FEF635F0062A2C9 /* PBXTextBookmark */;
+ 374E6A790FEF635F0062A2C9 /* PBXTextBookmark */ = 374E6A790FEF635F0062A2C9 /* PBXTextBookmark */;
+ 374E6A7A0FEF635F0062A2C9 /* PBXTextBookmark */ = 374E6A7A0FEF635F0062A2C9 /* PBXTextBookmark */;
+ 374E6A7B0FEF635F0062A2C9 /* PBXTextBookmark */ = 374E6A7B0FEF635F0062A2C9 /* PBXTextBookmark */;
+ 374E6A7C0FEF635F0062A2C9 /* PBXTextBookmark */ = 374E6A7C0FEF635F0062A2C9 /* PBXTextBookmark */;
+ 374E6A7D0FEF635F0062A2C9 /* PBXTextBookmark */ = 374E6A7D0FEF635F0062A2C9 /* PBXTextBookmark */;
+ 374E6A7E0FEF635F0062A2C9 /* PBXTextBookmark */ = 374E6A7E0FEF635F0062A2C9 /* PBXTextBookmark */;
+ 374E6A7F0FEF63E70062A2C9 /* PBXTextBookmark */ = 374E6A7F0FEF63E70062A2C9 /* PBXTextBookmark */;
+ 374E6A800FEF63E70062A2C9 /* PBXTextBookmark */ = 374E6A800FEF63E70062A2C9 /* PBXTextBookmark */;
+ 374E6A860FEF64000062A2C9 /* PBXTextBookmark */ = 374E6A860FEF64000062A2C9 /* PBXTextBookmark */;
+ 37895DFD0FEB6BDC005EE5EE = 37895DFD0FEB6BDC005EE5EE /* PBXTextBookmark */;
+ 37895DFE0FEB6BDC005EE5EE = 37895DFE0FEB6BDC005EE5EE /* PBXTextBookmark */;
+ 37895DFF0FEB6BDC005EE5EE = 37895DFF0FEB6BDC005EE5EE /* PBXTextBookmark */;
+ 37895E000FEB6BDC005EE5EE = 37895E000FEB6BDC005EE5EE /* PBXTextBookmark */;
+ 37895E200FEB6F94005EE5EE = 37895E200FEB6F94005EE5EE /* PBXTextBookmark */;
+ 37895E210FEB6F94005EE5EE = 37895E210FEB6F94005EE5EE /* PBXTextBookmark */;
+ 37895E220FEB6F94005EE5EE = 37895E220FEB6F94005EE5EE /* PBXTextBookmark */;
+ 37895E330FEB7045005EE5EE = 37895E330FEB7045005EE5EE /* PBXTextBookmark */;
+ 37895E340FEB7045005EE5EE = 37895E340FEB7045005EE5EE /* PBXTextBookmark */;
+ 37895E350FEB7045005EE5EE = 37895E350FEB7045005EE5EE /* PBXTextBookmark */;
+ 37895E360FEB7045005EE5EE = 37895E360FEB7045005EE5EE /* PBXTextBookmark */;
+ 37895E370FEB7045005EE5EE = 37895E370FEB7045005EE5EE /* PBXTextBookmark */;
+ 37895E380FEB7045005EE5EE = 37895E380FEB7045005EE5EE /* PBXTextBookmark */;
+ 37895E390FEB7045005EE5EE = 37895E390FEB7045005EE5EE /* PBXTextBookmark */;
+ 37895E3A0FEB7045005EE5EE = 37895E3A0FEB7045005EE5EE /* PBXTextBookmark */;
+ 37895E3B0FEB7045005EE5EE = 37895E3B0FEB7045005EE5EE /* PBXTextBookmark */;
+ 37895E3C0FEB7045005EE5EE = 37895E3C0FEB7045005EE5EE /* PBXTextBookmark */;
+ 37895E430FEB70F2005EE5EE = 37895E430FEB70F2005EE5EE /* PBXTextBookmark */;
+ 37895E440FEB70F2005EE5EE = 37895E440FEB70F2005EE5EE /* PBXTextBookmark */;
+ 37895E450FEB70F2005EE5EE = 37895E450FEB70F2005EE5EE /* PBXTextBookmark */;
+ 37895E4B0FEB72A0005EE5EE = 37895E4B0FEB72A0005EE5EE /* PBXTextBookmark */;
+ 37895E4C0FEB72A0005EE5EE = 37895E4C0FEB72A0005EE5EE /* PBXTextBookmark */;
+ 37895E4D0FEB72A0005EE5EE = 37895E4D0FEB72A0005EE5EE /* PBXTextBookmark */;
+ 37895E550FEB73D8005EE5EE = 37895E550FEB73D8005EE5EE /* PBXTextBookmark */;
+ 37895E560FEB73D8005EE5EE = 37895E560FEB73D8005EE5EE /* PBXTextBookmark */;
+ 37895E570FEB73D8005EE5EE = 37895E570FEB73D8005EE5EE /* PBXTextBookmark */;
+ 37895E6E0FEB75A7005EE5EE = 37895E6E0FEB75A7005EE5EE /* PBXTextBookmark */;
+ 37895E780FEB7612005EE5EE = 37895E780FEB7612005EE5EE /* PBXTextBookmark */;
+ 37895E7C0FEB7683005EE5EE = 37895E7C0FEB7683005EE5EE /* PBXTextBookmark */;
+ 37895E7D0FEB7683005EE5EE = 37895E7D0FEB7683005EE5EE /* PBXTextBookmark */;
+ 37895E880FEB7795005EE5EE = 37895E880FEB7795005EE5EE /* PBXTextBookmark */;
+ 37895E890FEB7795005EE5EE = 37895E890FEB7795005EE5EE /* PBXTextBookmark */;
+ 37895E8A0FEB7795005EE5EE = 37895E8A0FEB7795005EE5EE /* PBXTextBookmark */;
+ 37895E8B0FEB7795005EE5EE = 37895E8B0FEB7795005EE5EE /* PBXTextBookmark */;
+ 37895E8C0FEB7795005EE5EE = 37895E8C0FEB7795005EE5EE /* PBXTextBookmark */;
+ 37895E8D0FEB7795005EE5EE = 37895E8D0FEB7795005EE5EE /* PBXTextBookmark */;
+ 37895E8E0FEB7795005EE5EE = 37895E8E0FEB7795005EE5EE /* PBXTextBookmark */;
+ 37895E8F0FEB7795005EE5EE = 37895E8F0FEB7795005EE5EE /* PBXTextBookmark */;
+ 37895E900FEB7795005EE5EE = 37895E900FEB7795005EE5EE /* PBXTextBookmark */;
+ 37895E970FEB77ED005EE5EE = 37895E970FEB77ED005EE5EE /* PBXTextBookmark */;
+ 37895E980FEB77ED005EE5EE = 37895E980FEB77ED005EE5EE /* PBXTextBookmark */;
+ 37895E9E0FEB7846005EE5EE = 37895E9E0FEB7846005EE5EE /* PBXTextBookmark */;
+ 37895E9F0FEB7846005EE5EE = 37895E9F0FEB7846005EE5EE /* PBXTextBookmark */;
+ 37895EA00FEB7846005EE5EE = 37895EA00FEB7846005EE5EE /* PBXTextBookmark */;
+ 37895EA50FEB7885005EE5EE = 37895EA50FEB7885005EE5EE /* PBXTextBookmark */;
+ 37895EAE0FEB7C30005EE5EE = 37895EAE0FEB7C30005EE5EE /* PBXTextBookmark */;
+ 37895EAF0FEB7C30005EE5EE = 37895EAF0FEB7C30005EE5EE /* PBXTextBookmark */;
+ 37895EBA0FEB7F15005EE5EE = 37895EBA0FEB7F15005EE5EE /* PBXTextBookmark */;
+ 37895EBB0FEB7F15005EE5EE = 37895EBB0FEB7F15005EE5EE /* PBXTextBookmark */;
+ 37895EBC0FEB7F15005EE5EE = 37895EBC0FEB7F15005EE5EE /* PBXTextBookmark */;
+ 37895EBD0FEB7F15005EE5EE = 37895EBD0FEB7F15005EE5EE /* PBXTextBookmark */;
+ 37895EBE0FEB7F15005EE5EE = 37895EBE0FEB7F15005EE5EE /* PBXTextBookmark */;
+ 37895EC50FEB7FC9005EE5EE = 37895EC50FEB7FC9005EE5EE /* PBXTextBookmark */;
+ 37895EED0FED96FC005EE5EE = 37895EED0FED96FC005EE5EE /* PBXTextBookmark */;
+ 37895EEE0FED96FC005EE5EE = 37895EEE0FED96FC005EE5EE /* PBXTextBookmark */;
+ 37895EF00FED96FC005EE5EE = 37895EF00FED96FC005EE5EE /* PBXTextBookmark */;
+ 37895EF10FED96FC005EE5EE = 37895EF10FED96FC005EE5EE /* PBXTextBookmark */;
+ 37895EF20FED96FC005EE5EE = 37895EF20FED96FC005EE5EE /* PBXTextBookmark */;
+ 37895EF40FED96FC005EE5EE = 37895EF40FED96FC005EE5EE /* PBXTextBookmark */;
+ 37895EF60FED96FC005EE5EE = 37895EF60FED96FC005EE5EE /* PBXTextBookmark */;
+ 37895EF70FED96FC005EE5EE = 37895EF70FED96FC005EE5EE /* PBXTextBookmark */;
+ 37895EF80FED96FC005EE5EE = 37895EF80FED96FC005EE5EE /* PBXTextBookmark */;
+ 37895EF90FED96FC005EE5EE = 37895EF90FED96FC005EE5EE /* PBXTextBookmark */;
+ 37895EFF0FEDDC30005EE5EE = 37895EFF0FEDDC30005EE5EE /* PBXTextBookmark */;
+ 37895F000FEDDC30005EE5EE = 37895F000FEDDC30005EE5EE /* PBXTextBookmark */;
+ 37895F010FEDDC30005EE5EE = 37895F010FEDDC30005EE5EE /* PBXTextBookmark */;
+ 37895F020FEDDC30005EE5EE = 37895F020FEDDC30005EE5EE /* PBXTextBookmark */;
+ 37895F030FEDDC30005EE5EE = 37895F030FEDDC30005EE5EE /* PBXTextBookmark */;
+ 37895F040FEDDC30005EE5EE = 37895F040FEDDC30005EE5EE /* PBXTextBookmark */;
+ 37895F050FEDDC30005EE5EE = 37895F050FEDDC30005EE5EE /* PBXTextBookmark */;
+ 37895F0A0FEE074A005EE5EE = 37895F0A0FEE074A005EE5EE /* PBXTextBookmark */;
378DED7E0FDB008200F1958C = 378DED7E0FDB008200F1958C /* PBXTextBookmark */;
378DED8F0FDB20EC00F1958C = 378DED8F0FDB20EC00F1958C /* PBXTextBookmark */;
37902CD30FD6F6F100DE3FDE = 37902CD30FD6F6F100DE3FDE /* PBXTextBookmark */;
@@ -207,60 +157,8 @@
37902CFD0FD6FBAD00DE3FDE = 37902CFD0FD6FBAD00DE3FDE /* PlistBookmark */;
37902D000FD6FBAD00DE3FDE = 37902D000FD6FBAD00DE3FDE /* PlistBookmark */;
37902D160FD7BA4A00DE3FDE = 37902D160FD7BA4A00DE3FDE /* PBXTextBookmark */;
- 37A835940FEAD6980064AF4F = 37A835940FEAD6980064AF4F /* PBXTextBookmark */;
- 37A835950FEAD6980064AF4F = 37A835950FEAD6980064AF4F /* PBXTextBookmark */;
- 37A835960FEAD6980064AF4F = 37A835960FEAD6980064AF4F /* PBXTextBookmark */;
- 37A835980FEAD6980064AF4F = 37A835980FEAD6980064AF4F /* PBXTextBookmark */;
- 37A835990FEAD6980064AF4F = 37A835990FEAD6980064AF4F /* PBXTextBookmark */;
37A8359A0FEAD6980064AF4F = 37A8359A0FEAD6980064AF4F /* PBXTextBookmark */;
- 37A8359B0FEAD6980064AF4F = 37A8359B0FEAD6980064AF4F /* PBXTextBookmark */;
- 37A8359C0FEAD6980064AF4F = 37A8359C0FEAD6980064AF4F /* PBXTextBookmark */;
- 37A8359D0FEAD6980064AF4F = 37A8359D0FEAD6980064AF4F /* PBXTextBookmark */;
- 37A8359E0FEAD6980064AF4F = 37A8359E0FEAD6980064AF4F /* PBXTextBookmark */;
37A8359F0FEAD6980064AF4F = 37A8359F0FEAD6980064AF4F /* PBXTextBookmark */;
- 37A835A00FEAD6980064AF4F = 37A835A00FEAD6980064AF4F /* PBXTextBookmark */;
- 37A835A10FEAD6980064AF4F = 37A835A10FEAD6980064AF4F /* PBXTextBookmark */;
- 37A835A20FEAD6980064AF4F = 37A835A20FEAD6980064AF4F /* PBXTextBookmark */;
- 37A835A30FEAD6980064AF4F = 37A835A30FEAD6980064AF4F /* PBXTextBookmark */;
- 37A835A40FEAD6980064AF4F = 37A835A40FEAD6980064AF4F /* PBXTextBookmark */;
- 37A835A50FEAD6980064AF4F = 37A835A50FEAD6980064AF4F /* PBXTextBookmark */;
- 37A835A60FEAD6980064AF4F = 37A835A60FEAD6980064AF4F /* PBXTextBookmark */;
- 37A835A70FEAD6980064AF4F = 37A835A70FEAD6980064AF4F /* PBXTextBookmark */;
- 37A835A80FEAD6980064AF4F = 37A835A80FEAD6980064AF4F /* PBXTextBookmark */;
- 37A835A90FEAD6980064AF4F = 37A835A90FEAD6980064AF4F /* PBXTextBookmark */;
- 37A835AA0FEAD6980064AF4F = 37A835AA0FEAD6980064AF4F /* PBXTextBookmark */;
- 37A835AB0FEAD6980064AF4F = 37A835AB0FEAD6980064AF4F /* PBXTextBookmark */;
- 37A835AC0FEAD6980064AF4F = 37A835AC0FEAD6980064AF4F /* PBXTextBookmark */;
- 37A835AD0FEAD6980064AF4F = 37A835AD0FEAD6980064AF4F /* PBXTextBookmark */;
- 37A835AE0FEAD6980064AF4F = 37A835AE0FEAD6980064AF4F /* PBXTextBookmark */;
- 37A835AF0FEAD6980064AF4F = 37A835AF0FEAD6980064AF4F /* PBXTextBookmark */;
- 37A835B00FEAD6980064AF4F = 37A835B00FEAD6980064AF4F /* PBXTextBookmark */;
- 37A835B10FEAD6980064AF4F = 37A835B10FEAD6980064AF4F /* PBXTextBookmark */;
- 37A835B20FEAD6980064AF4F = 37A835B20FEAD6980064AF4F /* PBXTextBookmark */;
- 37A835B30FEAD6980064AF4F = 37A835B30FEAD6980064AF4F /* PBXTextBookmark */;
- 37A835B40FEAD6980064AF4F = 37A835B40FEAD6980064AF4F /* PBXTextBookmark */;
- 37A835B50FEAD6980064AF4F = 37A835B50FEAD6980064AF4F /* PBXTextBookmark */;
- 37A835B60FEAD6980064AF4F = 37A835B60FEAD6980064AF4F /* PBXTextBookmark */;
- 37A835B70FEAD6980064AF4F = 37A835B70FEAD6980064AF4F /* PBXTextBookmark */;
- 37A835B80FEAD6980064AF4F = 37A835B80FEAD6980064AF4F /* PBXTextBookmark */;
- 37A835B90FEAD6980064AF4F = 37A835B90FEAD6980064AF4F /* PBXTextBookmark */;
- 37A835BA0FEAD6980064AF4F = 37A835BA0FEAD6980064AF4F /* PBXTextBookmark */;
- 37A835BB0FEAD6980064AF4F = 37A835BB0FEAD6980064AF4F /* PBXTextBookmark */;
- 37A835BC0FEAD6980064AF4F = 37A835BC0FEAD6980064AF4F /* PBXTextBookmark */;
- 37A835BD0FEAD6980064AF4F = 37A835BD0FEAD6980064AF4F /* PBXTextBookmark */;
- 37A835BE0FEAD6980064AF4F = 37A835BE0FEAD6980064AF4F /* PBXTextBookmark */;
- 37A835BF0FEAD6980064AF4F = 37A835BF0FEAD6980064AF4F /* PBXTextBookmark */;
- 37A835C00FEAD6980064AF4F = 37A835C00FEAD6980064AF4F /* PBXTextBookmark */;
- 37A835C10FEAD6980064AF4F = 37A835C10FEAD6980064AF4F /* PBXTextBookmark */;
- 37A835C20FEAD6980064AF4F = 37A835C20FEAD6980064AF4F /* PBXTextBookmark */;
- 37A835C30FEAD6980064AF4F = 37A835C30FEAD6980064AF4F /* PBXTextBookmark */;
- 37A835C40FEAD6980064AF4F = 37A835C40FEAD6980064AF4F /* PBXTextBookmark */;
- 37A835C50FEAD6980064AF4F = 37A835C50FEAD6980064AF4F /* PBXTextBookmark */;
- 37A835C60FEAD6980064AF4F = 37A835C60FEAD6980064AF4F /* PBXTextBookmark */;
- 37A835C90FEAD6AF0064AF4F = 37A835C90FEAD6AF0064AF4F /* PBXTextBookmark */;
- 37A835CA0FEAD6AF0064AF4F = 37A835CA0FEAD6AF0064AF4F /* PBXTextBookmark */;
- 37A835D00FEAE6E40064AF4F = 37A835D00FEAE6E40064AF4F /* PBXTextBookmark */;
- 37DE0E370FE108C100EDC07B = 37DE0E370FE108C100EDC07B /* PBXTextBookmark */;
};
sourceControlManager = 37902BB70FD5EF7000DE3FDE /* Source Control */;
userBuildSettings = {
@@ -280,202 +178,215 @@
sepNavVisRange = "{0, 151}";
};
};
- 37895DF40FEB6B35005EE5EE /* PBXTextBookmark */ = {
+ 374E6A5A0FEF433B0062A2C9 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
- fRef = 37A835660FEAC9A70064AF4F /* GEGistListDelegate.rb */;
- name = "GEGistListDelegate.rb: 13";
+ fRef = 37895EFB0FEDDC08005EE5EE /* Preferences.rb */;
+ name = "Preferences.rb: 11";
rLen = 0;
- rLoc = 308;
+ rLoc = 9005;
rType = 0;
- vrLen = 654;
+ vrLen = 419;
vrLoc = 0;
};
- 37895DFA0FEB6BDC005EE5EE /* PBXTextBookmark */ = {
+ 374E6A640FEF62A50062A2C9 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
- fRef = 37902BCB0FD5F11400DE3FDE /* GEDocument.rb */;
- name = "GEDocument.rb: 14";
+ fRef = 37895EFB0FEDDC08005EE5EE /* Preferences.rb */;
+ name = "Preferences.rb: 20";
rLen = 0;
- rLoc = 343;
+ rLoc = 9242;
rType = 0;
- vrLen = 700;
- vrLoc = 2273;
+ vrLen = 419;
+ vrLoc = 0;
};
- 37895DFB0FEB6BDC005EE5EE /* PBXTextBookmark */ = {
+ 374E6A650FEF62A50062A2C9 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
- fRef = 37902D110FD7A3B300DE3FDE /* ConnectionDelegate.rb */;
- name = "ConnectionDelegate.rb: 23";
+ fRef = 37895EFB0FEDDC08005EE5EE /* Preferences.rb */;
+ name = "Preferences.rb: 13";
rLen = 0;
- rLoc = 419;
+ rLoc = 9077;
rType = 0;
- vrLen = 561;
- vrLoc = 195;
+ vrLen = 469;
+ vrLoc = 0;
+ };
+ 374E6A700FEF63330062A2C9 /* abstract_preferences.rb */ = {
+ isa = PBXFileReference;
+ fileEncoding = 4;
+ lastKnownFileType = text.script.ruby;
+ name = abstract_preferences.rb;
+ path = /Users/greg/code/gisteditor/abstract_preferences.rb;
+ sourceTree = "<absolute>";
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {1010, 5301}}";
+ sepNavSelRange = "{152, 8769}";
+ sepNavVisRange = "{0, 449}";
+ };
};
- 37895DFC0FEB6BDC005EE5EE /* PBXTextBookmark */ = {
+ 374E6A760FEF635F0062A2C9 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
- fRef = 37A835660FEAC9A70064AF4F /* GEGistListDelegate.rb */;
- name = "GEGistListDelegate.rb: 13";
+ fRef = 37902BCB0FD5F11400DE3FDE /* GEDocument.rb */;
+ name = "GEDocument.rb: 18";
rLen = 0;
- rLoc = 308;
+ rLoc = 397;
rType = 0;
- vrLen = 654;
+ vrLen = 537;
vrLoc = 0;
};
- 37895DFD0FEB6BDC005EE5EE /* PBXTextBookmark */ = {
+ 374E6A770FEF635F0062A2C9 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
- fRef = 37A835660FEAC9A70064AF4F /* GEGistListDelegate.rb */;
- name = "GEGistListDelegate.rb: 13";
+ fRef = 374E6A700FEF63330062A2C9 /* abstract_preferences.rb */;
+ name = "abstract_preferences.rb: 271";
rLen = 0;
- rLoc = 308;
+ rLoc = 8773;
rType = 0;
- vrLen = 654;
- vrLoc = 0;
+ vrLen = 990;
+ vrLoc = 7542;
};
- 37895DFE0FEB6BDC005EE5EE /* PBXTextBookmark */ = {
+ 374E6A780FEF635F0062A2C9 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
- fRef = 37902BCB0FD5F11400DE3FDE /* GEDocument.rb */;
- name = "GEDocument.rb: 14";
+ fRef = 378DED880FDB0B3F00F1958C /* GEGist.rb */;
+ name = "GEGist.rb: 26";
rLen = 0;
- rLoc = 343;
+ rLoc = 659;
rType = 0;
- vrLen = 700;
- vrLoc = 2273;
+ vrLen = 657;
+ vrLoc = 134;
};
- 37895DFF0FEB6BDC005EE5EE /* PBXTextBookmark */ = {
+ 374E6A790FEF635F0062A2C9 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
- fRef = 37A835660FEAC9A70064AF4F /* GEGistListDelegate.rb */;
- name = "GEGistListDelegate.rb: 13";
+ fRef = 37895EFB0FEDDC08005EE5EE /* Preferences.rb */;
+ name = "Preferences.rb: 13";
rLen = 0;
- rLoc = 308;
+ rLoc = 9077;
rType = 0;
- vrLen = 654;
+ vrLen = 469;
vrLoc = 0;
};
- 37895E000FEB6BDC005EE5EE /* PBXTextBookmark */ = {
+ 374E6A7A0FEF635F0062A2C9 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
- fRef = 37902D110FD7A3B300DE3FDE /* ConnectionDelegate.rb */;
- name = "ConnectionDelegate.rb: 23";
+ fRef = 37895EFB0FEDDC08005EE5EE /* Preferences.rb */;
+ name = "Preferences.rb: 13";
rLen = 0;
- rLoc = 419;
+ rLoc = 9077;
rType = 0;
- vrLen = 561;
- vrLoc = 195;
+ vrLen = 469;
+ vrLoc = 0;
};
- 37895E010FEB6BDC005EE5EE /* PBXTextBookmark */ = {
+ 374E6A7B0FEF635F0062A2C9 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
- fRef = 37A835660FEAC9A70064AF4F /* GEGistListDelegate.rb */;
- name = "GEGistListDelegate.rb: 17";
+ fRef = 37902BCB0FD5F11400DE3FDE /* GEDocument.rb */;
+ name = "GEDocument.rb: 18";
rLen = 0;
- rLoc = 482;
+ rLoc = 397;
rType = 0;
- vrLen = 728;
+ vrLen = 537;
vrLoc = 0;
};
- 37895E0E0FEB6BFB005EE5EE /* PBXTextBookmark */ = {
+ 374E6A7C0FEF635F0062A2C9 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
- fRef = 37A835660FEAC9A70064AF4F /* GEGistListDelegate.rb */;
- name = "GEGistListDelegate.rb: 17";
+ fRef = 374E6A700FEF63330062A2C9 /* abstract_preferences.rb */;
+ name = "abstract_preferences.rb: 271";
rLen = 0;
- rLoc = 482;
+ rLoc = 8773;
rType = 0;
- vrLen = 739;
- vrLoc = 0;
+ vrLen = 990;
+ vrLoc = 7542;
};
- 37895E100FEB6C0B005EE5EE /* PBXTextBookmark */ = {
+ 374E6A7D0FEF635F0062A2C9 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
- fRef = 37A835660FEAC9A70064AF4F /* GEGistListDelegate.rb */;
- name = "GEGistListDelegate.rb: 17";
+ fRef = 378DED880FDB0B3F00F1958C /* GEGist.rb */;
+ name = "GEGist.rb: 26";
rLen = 0;
- rLoc = 482;
+ rLoc = 659;
rType = 0;
- vrLen = 744;
- vrLoc = 0;
+ vrLen = 657;
+ vrLoc = 134;
};
- 37895E150FEB6C34005EE5EE /* PBXTextBookmark */ = {
+ 374E6A7E0FEF635F0062A2C9 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
- fRef = 37A835660FEAC9A70064AF4F /* GEGistListDelegate.rb */;
- name = "GEGistListDelegate.rb: 17";
+ fRef = 37895EFB0FEDDC08005EE5EE /* Preferences.rb */;
+ name = "Preferences.rb: 9";
rLen = 0;
- rLoc = 482;
+ rLoc = 145;
rType = 0;
- vrLen = 744;
+ vrLen = 471;
vrLoc = 0;
};
- 37895E160FEB6C34005EE5EE /* PBXTextBookmark */ = {
+ 374E6A7F0FEF63E70062A2C9 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
- fRef = 37A835660FEAC9A70064AF4F /* GEGistListDelegate.rb */;
- name = "GEGistListDelegate.rb: 17";
+ fRef = 37895EFB0FEDDC08005EE5EE /* Preferences.rb */;
+ name = "Preferences.rb: 9";
rLen = 0;
- rLoc = 482;
+ rLoc = 145;
rType = 0;
- vrLen = 748;
+ vrLen = 471;
vrLoc = 0;
};
- 37895E170FEB6CE1005EE5EE /* PBXTextBookmark */ = {
+ 374E6A800FEF63E70062A2C9 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
- fRef = 37A835660FEAC9A70064AF4F /* GEGistListDelegate.rb */;
- name = "GEGistListDelegate.rb: 17";
+ fRef = 37895EFB0FEDDC08005EE5EE /* Preferences.rb */;
+ name = "Preferences.rb: 281";
rLen = 0;
- rLoc = 482;
+ rLoc = 8986;
rType = 0;
- vrLen = 743;
+ vrLen = 466;
vrLoc = 0;
};
- 37895E190FEB6D52005EE5EE /* PBXTextBookmark */ = {
+ 374E6A860FEF64000062A2C9 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
- fRef = 37A835660FEAC9A70064AF4F /* GEGistListDelegate.rb */;
- name = "GEGistListDelegate.rb: 17";
+ fRef = 37895EFB0FEDDC08005EE5EE /* Preferences.rb */;
+ name = "Preferences.rb: 281";
rLen = 0;
- rLoc = 482;
+ rLoc = 8986;
rType = 0;
- vrLen = 758;
+ vrLen = 466;
vrLoc = 0;
};
- 37895E1B0FEB6D61005EE5EE /* PBXTextBookmark */ = {
+ 37895DFD0FEB6BDC005EE5EE /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 37A835660FEAC9A70064AF4F /* GEGistListDelegate.rb */;
- name = "GEGistListDelegate.rb: 17";
+ name = "GEGistListDelegate.rb: 13";
rLen = 0;
- rLoc = 481;
+ rLoc = 372;
rType = 0;
- vrLen = 755;
+ vrLen = 654;
vrLoc = 0;
};
- 37895E1D0FEB6F94005EE5EE /* PBXTextBookmark */ = {
+ 37895DFE0FEB6BDC005EE5EE /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
- fRef = 37A835660FEAC9A70064AF4F /* GEGistListDelegate.rb */;
- name = "GEGistListDelegate.rb: 17";
+ fRef = 37902BCB0FD5F11400DE3FDE /* GEDocument.rb */;
+ name = "GEDocument.rb: 14";
rLen = 0;
- rLoc = 482;
+ rLoc = 343;
rType = 0;
- vrLen = 766;
- vrLoc = 0;
+ vrLen = 700;
+ vrLoc = 2273;
};
- 37895E1E0FEB6F94005EE5EE /* PBXTextBookmark */ = {
+ 37895DFF0FEB6BDC005EE5EE /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
- fRef = 378DED880FDB0B3F00F1958C /* GEGist.rb */;
- name = "GEGist.rb: 10";
+ fRef = 37A835660FEAC9A70064AF4F /* GEGistListDelegate.rb */;
+ name = "GEGistListDelegate.rb: 13";
rLen = 0;
- rLoc = 202;
+ rLoc = 372;
rType = 0;
- vrLen = 657;
+ vrLen = 654;
vrLoc = 0;
};
- 37895E1F0FEB6F94005EE5EE /* PBXTextBookmark */ = {
+ 37895E000FEB6BDC005EE5EE /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
- fRef = 37902BCB0FD5F11400DE3FDE /* GEDocument.rb */;
- name = "GEDocument.rb: 23";
+ fRef = 37902D110FD7A3B300DE3FDE /* ConnectionDelegate.rb */;
+ name = "ConnectionDelegate.rb: 23";
rLen = 0;
- rLoc = 532;
+ rLoc = 419;
rType = 0;
- vrLen = 735;
- vrLoc = 171;
+ vrLen = 561;
+ vrLoc = 195;
};
37895E200FEB6F94005EE5EE /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 37A835660FEAC9A70064AF4F /* GEGistListDelegate.rb */;
name = "GEGistListDelegate.rb: 17";
rLen = 0;
- rLoc = 482;
+ rLoc = 546;
rType = 0;
vrLen = 766;
vrLoc = 0;
@@ -485,7 +396,7 @@
fRef = 37902BCB0FD5F11400DE3FDE /* GEDocument.rb */;
name = "GEDocument.rb: 23";
rLen = 0;
- rLoc = 532;
+ rLoc = 533;
rType = 0;
vrLen = 735;
vrLoc = 171;
@@ -500,72 +411,12 @@
vrLen = 657;
vrLoc = 0;
};
- 37895E230FEB6F94005EE5EE /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 37902BCB0FD5F11400DE3FDE /* GEDocument.rb */;
- name = "GEDocument.rb: 51";
- rLen = 0;
- rLoc = 1644;
- rType = 0;
- vrLen = 1215;
- vrLoc = 664;
- };
- 37895E2E0FEB7045005EE5EE /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 37902BCB0FD5F11400DE3FDE /* GEDocument.rb */;
- name = "GEDocument.rb: 51";
- rLen = 0;
- rLoc = 1644;
- rType = 0;
- vrLen = 1186;
- vrLoc = 693;
- };
- 37895E2F0FEB7045005EE5EE /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 378DED880FDB0B3F00F1958C /* GEGist.rb */;
- name = "GEGist.rb: 10";
- rLen = 0;
- rLoc = 202;
- rType = 0;
- vrLen = 619;
- vrLoc = 0;
- };
- 37895E300FEB7045005EE5EE /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 37A835730FEACC880064AF4F /* GEGistLibrary.rb */;
- name = "GEGistLibrary.rb: 21";
- rLen = 0;
- rLoc = 688;
- rType = 0;
- vrLen = 533;
- vrLoc = 0;
- };
- 37895E310FEB7045005EE5EE /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 37902D110FD7A3B300DE3FDE /* ConnectionDelegate.rb */;
- name = "ConnectionDelegate.rb: 23";
- rLen = 0;
- rLoc = 419;
- rType = 0;
- vrLen = 550;
- vrLoc = 148;
- };
- 37895E320FEB7045005EE5EE /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 37A835660FEAC9A70064AF4F /* GEGistListDelegate.rb */;
- name = "GEGistListDelegate.rb: 17";
- rLen = 0;
- rLoc = 482;
- rType = 0;
- vrLen = 762;
- vrLoc = 0;
- };
37895E330FEB7045005EE5EE /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 37902BCB0FD5F11400DE3FDE /* GEDocument.rb */;
name = "GEDocument.rb: 51";
rLen = 0;
- rLoc = 1644;
+ rLoc = 1645;
rType = 0;
vrLen = 1215;
vrLoc = 664;
@@ -585,7 +436,7 @@
fRef = 37902BCB0FD5F11400DE3FDE /* GEDocument.rb */;
name = "GEDocument.rb: 51";
rLen = 0;
- rLoc = 1644;
+ rLoc = 1645;
rType = 0;
vrLen = 1186;
vrLoc = 693;
@@ -595,7 +446,7 @@
fRef = 37A835660FEAC9A70064AF4F /* GEGistListDelegate.rb */;
name = "GEGistListDelegate.rb: 17";
rLen = 0;
- rLoc = 482;
+ rLoc = 546;
rType = 0;
vrLen = 766;
vrLoc = 0;
@@ -615,7 +466,7 @@
fRef = 37A835660FEAC9A70064AF4F /* GEGistListDelegate.rb */;
name = "GEGistListDelegate.rb: 17";
rLen = 0;
- rLoc = 482;
+ rLoc = 546;
rType = 0;
vrLen = 762;
vrLoc = 0;
@@ -645,7 +496,7 @@
fRef = 37A835660FEAC9A70064AF4F /* GEGistListDelegate.rb */;
name = "GEGistListDelegate.rb: 17";
rLen = 0;
- rLoc = 482;
+ rLoc = 546;
rType = 0;
vrLen = 762;
vrLoc = 0;
@@ -660,52 +511,12 @@
vrLen = 550;
vrLoc = 148;
};
- 37895E3D0FEB7045005EE5EE /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 37A835660FEAC9A70064AF4F /* GEGistListDelegate.rb */;
- name = "GEGistListDelegate.rb: 25";
- rLen = 0;
- rLoc = 668;
- rType = 0;
- vrLen = 765;
- vrLoc = 2;
- };
- 37895E400FEB70F2005EE5EE /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 37A835660FEAC9A70064AF4F /* GEGistListDelegate.rb */;
- name = "GEGistListDelegate.rb: 25";
- rLen = 0;
- rLoc = 668;
- rType = 0;
- vrLen = 765;
- vrLoc = 2;
- };
- 37895E410FEB70F2005EE5EE /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 37902BCB0FD5F11400DE3FDE /* GEDocument.rb */;
- name = "GEDocument.rb: 47";
- rLen = 0;
- rLoc = 1493;
- rType = 0;
- vrLen = 1180;
- vrLoc = 699;
- };
- 37895E420FEB70F2005EE5EE /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 378DED880FDB0B3F00F1958C /* GEGist.rb */;
- name = "GEGist.rb: 10";
- rLen = 0;
- rLoc = 202;
- rType = 0;
- vrLen = 619;
- vrLoc = 0;
- };
37895E430FEB70F2005EE5EE /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 37A835660FEAC9A70064AF4F /* GEGistListDelegate.rb */;
name = "GEGistListDelegate.rb: 25";
rLen = 0;
- rLoc = 668;
+ rLoc = 732;
rType = 0;
vrLen = 765;
vrLoc = 2;
@@ -715,7 +526,7 @@
fRef = 37902BCB0FD5F11400DE3FDE /* GEDocument.rb */;
name = "GEDocument.rb: 47";
rLen = 0;
- rLoc = 1493;
+ rLoc = 1494;
rType = 0;
vrLen = 1180;
vrLoc = 699;
@@ -730,46 +541,6 @@
vrLen = 619;
vrLoc = 0;
};
- 37895E460FEB70F2005EE5EE /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 37A835730FEACC880064AF4F /* GEGistLibrary.rb */;
- name = "GEGistLibrary.rb: 13";
- rLen = 0;
- rLoc = 383;
- rType = 0;
- vrLen = 549;
- vrLoc = 0;
- };
- 37895E480FEB72A0005EE5EE /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 378DED880FDB0B3F00F1958C /* GEGist.rb */;
- name = "GEGist.rb: 10";
- rLen = 0;
- rLoc = 202;
- rType = 0;
- vrLen = 619;
- vrLoc = 0;
- };
- 37895E490FEB72A0005EE5EE /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 37A835660FEAC9A70064AF4F /* GEGistListDelegate.rb */;
- name = "GEGistListDelegate.rb: 25";
- rLen = 0;
- rLoc = 668;
- rType = 0;
- vrLen = 757;
- vrLoc = 2;
- };
- 37895E4A0FEB72A0005EE5EE /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 37A835730FEACC880064AF4F /* GEGistLibrary.rb */;
- name = "GEGistLibrary.rb: 17";
- rLen = 0;
- rLoc = 547;
- rType = 0;
- vrLen = 571;
- vrLoc = 0;
- };
37895E4B0FEB72A0005EE5EE /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 37A835730FEACC880064AF4F /* GEGistLibrary.rb */;
@@ -795,22 +566,12 @@
fRef = 37A835660FEAC9A70064AF4F /* GEGistListDelegate.rb */;
name = "GEGistListDelegate.rb: 25";
rLen = 0;
- rLoc = 668;
+ rLoc = 732;
rType = 0;
vrLen = 757;
vrLoc = 2;
};
- 37895E4E0FEB72A0005EE5EE /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 37A835730FEACC880064AF4F /* GEGistLibrary.rb */;
- name = "GEGistLibrary.rb: 17";
- rLen = 0;
- rLoc = 416;
- rType = 0;
- vrLen = 665;
- vrLoc = 0;
- };
- 37895E4F0FEB72C9005EE5EE /* PBXTextBookmark */ = {
+ 37895E550FEB73D8005EE5EE /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 37A835730FEACC880064AF4F /* GEGistLibrary.rb */;
name = "GEGistLibrary.rb: 17";
@@ -820,242 +581,52 @@
vrLen = 697;
vrLoc = 0;
};
- 37895E520FEB73D8005EE5EE /* PBXTextBookmark */ = {
+ 37895E560FEB73D8005EE5EE /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
- fRef = 37A835730FEACC880064AF4F /* GEGistLibrary.rb */;
- name = "GEGistLibrary.rb: 17";
+ fRef = 37A835660FEAC9A70064AF4F /* GEGistListDelegate.rb */;
+ name = "GEGistListDelegate.rb: 25";
rLen = 0;
- rLoc = 539;
+ rLoc = 732;
rType = 0;
- vrLen = 697;
- vrLoc = 0;
+ vrLen = 746;
+ vrLoc = 27;
};
- 37895E530FEB73D8005EE5EE /* PBXTextBookmark */ = {
+ 37895E570FEB73D8005EE5EE /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 37902BCB0FD5F11400DE3FDE /* GEDocument.rb */;
name = "GEDocument.rb: 31";
rLen = 0;
- rLoc = 740;
+ rLoc = 741;
rType = 0;
vrLen = 948;
vrLoc = 378;
};
- 37895E540FEB73D8005EE5EE /* PBXTextBookmark */ = {
+ 37895E6E0FEB75A7005EE5EE /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 37A835660FEAC9A70064AF4F /* GEGistListDelegate.rb */;
- name = "GEGistListDelegate.rb: 25";
+ name = "GEGistListDelegate.rb: 13";
rLen = 0;
- rLoc = 668;
+ rLoc = 357;
rType = 0;
- vrLen = 740;
+ vrLen = 768;
vrLoc = 27;
};
- 37895E550FEB73D8005EE5EE /* PBXTextBookmark */ = {
+ 37895E780FEB7612005EE5EE /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
- fRef = 37A835730FEACC880064AF4F /* GEGistLibrary.rb */;
- name = "GEGistLibrary.rb: 17";
+ fRef = 37902BCB0FD5F11400DE3FDE /* GEDocument.rb */;
+ name = "GEDocument.rb: 25";
rLen = 0;
- rLoc = 539;
+ rLoc = 550;
rType = 0;
- vrLen = 697;
- vrLoc = 0;
+ vrLen = 672;
+ vrLoc = 35;
};
- 37895E560FEB73D8005EE5EE /* PBXTextBookmark */ = {
+ 37895E7C0FEB7683005EE5EE /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 37A835660FEAC9A70064AF4F /* GEGistListDelegate.rb */;
- name = "GEGistListDelegate.rb: 25";
+ name = "GEGistListDelegate.rb: 13";
rLen = 0;
- rLoc = 668;
- rType = 0;
- vrLen = 746;
- vrLoc = 27;
- };
- 37895E570FEB73D8005EE5EE /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 37902BCB0FD5F11400DE3FDE /* GEDocument.rb */;
- name = "GEDocument.rb: 31";
- rLen = 0;
- rLoc = 740;
- rType = 0;
- vrLen = 948;
- vrLoc = 378;
- };
- 37895E580FEB73D8005EE5EE /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 37A835660FEAC9A70064AF4F /* GEGistListDelegate.rb */;
- name = "GEGistListDelegate.rb: 17";
- rLen = 0;
- rLoc = 482;
- rType = 0;
- vrLen = 767;
- vrLoc = 27;
- };
- 37895E5B0FEB73EE005EE5EE /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 37A835660FEAC9A70064AF4F /* GEGistListDelegate.rb */;
- name = "GEGistListDelegate.rb: 17";
- rLen = 0;
- rLoc = 460;
- rType = 0;
- vrLen = 768;
- vrLoc = 27;
- };
- 37895E600FEB7424005EE5EE /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 37A835660FEAC9A70064AF4F /* GEGistListDelegate.rb */;
- name = "GEGistListDelegate.rb: 17";
- rLen = 0;
- rLoc = 460;
- rType = 0;
- vrLen = 768;
- vrLoc = 27;
- };
- 37895E630FEB7467005EE5EE /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 37A835660FEAC9A70064AF4F /* GEGistListDelegate.rb */;
- name = "GEGistListDelegate.rb: 21";
- rLen = 0;
- rLoc = 536;
- rType = 0;
- vrLen = 768;
- vrLoc = 27;
- };
- 37895E680FEB7481005EE5EE /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 37A835660FEAC9A70064AF4F /* GEGistListDelegate.rb */;
- name = "GEGistListDelegate.rb: 21";
- rLen = 0;
- rLoc = 536;
- rType = 0;
- vrLen = 768;
- vrLoc = 27;
- };
- 37895E6B0FEB7583005EE5EE /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 37A835660FEAC9A70064AF4F /* GEGistListDelegate.rb */;
- name = "GEGistListDelegate.rb: 13";
- rLen = 0;
- rLoc = 293;
- rType = 0;
- vrLen = 769;
- vrLoc = 27;
- };
- 37895E6C0FEB75A7005EE5EE /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 37A835660FEAC9A70064AF4F /* GEGistListDelegate.rb */;
- name = "GEGistListDelegate.rb: 13";
- rLen = 0;
- rLoc = 293;
- rType = 0;
- vrLen = 768;
- vrLoc = 27;
- };
- 37895E6D0FEB75A7005EE5EE /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 37902BCB0FD5F11400DE3FDE /* GEDocument.rb */;
- name = "GEDocument.rb: 31";
- rLen = 0;
- rLoc = 740;
- rType = 0;
- vrLen = 948;
- vrLoc = 378;
- };
- 37895E6E0FEB75A7005EE5EE /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 37A835660FEAC9A70064AF4F /* GEGistListDelegate.rb */;
- name = "GEGistListDelegate.rb: 13";
- rLen = 0;
- rLoc = 293;
- rType = 0;
- vrLen = 768;
- vrLoc = 27;
- };
- 37895E6F0FEB75A7005EE5EE /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 37902BCB0FD5F11400DE3FDE /* GEDocument.rb */;
- name = "GEDocument.rb: 31";
- rLen = 0;
- rLoc = 740;
- rType = 0;
- vrLen = 948;
- vrLoc = 378;
- };
- 37895E750FEB75E7005EE5EE /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 37902BCB0FD5F11400DE3FDE /* GEDocument.rb */;
- name = "GEDocument.rb: 31";
- rLen = 0;
- rLoc = 740;
- rType = 0;
- vrLen = 948;
- vrLoc = 378;
- };
- 37895E760FEB7612005EE5EE /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 37902BCB0FD5F11400DE3FDE /* GEDocument.rb */;
- name = "GEDocument.rb: 25";
- rLen = 0;
- rLoc = 549;
- rType = 0;
- vrLen = 672;
- vrLoc = 35;
- };
- 37895E770FEB7612005EE5EE /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 37A835660FEAC9A70064AF4F /* GEGistListDelegate.rb */;
- name = "GEGistListDelegate.rb: 13";
- rLen = 0;
- rLoc = 293;
- rType = 0;
- vrLen = 768;
- vrLoc = 27;
- };
- 37895E780FEB7612005EE5EE /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 37902BCB0FD5F11400DE3FDE /* GEDocument.rb */;
- name = "GEDocument.rb: 25";
- rLen = 0;
- rLoc = 549;
- rType = 0;
- vrLen = 672;
- vrLoc = 35;
- };
- 37895E790FEB7612005EE5EE /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 37A835660FEAC9A70064AF4F /* GEGistListDelegate.rb */;
- name = "GEGistListDelegate.rb: 13";
- rLen = 0;
- rLoc = 293;
- rType = 0;
- vrLen = 768;
- vrLoc = 27;
- };
- 37895E7A0FEB7683005EE5EE /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 37A835660FEAC9A70064AF4F /* GEGistListDelegate.rb */;
- name = "GEGistListDelegate.rb: 13";
- rLen = 0;
- rLoc = 293;
- rType = 0;
- vrLen = 768;
- vrLoc = 27;
- };
- 37895E7B0FEB7683005EE5EE /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 37A835730FEACC880064AF4F /* GEGistLibrary.rb */;
- name = "GEGistLibrary.rb: 17";
- rLen = 0;
- rLoc = 539;
- rType = 0;
- vrLen = 679;
- vrLoc = 22;
- };
- 37895E7C0FEB7683005EE5EE /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 37A835660FEAC9A70064AF4F /* GEGistListDelegate.rb */;
- name = "GEGistListDelegate.rb: 13";
- rLen = 0;
- rLoc = 293;
+ rLoc = 357;
rType = 0;
vrLen = 768;
vrLoc = 27;
@@ -1070,62 +641,12 @@
vrLen = 679;
vrLoc = 22;
};
- 37895E7E0FEB7683005EE5EE /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 37902BCB0FD5F11400DE3FDE /* GEDocument.rb */;
- name = "GEDocument.rb: 83";
- rLen = 0;
- rLoc = 2641;
- rType = 0;
- vrLen = 1134;
- vrLoc = 949;
- };
- 37895E840FEB7795005EE5EE /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 37A835730FEACC880064AF4F /* GEGistLibrary.rb */;
- name = "GEGistLibrary.rb: 17";
- rLen = 0;
- rLoc = 539;
- rType = 0;
- vrLen = 697;
- vrLoc = 0;
- };
- 37895E850FEB7795005EE5EE /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 37902D110FD7A3B300DE3FDE /* ConnectionDelegate.rb */;
- name = "ConnectionDelegate.rb: 23";
- rLen = 0;
- rLoc = 419;
- rType = 0;
- vrLen = 551;
- vrLoc = 146;
- };
- 37895E860FEB7795005EE5EE /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 37902BCB0FD5F11400DE3FDE /* GEDocument.rb */;
- name = "GEDocument.rb: 83";
- rLen = 0;
- rLoc = 2641;
- rType = 0;
- vrLen = 549;
- vrLoc = 0;
- };
- 37895E870FEB7795005EE5EE /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 37A835660FEAC9A70064AF4F /* GEGistListDelegate.rb */;
- name = "GEGistListDelegate.rb: 9";
- rLen = 0;
- rLoc = 174;
- rType = 0;
- vrLen = 779;
- vrLoc = 0;
- };
37895E880FEB7795005EE5EE /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 37902BCB0FD5F11400DE3FDE /* GEDocument.rb */;
name = "GEDocument.rb: 83";
rLen = 0;
- rLoc = 2641;
+ rLoc = 2642;
rType = 0;
vrLen = 660;
vrLoc = 76;
@@ -1135,7 +656,7 @@
fRef = 37A835660FEAC9A70064AF4F /* GEGistListDelegate.rb */;
name = "GEGistListDelegate.rb: 13";
rLen = 0;
- rLoc = 293;
+ rLoc = 357;
rType = 0;
vrLen = 779;
vrLoc = 0;
@@ -1165,7 +686,7 @@
fRef = 37902BCB0FD5F11400DE3FDE /* GEDocument.rb */;
name = "GEDocument.rb: 83";
rLen = 0;
- rLoc = 2641;
+ rLoc = 2642;
rType = 0;
vrLen = 549;
vrLoc = 0;
@@ -1205,57 +726,17 @@
fRef = 37902BCB0FD5F11400DE3FDE /* GEDocument.rb */;
name = "GEDocument.rb: 83";
rLen = 0;
- rLoc = 2641;
+ rLoc = 2642;
rType = 0;
vrLen = 549;
vrLoc = 0;
};
- 37895E910FEB7795005EE5EE /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 37A835660FEAC9A70064AF4F /* GEGistListDelegate.rb */;
- name = "GEGistListDelegate.rb: 9";
- rLen = 0;
- rLoc = 174;
- rType = 0;
- vrLen = 779;
- vrLoc = 0;
- };
- 37895E930FEB77AD005EE5EE /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 37A835660FEAC9A70064AF4F /* GEGistListDelegate.rb */;
- name = "GEGistListDelegate.rb: 14";
- rLen = 0;
- rLoc = 293;
- rType = 0;
- vrLen = 670;
- vrLoc = 0;
- };
- 37895E950FEB77ED005EE5EE /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 37902BCB0FD5F11400DE3FDE /* GEDocument.rb */;
- name = "GEDocument.rb: 83";
- rLen = 0;
- rLoc = 2641;
- rType = 0;
- vrLen = 1081;
- vrLoc = 500;
- };
- 37895E960FEB77ED005EE5EE /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 37A835660FEAC9A70064AF4F /* GEGistListDelegate.rb */;
- name = "GEGistListDelegate.rb: 14";
- rLen = 0;
- rLoc = 293;
- rType = 0;
- vrLen = 670;
- vrLoc = 0;
- };
37895E970FEB77ED005EE5EE /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 37A835660FEAC9A70064AF4F /* GEGistListDelegate.rb */;
name = "GEGistListDelegate.rb: 14";
rLen = 0;
- rLoc = 293;
+ rLoc = 357;
rType = 0;
vrLen = 670;
vrLoc = 0;
@@ -1265,32 +746,32 @@
fRef = 37902BCB0FD5F11400DE3FDE /* GEDocument.rb */;
name = "GEDocument.rb: 83";
rLen = 0;
- rLoc = 2641;
+ rLoc = 2642;
rType = 0;
vrLen = 1081;
vrLoc = 500;
};
- 37895E990FEB77ED005EE5EE /* PBXTextBookmark */ = {
+ 37895E9E0FEB7846005EE5EE /* PBXTextBookmark */ = {
isa = PBXTextBookmark;