Add horde block dashboard widget shell and Keychain plugin for dashboard widgets...
authorChuck Hagenbuch <chuck@horde.org>
Tue, 28 Oct 2008 06:36:38 +0000 (02:36 -0400)
committerChuck Hagenbuch <chuck@horde.org>
Tue, 28 Oct 2008 06:36:38 +0000 (02:36 -0400)
59 files changed:
Dashboard/HordeBlock.wdgtproj/CustomImages/WidgetIconLayer.tiff [new file with mode: 0755]
Dashboard/HordeBlock.wdgtproj/project.wdgt/Default.png [new file with mode: 0755]
Dashboard/HordeBlock.wdgtproj/project.wdgt/Horde Block.css [new file with mode: 0644]
Dashboard/HordeBlock.wdgtproj/project.wdgt/Horde Block.html [new file with mode: 0644]
Dashboard/HordeBlock.wdgtproj/project.wdgt/Horde Block.js [new file with mode: 0644]
Dashboard/HordeBlock.wdgtproj/project.wdgt/Icon.png [new file with mode: 0755]
Dashboard/HordeBlock.wdgtproj/project.wdgt/Images/DevelopedWith.png [new file with mode: 0755]
Dashboard/HordeBlock.wdgtproj/project.wdgt/Images/back.png [new file with mode: 0755]
Dashboard/HordeBlock.wdgtproj/project.wdgt/Images/front.png [new file with mode: 0755]
Dashboard/HordeBlock.wdgtproj/project.wdgt/Images/logo.gif [new file with mode: 0755]
Dashboard/HordeBlock.wdgtproj/project.wdgt/Images/popup_left.png [new file with mode: 0755]
Dashboard/HordeBlock.wdgtproj/project.wdgt/Images/popup_middle.png [new file with mode: 0755]
Dashboard/HordeBlock.wdgtproj/project.wdgt/Images/popup_right.png [new file with mode: 0755]
Dashboard/HordeBlock.wdgtproj/project.wdgt/Info.plist [new file with mode: 0644]
Dashboard/HordeBlock.wdgtproj/project.wdgt/KeychainPlugIn.widgetplugin/Contents/Info.plist [new file with mode: 0755]
Dashboard/HordeBlock.wdgtproj/project.wdgt/KeychainPlugIn.widgetplugin/Contents/MacOS/KeychainPlugIn [new file with mode: 0755]
Dashboard/HordeBlock.wdgtproj/project.wdgt/KeychainPlugIn.widgetplugin/Contents/Resources/English.lproj/InfoPlist.strings [new file with mode: 0755]
Dashboard/HordeBlock.wdgtproj/project.wdgt/Parts/GlassButton.js [new file with mode: 0755]
Dashboard/HordeBlock.wdgtproj/project.wdgt/Parts/InfoButton.js [new file with mode: 0755]
Dashboard/HordeBlock.wdgtproj/project.wdgt/Parts/PopupButton.js [new file with mode: 0755]
Dashboard/HordeBlock.wdgtproj/project.wdgt/Parts/Text.js [new file with mode: 0755]
Dashboard/HordeBlock.wdgtproj/project.wdgt/Parts/setup.js [new file with mode: 0644]
Dashboard/HordeBlock.wdgtproj/project.wdgt/Parts/utilities.js [new file with mode: 0755]
Dashboard/HordeBlock.wdgtproj/project.wdgt/en.lproj/InfoPlist.strings [new file with mode: 0644]
Dashboard/HordeBlock.wdgtproj/project.wdgt/en.lproj/localizedStrings.js [new file with mode: 0644]
Dashboard/HordeBlock.wdgtproj/projectInfo.plist [new file with mode: 0644]
Dashboard/KeychainPlugin/English.lproj/InfoPlist.strings [new file with mode: 0644]
Dashboard/KeychainPlugin/Info.plist [new file with mode: 0644]
Dashboard/KeychainPlugin/KeychainPlugIn.h [new file with mode: 0644]
Dashboard/KeychainPlugin/KeychainPlugIn.m [new file with mode: 0644]
Dashboard/KeychainPlugin/KeychainPlugIn.xcodeproj/chuck.mode1v3 [new file with mode: 0755]
Dashboard/KeychainPlugin/KeychainPlugIn.xcodeproj/chuck.pbxuser [new file with mode: 0755]
Dashboard/KeychainPlugin/KeychainPlugIn.xcodeproj/chuck.perspectivev3 [new file with mode: 0755]
Dashboard/KeychainPlugin/KeychainPlugIn.xcodeproj/project.pbxproj [new file with mode: 0755]
Dashboard/KeychainPlugin/KeychainPlugIn_Prefix.pch [new file with mode: 0644]
Dashboard/KeychainPlugin/build/KeychainPlugIn.build/KeychainPlugIn.pbxindex/categories.pbxbtree [new file with mode: 0755]
Dashboard/KeychainPlugin/build/KeychainPlugIn.build/KeychainPlugIn.pbxindex/cdecls.pbxbtree [new file with mode: 0755]
Dashboard/KeychainPlugin/build/KeychainPlugIn.build/KeychainPlugIn.pbxindex/decls.pbxbtree [new file with mode: 0755]
Dashboard/KeychainPlugin/build/KeychainPlugIn.build/KeychainPlugIn.pbxindex/files.pbxbtree [new file with mode: 0755]
Dashboard/KeychainPlugin/build/KeychainPlugIn.build/KeychainPlugIn.pbxindex/imports.pbxbtree [new file with mode: 0755]
Dashboard/KeychainPlugin/build/KeychainPlugIn.build/KeychainPlugIn.pbxindex/pbxindex.header [new file with mode: 0755]
Dashboard/KeychainPlugin/build/KeychainPlugIn.build/KeychainPlugIn.pbxindex/protocols.pbxbtree [new file with mode: 0755]
Dashboard/KeychainPlugin/build/KeychainPlugIn.build/KeychainPlugIn.pbxindex/refs.pbxbtree [new file with mode: 0755]
Dashboard/KeychainPlugin/build/KeychainPlugIn.build/KeychainPlugIn.pbxindex/strings.pbxstrings/control [new file with mode: 0755]
Dashboard/KeychainPlugin/build/KeychainPlugIn.build/KeychainPlugIn.pbxindex/strings.pbxstrings/strings [new file with mode: 0755]
Dashboard/KeychainPlugin/build/KeychainPlugIn.build/KeychainPlugIn.pbxindex/subclasses.pbxbtree [new file with mode: 0755]
Dashboard/KeychainPlugin/build/KeychainPlugIn.build/KeychainPlugIn.pbxindex/symbols0.pbxsymbols [new file with mode: 0755]
Dashboard/KeychainPlugin/build/KeychainPlugIn.build/Release/KeychainPlugIn.build/KeychainPlugIn.dep [new file with mode: 0755]
Dashboard/KeychainPlugin/build/KeychainPlugIn.build/Release/KeychainPlugIn.build/KeychainPlugIn.hmap [new file with mode: 0755]
Dashboard/KeychainPlugin/build/KeychainPlugIn.build/Release/KeychainPlugIn.build/KeychainPlugIn~.dep [new file with mode: 0755]
Dashboard/KeychainPlugin/build/KeychainPlugIn.build/Release/KeychainPlugIn.build/Objects-normal/i386/KeychainPlugIn [new file with mode: 0755]
Dashboard/KeychainPlugin/build/KeychainPlugIn.build/Release/KeychainPlugIn.build/Objects-normal/i386/KeychainPlugIn.LinkFileList [new file with mode: 0755]
Dashboard/KeychainPlugin/build/KeychainPlugIn.build/Release/KeychainPlugIn.build/Objects-normal/i386/KeychainPlugIn.o [new file with mode: 0755]
Dashboard/KeychainPlugin/build/KeychainPlugIn.build/Release/KeychainPlugIn.build/Objects-normal/ppc/KeychainPlugIn [new file with mode: 0755]
Dashboard/KeychainPlugin/build/KeychainPlugIn.build/Release/KeychainPlugIn.build/Objects-normal/ppc/KeychainPlugIn.LinkFileList [new file with mode: 0755]
Dashboard/KeychainPlugin/build/KeychainPlugIn.build/Release/KeychainPlugIn.build/Objects-normal/ppc/KeychainPlugIn.o [new file with mode: 0755]
Dashboard/KeychainPlugin/build/Release/KeychainPlugIn.widgetplugin/Contents/Info.plist [new file with mode: 0755]
Dashboard/KeychainPlugin/build/Release/KeychainPlugIn.widgetplugin/Contents/MacOS/KeychainPlugIn [new file with mode: 0755]
Dashboard/KeychainPlugin/build/Release/KeychainPlugIn.widgetplugin/Contents/Resources/English.lproj/InfoPlist.strings [new file with mode: 0755]

diff --git a/Dashboard/HordeBlock.wdgtproj/CustomImages/WidgetIconLayer.tiff b/Dashboard/HordeBlock.wdgtproj/CustomImages/WidgetIconLayer.tiff
new file mode 100755 (executable)
index 0000000..a047f75
Binary files /dev/null and b/Dashboard/HordeBlock.wdgtproj/CustomImages/WidgetIconLayer.tiff differ
diff --git a/Dashboard/HordeBlock.wdgtproj/project.wdgt/Default.png b/Dashboard/HordeBlock.wdgtproj/project.wdgt/Default.png
new file mode 100755 (executable)
index 0000000..1fc73a3
Binary files /dev/null and b/Dashboard/HordeBlock.wdgtproj/project.wdgt/Default.png differ
diff --git a/Dashboard/HordeBlock.wdgtproj/project.wdgt/Horde Block.css b/Dashboard/HordeBlock.wdgtproj/project.wdgt/Horde Block.css
new file mode 100644 (file)
index 0000000..5816689
--- /dev/null
@@ -0,0 +1,152 @@
+/*
+This file was generated by Dashcode from Apple Inc.
+You may edit this file to customize your Dashboard widget.
+*/
+
+body {
+    margin: 0px;
+}
+
+#frontImg {
+    position: absolute;
+    display: block;
+    top: 0px;
+    left: 0px;
+    bottom: 0px;
+    right: 0px;
+    width: auto;
+    height: auto;
+}
+
+#info {
+    position: absolute;
+    right: 15px;
+    bottom: 18px;
+    width: 13px;
+    height: 13px;
+}
+
+#back {
+    display: none;
+}
+
+#done {
+    position: absolute;
+    right: 21px;
+    bottom: 21px;
+    margin-left: auto;
+    margin-top: auto;
+}
+
+#div {
+    top: auto;
+    left: auto;
+    position: static;
+}
+
+#backImg {
+    position: absolute;
+    display: block;
+    top: 0px;
+    left: 0px;
+    right: 0px;
+    width: auto;
+    bottom: 0px;
+    height: auto;
+}
+
+#horde_password {
+    position: absolute;
+    color: black;
+    font-family: HelveticaNeue;
+    font-size: 10pt;
+    width: 150px;
+    left: 165px;
+    top: 122px;
+}
+
+#horde_username {
+    position: absolute;
+    color: black;
+    font-family: HelveticaNeue;
+    font-size: 10pt;
+    width: 150px;
+    left: 165px;
+    top: 92px;
+}
+
+#horde_url {
+    position: absolute;
+    color: black;
+    font-family: HelveticaNeue;
+    font-size: 10pt;
+    top: 63px;
+    width: 150px;
+    left: 165px;
+}
+
+#horde_url_label {
+    position: absolute;
+    font-size: 10pt;
+    text-overflow: ellipsis;
+    overflow: hidden;
+    color: rgb(255, 255, 255);
+    top: 70px;
+    font-family: Verdana-Bold;
+    left: 25px;
+}
+
+#horde_username_label {
+    position: absolute;
+    font-size: 10pt;
+    text-overflow: ellipsis;
+    overflow: hidden;
+    color: rgb(255, 255, 255);
+    font-family: Verdana-Bold;
+    left: 45px;
+    top: 99px;
+}
+
+#horde_password_label {
+    position: absolute;
+    font-size: 10pt;
+    text-overflow: ellipsis;
+    overflow: hidden;
+    color: rgb(255, 255, 255);
+    font-family: Verdana-Bold;
+    top: 129px;
+    left: 49px;
+}
+
+#horde_password_label1 {
+    position: absolute;
+    font-size: 10pt;
+    text-overflow: ellipsis;
+    overflow: hidden;
+    color: rgb(255, 255, 255);
+    font-family: Verdana-Bold;
+    top: 185px;
+    left: 45px;
+}
+
+#popup {
+    position: absolute;
+    font-family: HelveticaNeue-Bold;
+    font-size: 12px;
+    text-align: left;
+    height: 21px;
+    width: 156px;
+    top: 180px;
+    left: 165px;
+}
+
+#block_content {
+    position: absolute;
+    border-color: black;
+    border-style: solid;
+    border-width: 1px;
+    height: 290px;
+    width: 317px;
+    left: 27px;
+    top: 27px;
+}
diff --git a/Dashboard/HordeBlock.wdgtproj/project.wdgt/Horde Block.html b/Dashboard/HordeBlock.wdgtproj/project.wdgt/Horde Block.html
new file mode 100644 (file)
index 0000000..1e85f69
--- /dev/null
@@ -0,0 +1,43 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head>
+    <meta http-equiv="content-type" content="text/html; charset=utf-8">
+    <style type="text/css" title="AppleStyle">
+        @import "Horde Block.css";
+    </style>
+    <script type="text/javascript" src="file:///System/Library/WidgetResources/AppleClasses/AppleAnimator.js" charset="utf-8"></script>
+    <script type="text/javascript" src="file:///System/Library/WidgetResources/AppleClasses/AppleButton.js" charset="utf-8"></script>
+    <script type="text/javascript" src="file:///System/Library/WidgetResources/AppleClasses/AppleInfoButton.js" charset="utf-8"></script>
+    <script type="text/javascript" src="localizedStrings.js" charset="utf-8"></script>
+    <script type="text/javascript" src="Parts/utilities.js" charset="utf-8"></script>
+    <script type="text/javascript" src="Parts/setup.js" charset="utf-8"></script>
+    <script type="text/javascript" src="Parts/Text.js" charset="utf-8"></script>
+    <script type="text/javascript" src="Parts/InfoButton.js" charset="utf-8"></script>
+    <script type="text/javascript" src="Parts/GlassButton.js" charset="utf-8"></script>
+    <script type="text/javascript" src="Horde Block.js" charset="utf-8"></script>
+<script type="text/javascript" src="Parts/PopupButton.js" charset="utf-8"></script>
+</head>
+<body onload="load();">
+    <div id="front">
+        <img id="frontImg" src="Images/front.png" alt="" apple-locked="true" apple-part="com.apple.Dashcode.part.frontimage" apple-style="image-theme: 1; image-shape: 3; image-opacity: 1.00; image-top-color: 1.0000,1.0000,1.0000; image-bottom-color: 0.6154,0.6154,0.6154; image-radius: 12,12,12,12; image-border: 1; image-border-color: 0.5294,0.5294,0.5294; image-border-width: 1; shine-strength: 0.9; shine-alpha-level: 0.67; shine-height: 0.50; glass-arc-height: 0.06; shadow-include-shadow: 1; shadow-blur: 9.00; shadow-offset: -1.00,-6.00; shadow-color: 0.0000,0.0000,0.0000,0.3333;">
+        <div class="apple-no-children" id="info" apple-part="com.apple.Dashcode.part.infobutton" apple-default-image-visibility="hidden"></div>
+        
+    <div id="block_content"></div>
+    </div>
+    <div id="back">
+        <img id="backImg" src="Images/back.png" alt="" apple-locked="true" apple-part="com.apple.Dashcode.part.backimage" apple-style=" image-radius: 12,12,12,12; image-border: 1; image-border-color: 0.1500,0.1500,0.1500; image-border-width: 3; shadow-include-shadow: 1; shadow-blur: 9.00; shadow-offset: -1.00,-6.00; shadow-color: 0.0000,0.0000,0.0000,0.3333;">
+       
+        
+        <div id="done" class="apple-no-children" apple-part="com.apple.Dashcode.part.glassbutton"></div>
+    <div apple-part="com.apple.Dashcode.part.text" class="apple-text apple-no-children" apple-default-image-visibility="hidden" apple-text-overflow="ellipsis" id="horde_url_label" apple-group="text"></div>
+    <div apple-part="com.apple.Dashcode.part.text" class="apple-text apple-no-children" apple-default-image-visibility="hidden" apple-text-overflow="ellipsis" id="horde_password_label" apple-group="text1"></div>
+    <div apple-part="com.apple.Dashcode.part.text" class="apple-text apple-no-children" apple-default-image-visibility="hidden" apple-text-overflow="ellipsis" id="horde_username_label" apple-group="text2"></div>
+    <input type="text" name="horde_url" value="" class="apple-textfield apple-no-children" apple-part="com.apple.Dashcode.part.textfield" id="horde_url" apple-group="textfield">
+    <input type="text" name="horde_username" value="" class="apple-textfield apple-no-children" apple-part="com.apple.Dashcode.part.textfield" id="horde_username" apple-group="textfield1" maxlength="255">
+    <input type="password" name="horde_password" value="" class="apple-textfield apple-no-children" apple-part="com.apple.Dashcode.part.textfield" id="horde_password" apple-group="textfield2" maxlength="0">
+    <div apple-part="com.apple.Dashcode.part.text" class="apple-text apple-no-children" apple-default-image-visibility="hidden" apple-text-overflow="ellipsis" id="horde_password_label1" apple-group="text1"></div>
+    <div apple-part="com.apple.Dashcode.part.roundedpopupbutton" class="apple-no-children" apple-style="image-theme: 1; image-shape: 3; image-button-type: 1; image-opacity: 1.00; image-top-color: 1.0000,1.0000,1.0000; image-bottom-color: 0.6154,0.6154,0.6154; image-radius: 5,5,5,5; image-border: 1; image-border-color: 0.5294,0.5294,0.5294; image-border-width: 1; shine-strength: 0.90; shine-alpha-level: 0.67; shine-height: 0.50; glass-arc-height: 0.06; shadow-include-shadow: 0; shadow-blur: 3.00;" id="popup" apple-group="popup"></div>
+    </div>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/Dashboard/HordeBlock.wdgtproj/project.wdgt/Horde Block.js b/Dashboard/HordeBlock.wdgtproj/project.wdgt/Horde Block.js
new file mode 100644 (file)
index 0000000..8c61e72
--- /dev/null
@@ -0,0 +1,179 @@
+/**
+ * Called by HTML body element's onload event when the widget is ready to start
+ */
+function load()
+{
+    setupParts();
+}
+
+/**
+ * Called when the widget has been removed from the Dashboard
+ */
+function remove()
+{
+    // Stop any timers to prevent CPU usage
+       
+    // Remove preferences
+    widget.setPreferenceForKey(null, createInstancePreferenceKey('url'));
+    widget.setPreferenceForKey(null, createInstancePreferenceKey('username'));
+}
+
+/**
+ * Called when the widget has been hidden
+ */
+function hide()
+{
+    // Stop any timers to prevent CPU usage
+}
+
+/**
+ * Called when the widget has been shown
+ */
+function show()
+{
+    // Restart any timers that were stopped on hide
+       
+       var url = widget.preferenceForKey(instancePreferenceKey('url'));
+    var username = widget.preferenceForKey(instancePreferenceKey('username'));
+
+       var u = splitURL(url);
+       var password;
+       if (u) {
+               password = KeychainPlugIn.getPassword(username, u.serverName, u.serverPath);
+       }
+}
+
+/**
+ * Called when the widget has been synchronized with .Mac
+ */
+function sync()
+{
+    // Retrieve any preference values that you need to be synchronized here
+       var url = widget.preferenceForKey(instancePreferenceKey('url'));
+    var username = widget.preferenceForKey(instancePreferenceKey('username'));
+       
+       // Retrieve password from Keychain
+       var u = splitURL(url);
+       var password;
+       if (u) {
+               password = KeychainPlugIn.getPassword(username, u.serverName, u.serverPath);
+       }
+       
+       // If prefs are showing, update fields.
+       
+       // Else update displayed block.
+}
+
+/**
+ * Function: showBack(event)
+ * Called when the info button is clicked to show the back of the widget
+ *
+ * event: onClick event from the info button
+ */
+function showBack(event)
+{
+    var front = document.getElementById('front');
+    var back = document.getElementById('back');
+
+    if (window.widget) {
+        widget.prepareForTransition('ToBack');
+    }
+
+    front.style.display = 'none';
+    back.style.display = 'block';
+
+    if (window.widget) {
+        setTimeout('widget.performTransition();', 0);
+    }
+       
+       var url = widget.preferenceForKey(instancePreferenceKey('url'));
+       if (typeof url != 'undefined' && url != '') {
+               document.getElementById('horde_url').value = url;
+       }
+       
+       var username = widget.preferenceForKey(instancePreferenceKey('username'));
+       if (typeof username != 'undefined' && username != '') {
+               document.getElementById('horde_username').value = username;
+       }
+       
+       var u = splitURL(url);
+       if (u) {
+               var password = KeychainPlugIn.getPassword(username, u.serverName, u.serverPath);
+               if (typeof password != 'undefined' && password != '') {
+                       document.getElementById('horde_password').value = password;
+               }
+       }
+}
+
+/**
+ * Function: showFront(event)
+ * Called when the done button is clicked from the back of the widget
+ *
+ * event: onClick event from the done button
+ */
+function showFront(event)
+{
+    var front = document.getElementById('front');
+    var back = document.getElementById('back');
+
+    if (window.widget) {
+        widget.prepareForTransition('ToFront');
+    }
+
+    front.style.display = 'block';
+    back.style.display = 'none';
+       
+       if (window.widget) {
+               // Save preferences
+               var url = document.getElementById('horde_url').value;
+               if (url != '') { 
+                       widget.setPreferenceForKey(url, instancePreferenceKey('url'));
+               }
+
+               var username = document.getElementById('horde_username').value;
+               if (username != '') { 
+                       widget.setPreferenceForKey(username, instancePreferenceKey('username'));
+               }
+               
+               // Save password in Keychain
+               var password = document.getElementById('horde_password').value;
+               var u = splitURL(url);
+               if (password != '' && u) {
+                       KeychainPlugIn.addPassword(password, username, u.serverName, u.serverPath);
+               }
+       }
+       
+    if (window.widget) {
+        setTimeout('widget.performTransition();', 0);
+    }
+}
+
+/**
+ * Unique preference key identifier for this widget instance (allows multiple widget instances with different preferences).
+ */
+function instancePreferenceKey(key)
+{
+       return widget.identifier + '-' + key;
+}
+
+/**
+ * Split a URL into server name and path
+ */
+function splitURL(url)
+{
+       if (!url) {
+               return false;
+       }
+       var m = url.match(/\w+:\/\/([^\/]*)\/(.*)/);
+       if (!m || !m.length || m.length != 3) {
+               return false;
+       }
+       return { serverName: m[1], serverPath: m[2] };
+}
+
+if (window.widget) {
+    widget.onremove = remove;
+    widget.onhide = hide;
+    widget.onshow = show;
+    widget.onsync = sync;
+}
diff --git a/Dashboard/HordeBlock.wdgtproj/project.wdgt/Icon.png b/Dashboard/HordeBlock.wdgtproj/project.wdgt/Icon.png
new file mode 100755 (executable)
index 0000000..1860307
Binary files /dev/null and b/Dashboard/HordeBlock.wdgtproj/project.wdgt/Icon.png differ
diff --git a/Dashboard/HordeBlock.wdgtproj/project.wdgt/Images/DevelopedWith.png b/Dashboard/HordeBlock.wdgtproj/project.wdgt/Images/DevelopedWith.png
new file mode 100755 (executable)
index 0000000..e26cf34
Binary files /dev/null and b/Dashboard/HordeBlock.wdgtproj/project.wdgt/Images/DevelopedWith.png differ
diff --git a/Dashboard/HordeBlock.wdgtproj/project.wdgt/Images/back.png b/Dashboard/HordeBlock.wdgtproj/project.wdgt/Images/back.png
new file mode 100755 (executable)
index 0000000..92af602
Binary files /dev/null and b/Dashboard/HordeBlock.wdgtproj/project.wdgt/Images/back.png differ
diff --git a/Dashboard/HordeBlock.wdgtproj/project.wdgt/Images/front.png b/Dashboard/HordeBlock.wdgtproj/project.wdgt/Images/front.png
new file mode 100755 (executable)
index 0000000..6a2b09c
Binary files /dev/null and b/Dashboard/HordeBlock.wdgtproj/project.wdgt/Images/front.png differ
diff --git a/Dashboard/HordeBlock.wdgtproj/project.wdgt/Images/logo.gif b/Dashboard/HordeBlock.wdgtproj/project.wdgt/Images/logo.gif
new file mode 100755 (executable)
index 0000000..1d5b1d2
Binary files /dev/null and b/Dashboard/HordeBlock.wdgtproj/project.wdgt/Images/logo.gif differ
diff --git a/Dashboard/HordeBlock.wdgtproj/project.wdgt/Images/popup_left.png b/Dashboard/HordeBlock.wdgtproj/project.wdgt/Images/popup_left.png
new file mode 100755 (executable)
index 0000000..3338512
Binary files /dev/null and b/Dashboard/HordeBlock.wdgtproj/project.wdgt/Images/popup_left.png differ
diff --git a/Dashboard/HordeBlock.wdgtproj/project.wdgt/Images/popup_middle.png b/Dashboard/HordeBlock.wdgtproj/project.wdgt/Images/popup_middle.png
new file mode 100755 (executable)
index 0000000..f44fbbf
Binary files /dev/null and b/Dashboard/HordeBlock.wdgtproj/project.wdgt/Images/popup_middle.png differ
diff --git a/Dashboard/HordeBlock.wdgtproj/project.wdgt/Images/popup_right.png b/Dashboard/HordeBlock.wdgtproj/project.wdgt/Images/popup_right.png
new file mode 100755 (executable)
index 0000000..5b82188
Binary files /dev/null and b/Dashboard/HordeBlock.wdgtproj/project.wdgt/Images/popup_right.png differ
diff --git a/Dashboard/HordeBlock.wdgtproj/project.wdgt/Info.plist b/Dashboard/HordeBlock.wdgtproj/project.wdgt/Info.plist
new file mode 100644 (file)
index 0000000..78671b2
--- /dev/null
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+       <key>CFBundleDevelopmentRegion</key>
+       <string>English</string>
+       <key>CFBundleDisplayName</key>
+       <string>Horde Block</string>
+       <key>CFBundleIdentifier</key>
+       <string>org.horde.dashboard.Block</string>
+       <key>CFBundleName</key>
+       <string>Horde Block</string>
+       <key>CFBundleShortVersionString</key>
+       <string>1.0</string>
+       <key>CFBundleVersion</key>
+       <string>1.0</string>
+       <key>CloseBoxInsetX</key>
+       <integer>15</integer>
+       <key>CloseBoxInsetY</key>
+       <integer>15</integer>
+       <key>Height</key>
+       <integer>346</integer>
+       <key>MainHTML</key>
+       <string>Horde Block.html</string>
+       <key>Plugin</key>
+       <string>KeychainPlugIn.widgetplugin</string>
+       <key>Width</key>
+       <integer>374</integer>
+</dict>
+</plist>
diff --git a/Dashboard/HordeBlock.wdgtproj/project.wdgt/KeychainPlugIn.widgetplugin/Contents/Info.plist b/Dashboard/HordeBlock.wdgtproj/project.wdgt/KeychainPlugIn.widgetplugin/Contents/Info.plist
new file mode 100755 (executable)
index 0000000..6ec420e
--- /dev/null
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+       <key>CFBundleDevelopmentRegion</key>
+       <string>English</string>
+       <key>CFBundleExecutable</key>
+       <string>KeychainPlugIn</string>
+       <key>CFBundleIdentifier</key>
+       <string>org.horde.dashboard.KeychainPlugin</string>
+       <key>CFBundleInfoDictionaryVersion</key>
+       <string>1.0</string>
+       <key>CFBundleName</key>
+       <string>KeychainPlugIn</string>
+       <key>CFBundlePackageType</key>
+       <string>BNDL</string>
+       <key>CFBundleSignature</key>
+       <string>????</string>
+       <key>CFBundleVersion</key>
+       <string>1.0</string>
+</dict>
+</plist>
diff --git a/Dashboard/HordeBlock.wdgtproj/project.wdgt/KeychainPlugIn.widgetplugin/Contents/MacOS/KeychainPlugIn b/Dashboard/HordeBlock.wdgtproj/project.wdgt/KeychainPlugIn.widgetplugin/Contents/MacOS/KeychainPlugIn
new file mode 100755 (executable)
index 0000000..37bb788
Binary files /dev/null and b/Dashboard/HordeBlock.wdgtproj/project.wdgt/KeychainPlugIn.widgetplugin/Contents/MacOS/KeychainPlugIn differ
diff --git a/Dashboard/HordeBlock.wdgtproj/project.wdgt/KeychainPlugIn.widgetplugin/Contents/Resources/English.lproj/InfoPlist.strings b/Dashboard/HordeBlock.wdgtproj/project.wdgt/KeychainPlugIn.widgetplugin/Contents/Resources/English.lproj/InfoPlist.strings
new file mode 100755 (executable)
index 0000000..7934d23
Binary files /dev/null and b/Dashboard/HordeBlock.wdgtproj/project.wdgt/KeychainPlugIn.widgetplugin/Contents/Resources/English.lproj/InfoPlist.strings differ
diff --git a/Dashboard/HordeBlock.wdgtproj/project.wdgt/Parts/GlassButton.js b/Dashboard/HordeBlock.wdgtproj/project.wdgt/Parts/GlassButton.js
new file mode 100755 (executable)
index 0000000..cedbe51
--- /dev/null
@@ -0,0 +1,33 @@
+/*
+© Copyright 2006-2007 Apple Inc.  All rights reserved.
+
+IMPORTANT:  This Apple software ("Apple Software") is supplied to you in consideration of your agreement to the following terms. Your use, installation and/or redistribution of this Apple Software constitutes acceptance of these terms. If you do not agree with these terms, please do not use, install, or redistribute this Apple Software.
+
+Provided you comply with all of the following terms, Apple grants you a personal, non-exclusive license, under Apple’s copyrights in the Apple Software, to use, reproduce, and redistribute the Apple Software for the sole purpose of creating Dashboard widgets for Mac OS X. If you redistribute the Apple Software, you must retain this entire notice in all such redistributions.
+
+You may not use the name, trademarks, service marks or logos of Apple to endorse or promote products that include the Apple Software without the prior written permission of Apple. Except as expressly stated in this notice, no other rights or licenses, express or implied, are granted by Apple herein, including but not limited to any patent rights that may be infringed by your products that incorporate the Apple Software or by other works in which the Apple Software may be incorporated.
+
+The Apple Software is provided on an "AS IS" basis.  APPLE MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPPLE SOFTWARE OR ITS USE AND OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.
+
+IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION, AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+function CreateGlassButton(buttonID, spec)
+{
+       var buttonElement = document.getElementById(buttonID);
+
+       if (!buttonElement.loaded) {
+               buttonElement.loaded = true;
+
+               var text = spec.text || '';
+               if (window.getLocalizedString) text = getLocalizedString(text);
+
+               var onclick = spec.onclick || null;
+               try { onclick = eval(onclick); } catch (e) { onclick = null; }
+
+               buttonElement.object = new AppleGlassButton(buttonElement, text, onclick);
+               buttonElement.object.setEnabled(!spec.disabled);
+       }
+
+       return buttonElement.object;
+}
diff --git a/Dashboard/HordeBlock.wdgtproj/project.wdgt/Parts/InfoButton.js b/Dashboard/HordeBlock.wdgtproj/project.wdgt/Parts/InfoButton.js
new file mode 100755 (executable)
index 0000000..3edf91f
--- /dev/null
@@ -0,0 +1,29 @@
+/*
+© Copyright 2006-2007 Apple Inc.  All rights reserved.
+
+IMPORTANT:  This Apple software ("Apple Software") is supplied to you in consideration of your agreement to the following terms. Your use, installation and/or redistribution of this Apple Software constitutes acceptance of these terms. If you do not agree with these terms, please do not use, install, or redistribute this Apple Software.
+
+Provided you comply with all of the following terms, Apple grants you a personal, non-exclusive license, under Apple’s copyrights in the Apple Software, to use, reproduce, and redistribute the Apple Software for the sole purpose of creating Dashboard widgets for Mac OS X. If you redistribute the Apple Software, you must retain this entire notice in all such redistributions.
+
+You may not use the name, trademarks, service marks or logos of Apple to endorse or promote products that include the Apple Software without the prior written permission of Apple. Except as expressly stated in this notice, no other rights or licenses, express or implied, are granted by Apple herein, including but not limited to any patent rights that may be infringed by your products that incorporate the Apple Software or by other works in which the Apple Software may be incorporated.
+
+The Apple Software is provided on an "AS IS" basis.  APPLE MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPPLE SOFTWARE OR ITS USE AND OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.
+
+IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION, AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+function CreateInfoButton(flipperID, spec)
+{
+       var flipElement = document.getElementById(flipperID);
+
+       if (!flipElement.loaded) {
+               flipElement.loaded = true;
+
+               var onclick = spec.onclick || null;
+               try { onclick = eval(onclick); } catch (e) { onclick = null; }
+
+               flipElement.object = new AppleInfoButton(flipElement, document.getElementById(spec.frontID), spec.foregroundStyle, spec.backgroundStyle, onclick);
+       }
+
+       return flipElement.object;
+}
diff --git a/Dashboard/HordeBlock.wdgtproj/project.wdgt/Parts/PopupButton.js b/Dashboard/HordeBlock.wdgtproj/project.wdgt/Parts/PopupButton.js
new file mode 100755 (executable)
index 0000000..bb9705c
--- /dev/null
@@ -0,0 +1,145 @@
+/*
+Copyright Â© 2006-2007 Apple Inc.  All Rights Reserved.
+
+IMPORTANT:  This Apple software ("Apple Software") is supplied to you in consideration of your agreement to the following terms. Your use, installation and/or redistribution of this Apple Software constitutes acceptance of these terms. If you do not agree with these terms, please do not use, install, or redistribute this Apple Software.
+
+Provided you comply with all of the following terms, Apple grants you a personal, non-exclusive license, under Apple’s copyrights in the Apple Software, to use, reproduce, and redistribute the Apple Software for the sole purpose of creating Dashboard widgets for Mac OS X. If you redistribute the Apple Software, you must retain this entire notice in all such redistributions.
+
+You may not use the name, trademarks, service marks or logos of Apple to endorse or promote products that include the Apple Software without the prior written permission of Apple. Except as expressly stated in this notice, no other rights or licenses, express or implied, are granted by Apple herein, including but not limited to any patent rights that may be infringed by your products that incorporate the Apple Software or by other works in which the Apple Software may be incorporated.
+
+The Apple Software is provided on an "AS IS" basis.  APPLE MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPPLE SOFTWARE OR ITS USE AND OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.
+
+IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION, AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+function CreatePopupButton(popupID, spec)
+{
+       var popupElement = document.getElementById(popupID);
+       if (!popupElement.loaded) {
+               popupElement.loaded = true;
+               popupElement.object = new PopupButton(popupElement, popupID, spec);
+               return popupElement.object;
+       }
+}
+
+
+function PopupButton(popupElement, popupID, spec)
+{
+       var imagePrefix = "Images/" + popupID + "_";
+       var leftImageWidth = spec.leftImageWidth || 0;
+       var rightImageWidth = spec.rightImageWidth || 0;
+       var width = getElementWidth(popupElement) || 20;
+       var height = getElementHeight(popupElement) || 20;
+       var _self = this;
+
+       // setup the button
+       this.button = new AppleButton(popupElement, '', height, imagePrefix + "left.png", imagePrefix + "left_clicked.png", leftImageWidth, imagePrefix + "middle.png", imagePrefix + "middle_clicked.png", imagePrefix + "right.png", imagePrefix + "right_clicked.png", rightImageWidth, null);
+       this.button._container.childNodes.item(2).style.width = rightImageWidth + "px";
+       this.button.textElement.style.width = (width - (leftImageWidth + rightImageWidth)) + "px";
+       this.button.textElement.style.textIndent = Math.max(10-leftImageWidth, 0) + "px";
+       var eventsDiv = document.createElement("div");
+       eventsDiv.setAttribute("style", "position: absolute; left: 0; top: 0; width: 100%; height: 100%");
+       popupElement.appendChild(eventsDiv);
+       var clickHandler = function(event) {
+               _self.select.dispatchEvent(event);
+               event.stopPropagation();
+               event.preventDefault();
+       }
+       eventsDiv.addEventListener("mousedown", clickHandler, true);
+
+
+       // setup the select
+       this.select = document.createElement("select");
+       var onchange = spec.onchange || null;
+       try { onchange = eval(onchange); } catch (e) { onchange = null; }
+       this.onchange = onchange;
+       this._setOptionsStr(spec.options);
+       this.select.setAttribute("style", "position: absolute; left: 0; top: 0; width: 100%; height: 100%; opacity: 0;");
+       popupElement.appendChild(this.select);
+       this.select.style.top = Math.max((height - getElementHeight(this.select)) / 2, 0) + "px";
+
+       // onchange event handler
+       this.select.onchange = function (event) {
+               var selectedOption = this.options[this.selectedIndex];
+               if (selectedOption) {
+                       _self.button.textElement.innerText = selectedOption.text;
+                       // if it is a real event, forward it to the custom handler
+                       if (_self.onchange && event) {
+                               _self.onchange(event);
+                       }
+               }
+       };
+
+       this.setEnabled(!spec.disabled);
+}
+
+PopupButton.prototype.getValue = function()
+{
+       return this.select.value;
+}
+
+PopupButton.prototype.getSelectedIndex = function()
+{
+       return this.select.selectedIndex;
+}
+
+PopupButton.prototype.setSelectedIndex = function(index)
+{
+       this.select.selectedIndex = index;
+       this.select.onchange(null);
+}
+
+PopupButton.prototype.setEnabled = function(enabled)
+{
+       this.button.setEnabled(enabled);
+       this.select.disabled=!enabled;
+}
+
+PopupButton.prototype.setOptions = function(options, shouldLocalize)
+{
+       if (!options || !(options instanceof Array)) options = [];
+       var text = '';
+
+       this.select.options.length = 0;
+       for (var i = 0; i < options.length; i++) {
+               var defaultSelected = false;
+               var optionLabel = '';
+               var optionValue = null;
+               if ((options[i]) instanceof Array) {
+                       if (options[i].length > 0) {
+                               optionLabel = options[i][0];
+                               if (options[i].length > 1) {
+                                       optionValue = options[i][1];
+                                       if (options[i].length > 2 && options[i][2]) {
+                                               defaultSelected = true;
+                                       }
+                               }
+                       }
+               }
+               else {
+                       optionLabel = options[i];
+               }
+               
+               if (shouldLocalize) {
+                       optionLabel = getLocalizedString(optionLabel);
+               }
+               if (i==0 || defaultSelected) {
+                       text = optionLabel;
+               }
+               if (!optionValue || optionValue.length == 0) {
+                       optionValue = optionLabel;
+               }
+        
+               this.select.options[this.select.length] = new Option(optionLabel, optionValue, defaultSelected);
+       }
+       this.button.textElement.innerText = text;
+}
+
+PopupButton.prototype._setOptionsStr = function(optionsStr)
+{
+       var options = null;
+       if (typeof optionsStr == "string") {
+               options = eval(optionsStr);
+       }
+       this.setOptions(options, true);
+}
diff --git a/Dashboard/HordeBlock.wdgtproj/project.wdgt/Parts/Text.js b/Dashboard/HordeBlock.wdgtproj/project.wdgt/Parts/Text.js
new file mode 100755 (executable)
index 0000000..5eef03a
--- /dev/null
@@ -0,0 +1,21 @@
+/*
+Copyright Â© 2006-2007 Apple Inc.  All Rights Reserved.
+
+IMPORTANT:  This Apple software ("Apple Software") is supplied to you in consideration of your agreement to the following terms. Your use, installation and/or redistribution of this Apple Software constitutes acceptance of these terms. If you do not agree with these terms, please do not use, install, or redistribute this Apple Software.
+
+Provided you comply with all of the following terms, Apple grants you a personal, non-exclusive license, under Apple’s copyrights in the Apple Software, to use, reproduce, and redistribute the Apple Software for the sole purpose of creating Dashboard widgets for Mac OS X. If you redistribute the Apple Software, you must retain this entire notice in all such redistributions.
+
+You may not use the name, trademarks, service marks or logos of Apple to endorse or promote products that include the Apple Software without the prior written permission of Apple. Except as expressly stated in this notice, no other rights or licenses, express or implied, are granted by Apple herein, including but not limited to any patent rights that may be infringed by your products that incorporate the Apple Software or by other works in which the Apple Software may be incorporated.
+
+The Apple Software is provided on an "AS IS" basis.  APPLE MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPPLE SOFTWARE OR ITS USE AND OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.
+
+IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION, AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+function CreateText(textID, spec)
+{
+       var text = spec.text || '';
+       if (window.getLocalizedString) text = getLocalizedString(text);
+
+       document.getElementById(textID).innerText = text; 
+}
diff --git a/Dashboard/HordeBlock.wdgtproj/project.wdgt/Parts/setup.js b/Dashboard/HordeBlock.wdgtproj/project.wdgt/Parts/setup.js
new file mode 100644 (file)
index 0000000..45aeb17
--- /dev/null
@@ -0,0 +1,14 @@
+// This file was generated by Dashcode from Apple Inc.
+// DO NOT EDIT - This file is maintained automatically by Dashcode.
+function setupParts() {
+    if (setupParts.called) return;
+    setupParts.called = true;
+    CreateInfoButton('info', { frontID: 'front', foregroundStyle: 'white', backgroundStyle: 'black', onclick: 'showBack' });
+    CreateGlassButton('done', { text: 'Done', onclick: 'showFront' });
+    CreateText('horde_url_label', { text: 'Your Horde Server' });
+    CreateText('horde_password_label', { text: 'Your password' });
+    CreateText('horde_username_label', { text: 'Your Username' });
+    CreateText('horde_password_label1', { text: 'Choose a Block' });
+    CreatePopupButton('popup', { options: unescape('[%27Item 1%27%2C %27Item 2%27%2C %27Item 3%27]'), rightImageWidth: 16, leftImageWidth: 5 });
+}
+window.addEventListener('load', setupParts, false);
diff --git a/Dashboard/HordeBlock.wdgtproj/project.wdgt/Parts/utilities.js b/Dashboard/HordeBlock.wdgtproj/project.wdgt/Parts/utilities.js
new file mode 100755 (executable)
index 0000000..646fb4e
--- /dev/null
@@ -0,0 +1,113 @@
+// This file was generated by Dashcode from Apple Inc.
+// DO NOT EDIT - This file is maintained by Dashcode.
+
+//
+// getLocalizedString(string)
+// Pulls a string out an array named localizedStrings.  Each language project directory in this widget
+// contains a file named "localizedStrings.js", which, in turn, contains an array called localizedStrings.
+// This method queries the array of the file of whichever language has highest precedence, according to
+// your preference set in the language toolbar item
+//
+// string: the key to the array
+//
+function getLocalizedString(string)
+{
+       try { string = localizedStrings[string] || string; } catch (e) {}
+       return string;
+}
+
+//
+// createInstancePreferenceKey(key)
+// Returns a unique preference key that is based on a instance of an opened widget.
+// The returned value can then be used in widget.setPreferenceForKey()
+// and widget.preferenceForKey() so that the value that is set or retrieved is
+// only for a particular opened widget.
+//
+// key: preference key
+//
+function createInstancePreferenceKey(key)
+{
+       return widget.identifier + "-" + key;
+}
+
+//
+// getElementHeight(mainElement)
+// Get the height of a part even if it's hidden (by 'display: none').
+//
+// mainElement: Part element
+//
+function getElementHeight(mainElement)
+{
+       var height = mainElement.offsetHeight;
+       
+       if (!height || height == 0) {
+               height = getElementSize(mainElement).height;
+       }
+       
+       return height;  
+}
+
+//
+// getElementWidth(mainElement)
+// Get the width of a part even if it's hidden (by 'display: none').
+//
+// mainElement: Part element
+//
+function getElementWidth(mainElement)
+{
+       var width = mainElement.offsetWidth;
+       
+       if (!width || width == 0) {
+               width = getElementSize(mainElement).width;
+       }
+       
+       return width;   
+}
+
+//
+// getElementSize(mainElement)
+// Get the size of a part even if it's hidden (by 'display: none').
+//
+// mainElement: Part element
+//
+function getElementSize(mainElement)
+{
+       var width = mainElement.offsetWidth;
+       var height = mainElement.offsetHeight;
+
+       if (!width || width == 0 || !height || height == 0) {
+               var displayNoneElements = new Array();
+
+               var parentNode = mainElement;
+               while (parentNode && (parentNode != document)) {
+                       var displayValue;
+                       var style = document.defaultView.getComputedStyle(parentNode, null);
+                       if (style) {
+                               displayValue = style.getPropertyValue("display");
+                       } else {
+                               // for Tiger
+                               displayValue = parentNode.style.display;
+                       }
+
+                       if (displayValue != "block") {
+                               displayNoneElements.push({node:parentNode, display:parentNode.style.display});
+                               parentNode.style.display = "block";
+                       }
+                       parentNode = parentNode.parentNode;
+               }
+
+               if (!width || width == 0) width = mainElement.offsetWidth;
+               if (!height || height == 0) height = mainElement.offsetHeight;
+
+               for (var i=0; i<displayNoneElements.length; i++) {
+                       var element = displayNoneElements[i].node;
+                       element.style.display = displayNoneElements[i].display;
+                       // clean up
+                       if (element.getAttribute("style") == "") {
+                               element.removeAttribute("style");
+                       }
+               }
+       }
+
+       return {width:width, height:height};
+}
diff --git a/Dashboard/HordeBlock.wdgtproj/project.wdgt/en.lproj/InfoPlist.strings b/Dashboard/HordeBlock.wdgtproj/project.wdgt/en.lproj/InfoPlist.strings
new file mode 100644 (file)
index 0000000..03d52e0
Binary files /dev/null and b/Dashboard/HordeBlock.wdgtproj/project.wdgt/en.lproj/InfoPlist.strings differ
diff --git a/Dashboard/HordeBlock.wdgtproj/project.wdgt/en.lproj/localizedStrings.js b/Dashboard/HordeBlock.wdgtproj/project.wdgt/en.lproj/localizedStrings.js
new file mode 100644 (file)
index 0000000..f2c753e
--- /dev/null
@@ -0,0 +1,2 @@
+var localizedStrings = new Object;
+
diff --git a/Dashboard/HordeBlock.wdgtproj/projectInfo.plist b/Dashboard/HordeBlock.wdgtproj/projectInfo.plist
new file mode 100644 (file)
index 0000000..fcaa3ff
--- /dev/null
@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+       <key>CYProjectFormatVersion</key>
+       <integer>1</integer>
+       <key>Steps</key>
+       <array>
+               <dict>
+                       <key>Completed</key>
+                       <false/>
+                       <key>Detail</key>
+                       <string>Custom_Step_1_Detail</string>
+                       <key>MainHelp</key>
+                       <string>Tag(200)</string>
+                       <key>Required</key>
+                       <true/>
+                       <key>Title</key>
+                       <string>Custom_Step_1_Title</string>
+               </dict>
+               <dict>
+                       <key>Completed</key>
+                       <false/>
+                       <key>Detail</key>
+                       <string>Custom_Step_2_Detail</string>
+                       <key>MainHelp</key>
+                       <string>Tag(201)</string>
+                       <key>Required</key>
+                       <true/>
+                       <key>Title</key>
+                       <string>Custom_Step_2_Title</string>
+               </dict>
+               <dict>
+                       <key>Completed</key>
+                       <false/>
+                       <key>Detail</key>
+                       <string>Custom_Step_3_Detail</string>
+                       <key>MainHelp</key>
+                       <string>Tag(202)</string>
+                       <key>Required</key>
+                       <true/>
+                       <key>Title</key>
+                       <string>Custom_Step_3_Title</string>
+               </dict>
+               <dict>
+                       <key>Completed</key>
+                       <false/>
+                       <key>Detail</key>
+                       <string>Custom_Step_4_Detail</string>
+                       <key>MainHelp</key>
+                       <string>Tag(203)</string>
+                       <key>Recommended</key>
+                       <true/>
+                       <key>Title</key>
+                       <string>Custom_Step_4_Title</string>
+               </dict>
+               <dict>
+                       <key>Completed</key>
+                       <false/>
+                       <key>Detail</key>
+                       <string>Custom_Step_5_Detail</string>
+                       <key>MainHelp</key>
+                       <string>Tag(204)</string>
+                       <key>Recommended</key>
+                       <true/>
+                       <key>Title</key>
+                       <string>Custom_Step_5_Title</string>
+               </dict>
+               <dict>
+                       <key>Completed</key>
+                       <false/>
+                       <key>Detail</key>
+                       <string>Custom_Step_6_Detail</string>
+                       <key>MainHelp</key>
+                       <string>Tag(205)</string>
+                       <key>Recommended</key>
+                       <true/>
+                       <key>Title</key>
+                       <string>Custom_Step_6_Title</string>
+               </dict>
+       </array>
+       <key>TemplateIdentifier</key>
+       <string>com.apple.Dashcode.template.custom</string>
+       <key>WidgetIconIncludeLayer</key>
+       <true/>
+       <key>WidgetIconLayerPoint</key>
+       <string>{11.5, 12.5}</string>
+       <key>WidgetIconLayerSize</key>
+       <string>{75, 75}</string>
+</dict>
+</plist>
diff --git a/Dashboard/KeychainPlugin/English.lproj/InfoPlist.strings b/Dashboard/KeychainPlugin/English.lproj/InfoPlist.strings
new file mode 100644 (file)
index 0000000..7934d23
Binary files /dev/null and b/Dashboard/KeychainPlugin/English.lproj/InfoPlist.strings differ
diff --git a/Dashboard/KeychainPlugin/Info.plist b/Dashboard/KeychainPlugin/Info.plist
new file mode 100644 (file)
index 0000000..6f38afe
--- /dev/null
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+       <key>CFBundleDevelopmentRegion</key>
+       <string>English</string>
+       <key>CFBundleExecutable</key>
+       <string>KeychainPlugIn</string>
+       <key>CFBundleIconFile</key>
+       <string></string>
+       <key>CFBundleIdentifier</key>
+       <string>org.horde.dashboard.KeychainPlugin</string>
+       <key>CFBundleInfoDictionaryVersion</key>
+       <string>1.0</string>
+       <key>CFBundleName</key>
+       <string>${PRODUCT_NAME}</string>
+       <key>CFBundlePackageType</key>
+       <string>BNDL</string>
+       <key>CFBundleSignature</key>
+       <string>????</string>
+       <key>CFBundleVersion</key>
+       <string>1.0</string>
+       <key>NSPrincipalClass</key>
+       <string></string>
+</dict>
+</plist>
diff --git a/Dashboard/KeychainPlugin/KeychainPlugIn.h b/Dashboard/KeychainPlugin/KeychainPlugIn.h
new file mode 100644 (file)
index 0000000..659fd4d
--- /dev/null
@@ -0,0 +1,27 @@
+/**
+ * $Horde: $
+ *
+ * KeychainPlugIn.h
+ *
+ * Dashboard Widget plug-in that stores and retrieves passwords using Keychain.
+ *
+ * Copyright 2003-2007 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file COPYING for license information (LGPL). If you
+ * did not receive this file, see http://opensource.org/licenses/lgpl-license.php
+ */
+
+#import <Cocoa/Cocoa.h>
+#import <WebKit/WebKit.h>
+#include <Security/Security.h>
+
+@interface KeychainPlugIn : NSObject {
+}
+
+- (BOOL) changePassword: (SecKeychainItemRef) itemRef to: (NSString *) password;
+
+// JavaScript-ready methods
+- (NSString *) web_getPassword: (NSString *) username serverName: (NSString *) serverName serverPath: (NSString *) serverPath itemReference: (SecKeychainItemRef *) itemRef;
+- (BOOL) web_addPassword: (NSString *) password forUser: (NSString *) username serverName: (NSString *) serverName serverPath: (NSString *) serverPath;
+
+@end
diff --git a/Dashboard/KeychainPlugin/KeychainPlugIn.m b/Dashboard/KeychainPlugin/KeychainPlugIn.m
new file mode 100644 (file)
index 0000000..e4ac96f
--- /dev/null
@@ -0,0 +1,163 @@
+/**
+ * $Horde: $
+ *
+ * KeychainPlugIn.m
+ *
+ * Dashboard Widget plug-in that stores and retrieves passwords using Keychain.
+ *
+ * Copyright 2003-2007 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file COPYING for license information (LGPL). If you
+ * did not receive this file, see http://opensource.org/licenses/lgpl-license.php
+ */
+
+#import "KeychainPlugIn.h"
+
+@implementation KeychainPlugIn
+
+#pragma mark *** WidgetPlugin methods ***
+
+// initWithWebView is called as the Dashboard widget and its WebView
+// are initialized, which is when the widget plug-in is loaded
+// This is just an object initializer; DO NOT use the passed WebView
+// to manipulate WebScriptObjects or anything in the WebView's hierarchy
+- (id) initWithWebView:(WebView*)webView {
+    self = [super init];
+    return self;
+}
+
+#pragma mark *** WebScripting methods ***
+
+// windowScriptObjectAvailable passes the JavaScript window object referring
+// to the plug-in's parent window (in this case, the Dashboard widget)
+// We use that to register our plug-in as a var of the window object;
+// This allows the plug-in to be referenced from JavaScript via 
+// window.<plugInName>, or just <plugInName>
+- (void) windowScriptObjectAvailable:(WebScriptObject*)webScriptObject {
+    [webScriptObject setValue:self forKey:@"KeychainPlugIn"];
+}
+
+// Prevent direct key access from JavaScript
+// Write accessor methods and expose those if necessary
++ (BOOL) isKeyExcludedFromWebScript:(const char*)key {
+       return YES;
+}
+
+// Used for convenience of WebScripting names below
+NSString * const kWebSelectorPrefix = @"web_";
+
+// This is where prefixing our JavaScript methods with web_ pays off:
+// instead of a huge if/else trail to decide which methods to exclude,
+// just check the selector names for kWebSelectorPrefix
++ (BOOL) isSelectorExcludedFromWebScript:(SEL)aSelector {
+    return !([NSStringFromSelector(aSelector) hasPrefix:kWebSelectorPrefix]);
+}
+
+// Another simple implementation: take the first token of the Obj-C method signature
+// and remove the web_ prefix. So web_getPassword is called from JavaScript as
+// KeychainPlugIn.getPassword
++ (NSString *) webScriptNameForSelector:(SEL)aSelector {
+    NSString* selName = NSStringFromSelector(aSelector);
+       
+    if ([selName hasPrefix:kWebSelectorPrefix] && ([selName length] > [kWebSelectorPrefix length])) {
+        return [[[selName substringFromIndex:[kWebSelectorPrefix length]] componentsSeparatedByString: @":"] objectAtIndex: 0];
+    }
+    return nil;
+}
+
+- (BOOL) changePassword: (SecKeychainItemRef) itemRef to: (NSString *) password {
+    if (!password || !itemRef) {
+        return NO;
+    }
+    
+    const char *pass = [password cStringUsingEncoding: [NSString defaultCStringEncoding]];
+    
+    OSErr status = SecKeychainItemModifyContent(itemRef, nil, strlen(pass), pass);
+    if (status == noErr) {
+        return YES;
+    }
+    
+    return NO;
+}
+
+#pragma mark *** Web-exposed methods ***
+
+- (NSString *) web_getPassword: (NSString *) username serverName: (NSString *) serverName serverPath: (NSString *) serverPath itemReference: (SecKeychainItemRef *) itemRef {
+    const char *host = [serverName UTF8String];
+    const char *path = [serverPath UTF8String];
+    const char *user = [username UTF8String];
+    void *password = NULL;
+    UInt32 passwordLength = 0;
+    
+    OSStatus findResult = SecKeychainFindInternetPassword(
+        NULL, // default keychain
+        strlen(host), // server name length
+        host, // server name
+        0, // security domain length
+        NULL, // security domain
+        strlen(user), // account name length
+        user, // account name
+        strlen(path), // path length
+        path, // path
+        0, // port
+        kSecProtocolTypeHTTP, // protocol
+        kSecAuthenticationTypeDefault, // authentication type
+        &passwordLength, // password length
+        &password, // password
+        itemRef // item ref
+    );
+    
+    if (findResult == noErr) {
+        NSString *returnString = [NSString stringWithCString: password length: passwordLength];
+        SecKeychainItemFreeContent(NULL, password);
+        return returnString;
+    }
+    
+    return nil;
+}
+
+- (BOOL) web_addPassword: (NSString *) password forUser: (NSString *) username serverName: (NSString *) serverName serverPath: (NSString *) serverPath {
+    const char *host = [serverName UTF8String];
+    const char *path = [serverPath UTF8String];
+    const char *user = [username UTF8String];
+    const char *pass = [password UTF8String];
+    SecKeychainItemRef itemRef;
+       
+       NSLog(@"%s", host);
+    
+    NSString *currentPassword = [self web_getPassword: username serverName: serverName serverPath: serverPath itemReference: &itemRef];
+    if (currentPassword) {
+        if ([currentPassword isEqualToString: password]) {
+            return YES;
+        }
+        
+        return [self changePassword: itemRef to: password];
+    }
+    
+    OSStatus addResult = SecKeychainAddInternetPassword(
+        NULL, // default keychain
+        strlen(host), // server name length
+        host, // server name
+        0, // security domain length
+        NULL, // security domain
+        strlen(user), // account name length
+        user, // account name
+        strlen(path), // path length
+        path, // path
+        0, // port
+        kSecProtocolTypeHTTP, // protocol
+        kSecAuthenticationTypeDefault, // authentication type
+        strlen(pass), // password length
+        pass, // password
+        NULL // item ref
+    );
+       NSLog(@"%d", addResult);
+    
+    if (addResult == noErr) {
+        return YES;
+    }
+    
+    return NO;
+}
+
+@end
diff --git a/Dashboard/KeychainPlugin/KeychainPlugIn.xcodeproj/chuck.mode1v3 b/Dashboard/KeychainPlugin/KeychainPlugIn.xcodeproj/chuck.mode1v3
new file mode 100755 (executable)
index 0000000..01370f9
--- /dev/null
@@ -0,0 +1,1398 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+       <key>ActivePerspectiveName</key>
+       <string>Project</string>
+       <key>AllowedModules</key>
+       <array>
+               <dict>
+                       <key>BundleLoadPath</key>
+                       <string></string>
+                       <key>MaxInstances</key>
+                       <string>n</string>
+                       <key>Module</key>
+                       <string>PBXSmartGroupTreeModule</string>
+                       <key>Name</key>
+                       <string>Groups and Files Outline View</string>
+               </dict>
+               <dict>
+                       <key>BundleLoadPath</key>
+                       <string></string>
+                       <key>MaxInstances</key>
+                       <string>n</string>
+                       <key>Module</key>
+                       <string>PBXNavigatorGroup</string>
+                       <key>Name</key>
+                       <string>Editor</string>
+               </dict>
+               <dict>
+                       <key>BundleLoadPath</key>
+                       <string></string>
+                       <key>MaxInstances</key>
+                       <string>n</string>
+                       <key>Module</key>
+                       <string>XCTaskListModule</string>
+                       <key>Name</key>
+                       <string>Task List</string>
+               </dict>
+               <dict>
+                       <key>BundleLoadPath</key>
+                       <string></string>
+                       <key>MaxInstances</key>
+                       <string>n</string>
+                       <key>Module</key>
+                       <string>XCDetailModule</string>
+                       <key>Name</key>
+                       <string>File and Smart Group Detail Viewer</string>
+               </dict>
+               <dict>
+                       <key>BundleLoadPath</key>
+                       <string></string>
+                       <key>MaxInstances</key>
+                       <string>1</string>
+                       <key>Module</key>
+                       <string>PBXBuildResultsModule</string>
+                       <key>Name</key>
+                       <string>Detailed Build Results Viewer</string>
+               </dict>
+               <dict>
+                       <key>BundleLoadPath</key>
+                       <string></string>
+                       <key>MaxInstances</key>
+                       <string>1</string>
+                       <key>Module</key>
+                       <string>PBXProjectFindModule</string>
+                       <key>Name</key>
+                       <string>Project Batch Find Tool</string>
+               </dict>
+               <dict>
+                       <key>BundleLoadPath</key>
+                       <string></string>
+                       <key>MaxInstances</key>
+                       <string>n</string>
+                       <key>Module</key>
+                       <string>XCProjectFormatConflictsModule</string>
+                       <key>Name</key>
+                       <string>Project Format Conflicts List</string>
+               </dict>
+               <dict>
+                       <key>BundleLoadPath</key>
+                       <string></string>
+                       <key>MaxInstances</key>
+                       <string>n</string>
+                       <key>Module</key>
+                       <string>PBXBookmarksModule</string>
+                       <key>Name</key>
+                       <string>Bookmarks Tool</string>
+               </dict>
+               <dict>
+                       <key>BundleLoadPath</key>
+                       <string></string>
+                       <key>MaxInstances</key>
+                       <string>n</string>
+                       <key>Module</key>
+                       <string>PBXClassBrowserModule</string>
+                       <key>Name</key>
+                       <string>Class Browser</string>
+               </dict>
+               <dict>
+                       <key>BundleLoadPath</key>
+                       <string></string>
+                       <key>MaxInstances</key>
+                       <string>n</string>
+                       <key>Module</key>
+                       <string>PBXCVSModule</string>
+                       <key>Name</key>
+                       <string>Source Code Control Tool</string>
+               </dict>
+               <dict>
+                       <key>BundleLoadPath</key>
+                       <string></string>
+                       <key>MaxInstances</key>
+                       <string>n</string>
+                       <key>Module</key>
+                       <string>PBXDebugBreakpointsModule</string>
+                       <key>Name</key>
+                       <string>Debug Breakpoints Tool</string>
+               </dict>
+               <dict>
+                       <key>BundleLoadPath</key>
+                       <string></string>
+                       <key>MaxInstances</key>
+                       <string>n</string>
+                       <key>Module</key>
+                       <string>XCDockableInspector</string>
+                       <key>Name</key>
+                       <string>Inspector</string>
+               </dict>
+               <dict>
+                       <key>BundleLoadPath</key>
+                       <string></string>
+                       <key>MaxInstances</key>
+                       <string>n</string>
+                       <key>Module</key>
+                       <string>PBXOpenQuicklyModule</string>
+                       <key>Name</key>
+                       <string>Open Quickly Tool</string>
+               </dict>
+               <dict>
+                       <key>BundleLoadPath</key>
+                       <string></string>
+                       <key>MaxInstances</key>
+                       <string>1</string>
+                       <key>Module</key>
+                       <string>PBXDebugSessionModule</string>
+                       <key>Name</key>
+                       <string>Debugger</string>
+               </dict>
+               <dict>
+                       <key>BundleLoadPath</key>
+                       <string></string>
+                       <key>MaxInstances</key>
+                       <string>1</string>
+                       <key>Module</key>
+                       <string>PBXDebugCLIModule</string>
+                       <key>Name</key>
+                       <string>Debug Console</string>
+               </dict>
+               <dict>
+                       <key>BundleLoadPath</key>
+                       <string></string>
+                       <key>MaxInstances</key>
+                       <string>n</string>
+                       <key>Module</key>
+                       <string>XCSnapshotModule</string>
+                       <key>Name</key>
+                       <string>Snapshots Tool</string>
+               </dict>
+       </array>
+       <key>BundlePath</key>
+       <string>/Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources</string>
+       <key>Description</key>
+       <string>DefaultDescriptionKey</string>
+       <key>DockingSystemVisible</key>
+       <false/>
+       <key>Extension</key>
+       <string>mode1v3</string>
+       <key>FavBarConfig</key>
+       <dict>
+               <key>PBXProjectModuleGUID</key>
+               <string>134416BC0D178EFC001D4353</string>
+               <key>XCBarModuleItemNames</key>
+               <dict/>
+               <key>XCBarModuleItems</key>
+               <array/>
+       </dict>
+       <key>FirstTimeWindowDisplayed</key>
+       <false/>
+       <key>Identifier</key>
+       <string>com.apple.perspectives.project.mode1v3</string>
+       <key>MajorVersion</key>
+       <integer>33</integer>
+       <key>MinorVersion</key>
+       <integer>0</integer>
+       <key>Name</key>
+       <string>Default</string>
+       <key>Notifications</key>
+       <array/>
+       <key>OpenEditors</key>
+       <array/>
+       <key>PerspectiveWidths</key>
+       <array>
+               <integer>-1</integer>
+               <integer>-1</integer>
+       </array>
+       <key>Perspectives</key>
+       <array>
+               <dict>
+                       <key>ChosenToolbarItems</key>
+                       <array>
+                               <string>active-target-popup</string>
+                               <string>active-buildstyle-popup</string>
+                               <string>action</string>
+                               <string>NSToolbarFlexibleSpaceItem</string>
+                               <string>buildOrClean</string>
+                               <string>build-and-goOrGo</string>
+                               <string>com.apple.ide.PBXToolbarStopButton</string>
+                               <string>get-info</string>
+                               <string>toggle-editor</string>
+                               <string>NSToolbarFlexibleSpaceItem</string>
+                               <string>com.apple.pbx.toolbar.searchfield</string>
+                       </array>
+                       <key>ControllerClassBaseName</key>
+                       <string></string>
+                       <key>IconName</key>
+                       <string>WindowOfProjectWithEditor</string>
+                       <key>Identifier</key>
+                       <string>perspective.project</string>
+                       <key>IsVertical</key>
+                       <false/>
+                       <key>Layout</key>
+                       <array>
+                               <dict>
+                                       <key>ContentConfiguration</key>
+                                       <dict>
+                                               <key>PBXBottomSmartGroupGIDs</key>
+                                               <array>
+                                                       <string>1C37FBAC04509CD000000102</string>
+                                                       <string>1C37FAAC04509CD000000102</string>
+                                                       <string>1C08E77C0454961000C914BD</string>
+                                                       <string>1C37FABC05509CD000000102</string>
+                                                       <string>1C37FABC05539CD112110102</string>
+                                                       <string>E2644B35053B69B200211256</string>
+                                                       <string>1C37FABC04509CD000100104</string>
+                                                       <string>1CC0EA4004350EF90044410B</string>
+                                                       <string>1CC0EA4004350EF90041110B</string>
+                                               </array>
+                                               <key>PBXProjectModuleGUID</key>
+                                               <string>1CE0B1FE06471DED0097A5F4</string>
+                                               <key>PBXProjectModuleLabel</key>
+                                               <string>Files</string>
+                                               <key>PBXProjectStructureProvided</key>
+                                               <string>yes</string>
+                                               <key>PBXSmartGroupTreeModuleColumnData</key>
+                                               <dict>
+                                                       <key>PBXSmartGroupTreeModuleColumnWidthsKey</key>
+                                                       <array>
+                                                               <real>186</real>
+                                                       </array>
+                                                       <key>PBXSmartGroupTreeModuleColumnsKey_v4</key>
+                                                       <array>
+                                                               <string>MainColumn</string>
+                                                       </array>
+                                               </dict>
+                                               <key>PBXSmartGroupTreeModuleOutlineStateKey_v7</key>
+                                               <dict>
+                                                       <key>PBXSmartGroupTreeModuleOutlineStateExpansionKey</key>
+                                                       <array>
+                                                               <string>089C166AFE841209C02AAC07</string>
+                                                               <string>08FB77AFFE84173DC02AAC07</string>
+                                                               <string>32C88E010371C26100C91783</string>
+                                                               <string>089C167CFE841241C02AAC07</string>
+                                                               <string>089C1671FE841209C02AAC07</string>
+                                                               <string>19C28FB8FE9D52D311CA2CBB</string>
+                                                               <string>1C37FABC05509CD000000102</string>
+                                                               <string>1CC0EA4004350EF90044410B</string>
+                                                       </array>
+                                                       <key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
+                                                       <array>
+                                                               <array>
+                                                                       <integer>2</integer>
+                                                                       <integer>0</integer>
+                                                               </array>
+                                                       </array>
+                                                       <key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
+                                                       <string>{{0, 0}, {186, 660}}</string>
+                                               </dict>
+                                               <key>PBXTopSmartGroupGIDs</key>
+                                               <array/>
+                                               <key>XCIncludePerspectivesSwitch</key>
+                                               <true/>
+                                               <key>XCSharingToken</key>
+                                               <string>com.apple.Xcode.GFSharingToken</string>
+                                       </dict>
+                                       <key>GeometryConfiguration</key>
+                                       <dict>
+                                               <key>Frame</key>
+                                               <string>{{0, 0}, {203, 678}}</string>
+                                               <key>GroupTreeTableConfiguration</key>
+                                               <array>
+                                                       <string>MainColumn</string>
+                                                       <real>186</real>
+                                               </array>
+                                               <key>RubberWindowFrame</key>
+                                               <string>400 309 1280 719 0 0 1680 1028 </string>
+                                       </dict>
+                                       <key>Module</key>
+                                       <string>PBXSmartGroupTreeModule</string>
+                                       <key>Proportion</key>
+                                       <string>203pt</string>
+                               </dict>
+                               <dict>
+                                       <key>Dock</key>
+                                       <array>
+                                               <dict>
+                                                       <key>BecomeActive</key>
+                                                       <true/>
+                                                       <key>ContentConfiguration</key>
+                                                       <dict>
+                                                               <key>PBXProjectModuleGUID</key>
+                                                               <string>1CE0B20306471E060097A5F4</string>
+                                                               <key>PBXProjectModuleLabel</key>
+                                                               <string>HordePlugIn.m</string>
+                                                               <key>PBXSplitModuleInNavigatorKey</key>
+                                                               <dict>
+                                                                       <key>Split0</key>
+                                                                       <dict>
+                                                                               <key>PBXProjectModuleGUID</key>
+                                                                               <string>1CE0B20406471E060097A5F4</string>
+                                                                               <key>PBXProjectModuleLabel</key>
+                                                                               <string>HordePlugIn.m</string>
+                                                                               <key>_historyCapacity</key>
+                                                                               <integer>0</integer>
+                                                                               <key>bookmark</key>
+                                                                               <string>13299D550D1840BB00CA453F</string>
+                                                                               <key>history</key>
+                                                                               <array>
+                                                                                       <string>133A2D410D1798B300231C69</string>
+                                                                                       <string>13299D520D1840BB00CA453F</string>
+                                                                                       <string>13299D530D1840BB00CA453F</string>
+                                                                               </array>
+                                                                               <key>prevStack</key>
+                                                                               <array>
+                                                                                       <string>133A2D060D1791E600231C69</string>
+                                                                                       <string>133A2D070D1791E600231C69</string>
+                                                                                       <string>133A2D0B0D1794CA00231C69</string>
+                                                                                       <string>13299D540D1840BB00CA453F</string>
+                                                                               </array>
+                                                                       </dict>
+                                                                       <key>SplitCount</key>
+                                                                       <string>1</string>
+                                                               </dict>
+                                                               <key>StatusBarVisibility</key>
+                                                               <true/>
+                                                       </dict>
+                                                       <key>GeometryConfiguration</key>
+                                                       <dict>
+                                                               <key>Frame</key>
+                                                               <string>{{0, 0}, {1072, 673}}</string>
+                                                               <key>RubberWindowFrame</key>
+                                                               <string>400 309 1280 719 0 0 1680 1028 </string>
+                                                       </dict>
+                                                       <key>Module</key>
+                                                       <string>PBXNavigatorGroup</string>
+                                                       <key>Proportion</key>
+                                                       <string>673pt</string>
+                                               </dict>
+                                               <dict>
+                                                       <key>ContentConfiguration</key>
+                                                       <dict>
+                                                               <key>PBXProjectModuleGUID</key>
+                                                               <string>1CE0B20506471E060097A5F4</string>
+                                                               <key>PBXProjectModuleLabel</key>
+                                                               <string>Detail</string>
+                                                       </dict>
+                                                       <key>GeometryConfiguration</key>
+                                                       <dict>
+                                                               <key>Frame</key>
+                                                               <string>{{0, 678}, {1072, 0}}</string>
+                                                               <key>RubberWindowFrame</key>
+                                                               <string>400 309 1280 719 0 0 1680 1028 </string>
+                                                       </dict>
+                                                       <key>Module</key>
+                                                       <string>XCDetailModule</string>
+                                                       <key>Proportion</key>
+                                                       <string>0pt</string>
+                                               </dict>
+                                       </array>
+                                       <key>Proportion</key>
+                                       <string>1072pt</string>
+                               </dict>
+                       </array>
+                       <key>Name</key>
+                       <string>Project</string>
+                       <key>ServiceClasses</key>
+                       <array>
+                               <string>XCModuleDock</string>
+                               <string>PBXSmartGroupTreeModule</string>
+                               <string>XCModuleDock</string>
+                               <string>PBXNavigatorGroup</string>
+                               <string>XCDetailModule</string>
+                       </array>
+                       <key>TableOfContents</key>
+                       <array>
+                               <string>13299D500D18335800CA453F</string>
+                               <string>1CE0B1FE06471DED0097A5F4</string>
+                               <string>13299D510D18335800CA453F</string>
+                               <string>1CE0B20306471E060097A5F4</string>
+                               <string>1CE0B20506471E060097A5F4</string>
+                       </array>
+                       <key>ToolbarConfiguration</key>
+                       <string>xcode.toolbar.config.defaultV3</string>
+               </dict>
+               <dict>
+                       <key>ControllerClassBaseName</key>
+                       <string></string>
+                       <key>IconName</key>
+                       <string>WindowOfProject</string>
+                       <key>Identifier</key>
+                       <string>perspective.morph</string>
+                       <key>IsVertical</key>
+                       <integer>0</integer>
+                       <key>Layout</key>
+                       <array>
+                               <dict>
+                                       <key>BecomeActive</key>
+                                       <integer>1</integer>
+                                       <key>ContentConfiguration</key>
+                                       <dict>
+                                               <key>PBXBottomSmartGroupGIDs</key>
+                                               <array>
+                                                       <string>1C37FBAC04509CD000000102</string>
+                                                       <string>1C37FAAC04509CD000000102</string>
+                                                       <string>1C08E77C0454961000C914BD</string>
+                                                       <string>1C37FABC05509CD000000102</string>
+                                                       <string>1C37FABC05539CD112110102</string>
+                                                       <string>E2644B35053B69B200211256</string>
+                                                       <string>1C37FABC04509CD000100104</string>
+                                                       <string>1CC0EA4004350EF90044410B</string>
+                                                       <string>1CC0EA4004350EF90041110B</string>
+                                               </array>
+                                               <key>PBXProjectModuleGUID</key>
+                                               <string>11E0B1FE06471DED0097A5F4</string>
+                                               <key>PBXProjectModuleLabel</key>
+                                               <string>Files</string>
+                                               <key>PBXProjectStructureProvided</key>
+                                               <string>yes</string>
+                                               <key>PBXSmartGroupTreeModuleColumnData</key>
+                                               <dict>
+                                                       <key>PBXSmartGroupTreeModuleColumnWidthsKey</key>
+                                                       <array>
+                                                               <real>186</real>
+                                                       </array>
+                                                       <key>PBXSmartGroupTreeModuleColumnsKey_v4</key>
+                                                       <array>
+                                                               <string>MainColumn</string>
+                                                       </array>
+                                               </dict>
+                                               <key>PBXSmartGroupTreeModuleOutlineStateKey_v7</key>
+                                               <dict>
+                                                       <key>PBXSmartGroupTreeModuleOutlineStateExpansionKey</key>
+                                                       <array>
+                                                               <string>29B97314FDCFA39411CA2CEA</string>
+                                                               <string>1C37FABC05509CD000000102</string>
+                                                       </array>
+                                                       <key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
+                                                       <array>
+                                                               <array>
+                                                                       <integer>0</integer>
+                                                               </array>
+                                                       </array>
+                                                       <key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
+                                                       <string>{{0, 0}, {186, 337}}</string>
+                                               </dict>
+                                               <key>PBXTopSmartGroupGIDs</key>
+                                               <array/>
+                                               <key>XCIncludePerspectivesSwitch</key>
+                                               <integer>1</integer>
+                                               <key>XCSharingToken</key>
+                                               <string>com.apple.Xcode.GFSharingToken</string>
+                                       </dict>
+                                       <key>GeometryConfiguration</key>
+                                       <dict>
+                                               <key>Frame</key>
+                                               <string>{{0, 0}, {203, 355}}</string>
+                                               <key>GroupTreeTableConfiguration</key>
+                                               <array>
+                                                       <string>MainColumn</string>
+                                                       <real>186</real>
+                                               </array>
+                                               <key>RubberWindowFrame</key>
+                                               <string>373 269 690 397 0 0 1440 878 </string>
+                                       </dict>
+                                       <key>Module</key>
+                                       <string>PBXSmartGroupTreeModule</string>
+                                       <key>Proportion</key>
+                                       <string>100%</string>
+                               </dict>
+                       </array>
+                       <key>Name</key>
+                       <string>Morph</string>
+                       <key>PreferredWidth</key>
+                       <integer>300</integer>
+                       <key>ServiceClasses</key>
+                       <array>
+                               <string>XCModuleDock</string>
+                               <string>PBXSmartGroupTreeModule</string>
+                       </array>
+                       <key>TableOfContents</key>
+                       <array>
+                               <string>11E0B1FE06471DED0097A5F4</string>
+                       </array>
+                       <key>ToolbarConfiguration</key>
+                       <string>xcode.toolbar.config.default.shortV3</string>
+               </dict>
+       </array>
+       <key>PerspectivesBarVisible</key>
+       <false/>
+       <key>ShelfIsVisible</key>
+       <false/>
+       <key>SourceDescription</key>
+       <string>file at '/Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources/XCPerspectivesSpecificationMode1.xcperspec'</string>
+       <key>StatusbarIsVisible</key>
+       <true/>
+       <key>TimeStamp</key>
+       <real>0.0</real>
+       <key>ToolbarDisplayMode</key>
+       <integer>1</integer>
+       <key>ToolbarIsVisible</key>
+       <true/>
+       <key>ToolbarSizeMode</key>
+       <integer>1</integer>
+       <key>Type</key>
+       <string>Perspectives</string>
+       <key>UpdateMessage</key>
+       <string>The Default Workspace in this version of Xcode now includes support to hide and show the detail view (what has been referred to as the "Metro-Morph" feature).  You must discard your current Default Workspace settings and update to the latest Default Workspace in order to gain this feature.  Do you wish to update to the latest Workspace defaults for project '%@'?</string>
+       <key>WindowJustification</key>
+       <integer>5</integer>
+       <key>WindowOrderList</key>
+       <array>
+               <string>/Volumes/chagenbu/Documents/Dashboard/HordePlugin/HordePlugIn.xcodeproj</string>
+       </array>
+       <key>WindowString</key>
+       <string>400 309 1280 719 0 0 1680 1028 </string>
+       <key>WindowToolsV3</key>
+       <array>
+               <dict>
+                       <key>FirstTimeWindowDisplayed</key>
+                       <false/>
+                       <key>Identifier</key>
+                       <string>windowTool.build</string>
+                       <key>IsVertical</key>
+                       <true/>
+                       <key>Layout</key>
+                       <array>
+                               <dict>
+                                       <key>Dock</key>
+                                       <array>
+                                               <dict>
+                                                       <key>ContentConfiguration</key>
+                                                       <dict>
+                                                               <key>PBXProjectModuleGUID</key>
+                                                               <string>1CD0528F0623707200166675</string>
+                                                               <key>PBXProjectModuleLabel</key>
+                                                               <string>HordePlugIn.m</string>
+                                                               <key>StatusBarVisibility</key>
+                                                               <true/>
+                                                       </dict>
+                                                       <key>GeometryConfiguration</key>
+                                                       <dict>
+                                                               <key>Frame</key>
+                                                               <string>{{0, 0}, {1280, 436}}</string>
+                                                               <key>RubberWindowFrame</key>
+                                                               <string>0 60 1280 718 0 0 1280 778 </string>
+                                                       </dict>
+                                                       <key>Module</key>
+                                                       <string>PBXNavigatorGroup</string>
+                                                       <key>Proportion</key>
+                                                       <string>436pt</string>
+                                               </dict>
+                                               <dict>
+                                                       <key>BecomeActive</key>
+                                                       <true/>
+                                                       <key>ContentConfiguration</key>
+                                                       <dict>
+                                                               <key>PBXProjectModuleGUID</key>
+                                                               <string>XCMainBuildResultsModuleGUID</string>
+                                                               <key>PBXProjectModuleLabel</key>
+                                                               <string>Build</string>
+                                                               <key>XCBuildResultsTrigger_Collapse</key>
+                                                               <integer>1021</integer>
+                                                               <key>XCBuildResultsTrigger_Open</key>
+                                                               <integer>1011</integer>
+                                                       </dict>
+                                                       <key>GeometryConfiguration</key>
+                                                       <dict>
+                                                               <key>Frame</key>
+                                                               <string>{{0, 441}, {1280, 236}}</string>
+                                                               <key>RubberWindowFrame</key>
+                                                               <string>0 60 1280 718 0 0 1280 778 </string>
+                                                       </dict>
+                                                       <key>Module</key>
+                                                       <string>PBXBuildResultsModule</string>
+                                                       <key>Proportion</key>
+                                                       <string>236pt</string>
+                                               </dict>
+                                       </array>
+                                       <key>Proportion</key>
+                                       <string>677pt</string>
+                               </dict>
+                       </array>
+                       <key>Name</key>
+                       <string>Build Results</string>
+                       <key>ServiceClasses</key>
+                       <array>
+                               <string>PBXBuildResultsModule</string>
+                       </array>
+                       <key>StatusbarIsVisible</key>
+                       <true/>
+                       <key>TableOfContents</key>
+                       <array>
+                               <string>134416CF0D178FB0001D4353</string>
+                               <string>133A2CF80D17916800231C69</string>
+                               <string>1CD0528F0623707200166675</string>
+                               <string>XCMainBuildResultsModuleGUID</string>
+                       </array>
+                       <key>ToolbarConfiguration</key>
+                       <string>xcode.toolbar.config.buildV3</string>
+                       <key>WindowString</key>
+                       <string>0 60 1280 718 0 0 1280 778 </string>
+                       <key>WindowToolGUID</key>
+                       <string>134416CF0D178FB0001D4353</string>
+                       <key>WindowToolIsVisible</key>
+                       <false/>
+               </dict>
+               <dict>
+                       <key>Identifier</key>
+                       <string>windowTool.debugger</string>
+                       <key>Layout</key>
+                       <array>
+                               <dict>
+                                       <key>Dock</key>
+                                       <array>
+                                               <dict>
+                                                       <key>ContentConfiguration</key>
+                                                       <dict>
+                                                               <key>Debugger</key>
+                                                               <dict>
+                                                                       <key>HorizontalSplitView</key>
+                                                                       <dict>
+                                                                               <key>_collapsingFrameDimension</key>
+                                                                               <real>0.0</real>
+                                                                               <key>_indexOfCollapsedView</key>
+                                                                               <integer>0</integer>
+                                                                               <key>_percentageOfCollapsedView</key>
+                                                                               <real>0.0</real>
+                                                                               <key>isCollapsed</key>
+                                                                               <string>yes</string>
+                                                                               <key>sizes</key>
+                                                                               <array>
+                                                                                       <string>{{0, 0}, {317, 164}}</string>
+                                                                                       <string>{{317, 0}, {377, 164}}</string>
+                                                                               </array>
+                                                                       </dict>
+                                                                       <key>VerticalSplitView</key>
+                                                                       <dict>
+                                                                               <key>_collapsingFrameDimension</key>
+                                                                               <real>0.0</real>
+                                                                               <key>_indexOfCollapsedView</key>
+                                                                               <integer>0</integer>
+                                                                               <key>_percentageOfCollapsedView</key>
+                                                                               <real>0.0</real>
+                                                                               <key>isCollapsed</key>
+                                                                               <string>yes</string>
+                                                                               <key>sizes</key>
+                                                                               <array>
+                                                                                       <string>{{0, 0}, {694, 164}}</string>
+                                                                                       <string>{{0, 164}, {694, 216}}</string>
+                                                                               </array>
+                                                                       </dict>
+                                                               </dict>
+                                                               <key>LauncherConfigVersion</key>
+                                                               <string>8</string>
+                                                               <key>PBXProjectModuleGUID</key>
+                                                               <string>1C162984064C10D400B95A72</string>
+                                                               <key>PBXProjectModuleLabel</key>
+                                                               <string>Debug - GLUTExamples (Underwater)</string>
+                                                       </dict>
+                                                       <key>GeometryConfiguration</key>
+                                                       <dict>
+                                                               <key>DebugConsoleDrawerSize</key>
+                                                               <string>{100, 120}</string>
+                                                               <key>DebugConsoleVisible</key>
+                                                               <string>None</string>
+                                                               <key>DebugConsoleWindowFrame</key>
+                                                               <string>{{200, 200}, {500, 300}}</string>
+                                                               <key>DebugSTDIOWindowFrame</key>
+                                                               <string>{{200, 200}, {500, 300}}</string>
+                                                               <key>Frame</key>
+                                                               <string>{{0, 0}, {694, 380}}</string>
+                                                               <key>RubberWindowFrame</key>
+                                                               <string>321 238 694 422 0 0 1440 878 </string>
+                                                       </dict>
+                                                       <key>Module</key>
+                                                       <string>PBXDebugSessionModule</string>
+                                                       <key>Proportion</key>
+                                                       <string>100%</string>
+                                               </dict>
+                                       </array>
+                                       <key>Proportion</key>
+                                       <string>100%</string>
+                               </dict>
+                       </array>
+                       <key>Name</key>
+                       <string>Debugger</string>
+                       <key>ServiceClasses</key>
+                       <array>
+                               <string>PBXDebugSessionModule</string>
+                       </array>
+                       <key>StatusbarIsVisible</key>
+                       <integer>1</integer>
+                       <key>TableOfContents</key>
+                       <array>
+                               <string>1CD10A99069EF8BA00B06720</string>
+                               <string>1C0AD2AB069F1E9B00FABCE6</string>
+                               <string>1C162984064C10D400B95A72</string>
+                               <string>1C0AD2AC069F1E9B00FABCE6</string>
+                       </array>
+                       <key>ToolbarConfiguration</key>
+                       <string>xcode.toolbar.config.debugV3</string>
+                       <key>WindowString</key>
+                       <string>321 238 694 422 0 0 1440 878 </string>
+                       <key>WindowToolGUID</key>
+                       <string>1CD10A99069EF8BA00B06720</string>
+                       <key>WindowToolIsVisible</key>
+                       <integer>0</integer>
+               </dict>
+               <dict>
+                       <key>Identifier</key>
+                       <string>windowTool.find</string>
+                       <key>Layout</key>
+                       <array>
+                               <dict>
+                                       <key>Dock</key>
+                                       <array>
+                                               <dict>
+                                                       <key>Dock</key>
+                                                       <array>
+                                                               <dict>
+                                                                       <key>ContentConfiguration</key>
+                                                                       <dict>
+                                                                               <key>PBXProjectModuleGUID</key>
+                                                                               <string>1CDD528C0622207200134675</string>
+                                                                               <key>PBXProjectModuleLabel</key>
+                                                                               <string>&lt;No Editor&gt;</string>
+                                                                               <key>PBXSplitModuleInNavigatorKey</key>
+                                                                               <dict>
+                                                                                       <key>Split0</key>
+                                                                                       <dict>
+                                                                                               <key>PBXProjectModuleGUID</key>
+                                                                                               <string>1CD0528D0623707200166675</string>
+                                                                                       </dict>
+                                                                                       <key>SplitCount</key>
+                                                                                       <string>1</string>
+                                                                               </dict>
+                                                                               <key>StatusBarVisibility</key>
+                                                                               <integer>1</integer>
+                                                                       </dict>
+                                                                       <key>GeometryConfiguration</key>
+                                                                       <dict>
+                                                                               <key>Frame</key>
+                                                                               <string>{{0, 0}, {781, 167}}</string>
+                                                                               <key>RubberWindowFrame</key>
+                                                                               <string>62 385 781 470 0 0 1440 878 </string>
+                                                                       </dict>
+                                                                       <key>Module</key>
+                                                                       <string>PBXNavigatorGroup</string>
+                                                                       <key>Proportion</key>
+                                                                       <string>781pt</string>
+                                                               </dict>
+                                                       </array>
+                                                       <key>Proportion</key>
+                                                       <string>50%</string>
+                                               </dict>
+                                               <dict>
+                                                       <key>BecomeActive</key>
+                                                       <integer>1</integer>
+                                                       <key>ContentConfiguration</key>
+                                                       <dict>
+                                                               <key>PBXProjectModuleGUID</key>
+                                                               <string>1CD0528E0623707200166675</string>
+                                                               <key>PBXProjectModuleLabel</key>
+                                                               <string>Project Find</string>
+                                                       </dict>
+                                                       <key>GeometryConfiguration</key>
+                                                       <dict>
+                                                               <key>Frame</key>
+                                                               <string>{{8, 0}, {773, 254}}</string>
+                                                               <key>RubberWindowFrame</key>
+                                                               <string>62 385 781 470 0 0 1440 878 </string>
+                                                       </dict>
+                                                       <key>Module</key>
+                                                       <string>PBXProjectFindModule</string>
+                                                       <key>Proportion</key>
+                                                       <string>50%</string>
+                                               </dict>
+                                       </array>
+                                       <key>Proportion</key>
+                                       <string>428pt</string>
+                               </dict>
+                       </array>
+                       <key>Name</key>
+                       <string>Project Find</string>
+                       <key>ServiceClasses</key>
+                       <array>
+                               <string>PBXProjectFindModule</string>
+                       </array>
+                       <key>StatusbarIsVisible</key>
+                       <integer>1</integer>
+                       <key>TableOfContents</key>
+                       <array>
+                               <string>1C530D57069F1CE1000CFCEE</string>
+                               <string>1C530D58069F1CE1000CFCEE</string>
+                               <string>1C530D59069F1CE1000CFCEE</string>
+                               <string>1CDD528C0622207200134675</string>
+                               <string>1C530D5A069F1CE1000CFCEE</string>
+                               <string>1CE0B1FE06471DED0097A5F4</string>
+                               <string>1CD0528E0623707200166675</string>
+                       </array>
+                       <key>WindowString</key>
+                       <string>62 385 781 470 0 0 1440 878 </string>
+                       <key>WindowToolGUID</key>
+                       <string>1C530D57069F1CE1000CFCEE</string>
+                       <key>WindowToolIsVisible</key>
+                       <integer>0</integer>
+               </dict>
+               <dict>
+                       <key>Identifier</key>
+                       <string>MENUSEPARATOR</string>
+               </dict>
+               <dict>
+                       <key>Identifier</key>
+                       <string>windowTool.debuggerConsole</string>
+                       <key>Layout</key>
+                       <array>
+                               <dict>
+                                       <key>Dock</key>
+                                       <array>
+                                               <dict>
+                                                       <key>BecomeActive</key>
+                                                       <integer>1</integer>
+                                                       <key>ContentConfiguration</key>
+                                                       <dict>
+                                                               <key>PBXProjectModuleGUID</key>
+                                                               <string>1C78EAAC065D492600B07095</string>
+                                                               <key>PBXProjectModuleLabel</key>
+                                                               <string>Debugger Console</string>
+                                                       </dict>
+                                                       <key>GeometryConfiguration</key>
+                                                       <dict>
+                                                               <key>Frame</key>
+                                                               <string>{{0, 0}, {650, 250}}</string>
+                                                               <key>RubberWindowFrame</key>
+                                                               <string>516 632 650 250 0 0 1680 1027 </string>
+                                                       </dict>
+                                                       <key>Module</key>
+                                                       <string>PBXDebugCLIModule</string>
+                                                       <key>Proportion</key>
+                                                       <string>209pt</string>
+                                               </dict>
+                                       </array>
+                                       <key>Proportion</key>
+                                       <string>209pt</string>
+                               </dict>
+                       </array>
+                       <key>Name</key>
+                       <string>Debugger Console</string>
+                       <key>ServiceClasses</key>
+                       <array>
+                               <string>PBXDebugCLIModule</string>
+                       </array>
+                       <key>StatusbarIsVisible</key>
+                       <integer>1</integer>
+                       <key>TableOfContents</key>
+                       <array>
+                               <string>1C78EAAD065D492600B07095</string>
+                               <string>1C78EAAE065D492600B07095</string>
+                               <string>1C78EAAC065D492600B07095</string>
+                       </array>
+                       <key>ToolbarConfiguration</key>
+                       <string>xcode.toolbar.config.consoleV3</string>
+                       <key>WindowString</key>
+                       <string>650 41 650 250 0 0 1280 1002 </string>
+                       <key>WindowToolGUID</key>
+                       <string>1C78EAAD065D492600B07095</string>
+                       <key>WindowToolIsVisible</key>
+                       <integer>0</integer>
+               </dict>
+               <dict>
+                       <key>Identifier</key>
+                       <string>windowTool.snapshots</string>
+                       <key>Layout</key>
+                       <array>
+                               <dict>
+                                       <key>Dock</key>
+                                       <array>
+                                               <dict>
+                                                       <key>Module</key>
+                                                       <string>XCSnapshotModule</string>
+                                                       <key>Proportion</key>
+                                                       <string>100%</string>
+                                               </dict>
+                                       </array>
+                                       <key>Proportion</key>
+                                       <string>100%</string>
+                               </dict>
+                       </array>
+                       <key>Name</key>
+                       <string>Snapshots</string>
+                       <key>ServiceClasses</key>
+                       <array>
+                               <string>XCSnapshotModule</string>
+                       </array>
+                       <key>StatusbarIsVisible</key>
+                       <string>Yes</string>
+                       <key>ToolbarConfiguration</key>
+                       <string>xcode.toolbar.config.snapshots</string>
+                       <key>WindowString</key>
+                       <string>315 824 300 550 0 0 1440 878 </string>
+                       <key>WindowToolIsVisible</key>
+                       <string>Yes</string>
+               </dict>
+               <dict>
+                       <key>Identifier</key>
+                       <string>windowTool.scm</string>
+                       <key>Layout</key>
+                       <array>
+                               <dict>
+                                       <key>Dock</key>
+                                       <array>
+                                               <dict>
+                                                       <key>ContentConfiguration</key>
+                                                       <dict>
+                                                               <key>PBXProjectModuleGUID</key>
+                                                               <string>1C78EAB2065D492600B07095</string>
+                                                               <key>PBXProjectModuleLabel</key>
+                                                               <string>&lt;No Editor&gt;</string>
+                                                               <key>PBXSplitModuleInNavigatorKey</key>
+                                                               <dict>
+                                                                       <key>Split0</key>
+                                                                       <dict>
+                                                                               <key>PBXProjectModuleGUID</key>
+                                                                               <string>1C78EAB3065D492600B07095</string>
+                                                                       </dict>
+                                                                       <key>SplitCount</key>
+                                                                       <string>1</string>
+                                                               </dict>
+                                                               <key>StatusBarVisibility</key>
+                                                               <integer>1</integer>
+                                                       </dict>
+                                                       <key>GeometryConfiguration</key>
+                                                       <dict>
+                                                               <key>Frame</key>
+                                                               <string>{{0, 0}, {452, 0}}</string>
+                                                               <key>RubberWindowFrame</key>
+                                                               <string>743 379 452 308 0 0 1280 1002 </string>
+                                                       </dict>
+                                                       <key>Module</key>
+                                                       <string>PBXNavigatorGroup</string>
+                                                       <key>Proportion</key>
+                                                       <string>0pt</string>
+                                               </dict>
+                                               <dict>
+                                                       <key>BecomeActive</key>
+                                                       <integer>1</integer>
+                                                       <key>ContentConfiguration</key>
+                                                       <dict>
+                                                               <key>PBXProjectModuleGUID</key>
+                                                               <string>1CD052920623707200166675</string>
+                                                               <key>PBXProjectModuleLabel</key>
+                                                               <string>SCM</string>
+                                                       </dict>
+                                                       <key>GeometryConfiguration</key>
+                                                       <dict>
+                                                               <key>ConsoleFrame</key>
+                                                               <string>{{0, 259}, {452, 0}}</string>
+                                                               <key>Frame</key>
+                                                               <string>{{0, 7}, {452, 259}}</string>
+                                                               <key>RubberWindowFrame</key>
+                                                               <string>743 379 452 308 0 0 1280 1002 </string>
+                                                               <key>TableConfiguration</key>
+                                                               <array>
+                                                                       <string>Status</string>
+                                                                       <real>30</real>
+                                                                       <string>FileName</string>
+                                                                       <real>199</real>
+                                                                       <string>Path</string>
+                                                                       <real>197.09500122070312</real>
+                                                               </array>
+                                                               <key>TableFrame</key>
+                                                               <string>{{0, 0}, {452, 250}}</string>
+                                                       </dict>
+                                                       <key>Module</key>
+                                                       <string>PBXCVSModule</string>
+                                                       <key>Proportion</key>
+                                                       <string>262pt</string>
+                                               </dict>
+                                       </array>
+                                       <key>Proportion</key>
+                                       <string>266pt</string>
+                               </dict>
+                       </array>
+                       <key>Name</key>
+                       <string>SCM</string>
+                       <key>ServiceClasses</key>
+                       <array>
+                               <string>PBXCVSModule</string>
+                       </array>
+                       <key>StatusbarIsVisible</key>
+                       <integer>1</integer>
+                       <key>TableOfContents</key>
+                       <array>
+                               <string>1C78EAB4065D492600B07095</string>
+                               <string>1C78EAB5065D492600B07095</string>
+                               <string>1C78EAB2065D492600B07095</string>
+                               <string>1CD052920623707200166675</string>
+                       </array>
+                       <key>ToolbarConfiguration</key>
+                       <string>xcode.toolbar.config.scm</string>
+                       <key>WindowString</key>
+                       <string>743 379 452 308 0 0 1280 1002 </string>
+               </dict>
+               <dict>
+                       <key>Identifier</key>
+                       <string>windowTool.breakpoints</string>
+                       <key>IsVertical</key>
+                       <integer>0</integer>
+                       <key>Layout</key>
+                       <array>
+                               <dict>
+                                       <key>Dock</key>
+                                       <array>
+                                               <dict>
+                                                       <key>BecomeActive</key>
+                                                       <integer>1</integer>
+                                                       <key>ContentConfiguration</key>
+                                                       <dict>
+                                                               <key>PBXBottomSmartGroupGIDs</key>
+                                                               <array>
+                                                                       <string>1C77FABC04509CD000000102</string>
+                                                               </array>
+                                                               <key>PBXProjectModuleGUID</key>
+                                                               <string>1CE0B1FE06471DED0097A5F4</string>
+                                                               <key>PBXProjectModuleLabel</key>
+                                                               <string>Files</string>
+                                                               <key>PBXProjectStructureProvided</key>
+                                                               <string>no</string>
+                                                               <key>PBXSmartGroupTreeModuleColumnData</key>
+                                                               <dict>
+                                                                       <key>PBXSmartGroupTreeModuleColumnWidthsKey</key>
+                                                                       <array>
+                                                                               <real>168</real>
+                                                                       </array>
+                                                                       <key>PBXSmartGroupTreeModuleColumnsKey_v4</key>
+                                                                       <array>
+                                                                               <string>MainColumn</string>
+                                                                       </array>
+                                                               </dict>
+                                                               <key>PBXSmartGroupTreeModuleOutlineStateKey_v7</key>
+                                                               <dict>
+                                                                       <key>PBXSmartGroupTreeModuleOutlineStateExpansionKey</key>
+                                                                       <array>
+                                                                               <string>1C77FABC04509CD000000102</string>
+                                                                       </array>
+                                                                       <key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
+                                                                       <array>
+                                                                               <array>
+                                                                                       <integer>0</integer>
+                                                                               </array>
+                                                                       </array>
+                                                                       <key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
+                                                                       <string>{{0, 0}, {168, 350}}</string>
+                                                               </dict>
+                                                               <key>PBXTopSmartGroupGIDs</key>
+                                                               <array/>
+                                                               <key>XCIncludePerspectivesSwitch</key>
+                                                               <integer>0</integer>
+                                                       </dict>
+                                                       <key>GeometryConfiguration</key>
+                                                       <dict>
+                                                               <key>Frame</key>
+                                                               <string>{{0, 0}, {185, 368}}</string>
+                                                               <key>GroupTreeTableConfiguration</key>
+                                                               <array>
+                                                                       <string>MainColumn</string>
+                                                                       <real>168</real>
+                                                               </array>
+                                                               <key>RubberWindowFrame</key>
+                                                               <string>315 424 744 409 0 0 1440 878 </string>
+                                                       </dict>
+                                                       <key>Module</key>
+                                                       <string>PBXSmartGroupTreeModule</string>
+                                                       <key>Proportion</key>
+                                                       <string>185pt</string>
+                                               </dict>
+                                               <dict>
+                                                       <key>ContentConfiguration</key>
+                                                       <dict>
+                                                               <key>PBXProjectModuleGUID</key>
+                                                               <string>1CA1AED706398EBD00589147</string>
+                                                               <key>PBXProjectModuleLabel</key>
+                                                               <string>Detail</string>
+                                                       </dict>
+                                                       <key>GeometryConfiguration</key>
+                                                       <dict>
+                                                               <key>Frame</key>
+                                                               <string>{{190, 0}, {554, 368}}</string>
+                                                               <key>RubberWindowFrame</key>
+                                                               <string>315 424 744 409 0 0 1440 878 </string>
+                                                       </dict>
+                                                       <key>Module</key>
+                                                       <string>XCDetailModule</string>
+                                                       <key>Proportion</key>
+                                                       <string>554pt</string>
+                                               </dict>
+                                       </array>
+                                       <key>Proportion</key>
+                                       <string>368pt</string>
+                               </dict>
+                       </array>
+                       <key>MajorVersion</key>
+                       <integer>3</integer>
+                       <key>MinorVersion</key>
+                       <integer>0</integer>
+                       <key>Name</key>
+                       <string>Breakpoints</string>
+                       <key>ServiceClasses</key>
+                       <array>
+                               <string>PBXSmartGroupTreeModule</string>
+                               <string>XCDetailModule</string>
+                       </array>
+                       <key>StatusbarIsVisible</key>
+                       <integer>1</integer>
+                       <key>TableOfContents</key>
+                       <array>
+                               <string>1CDDB66807F98D9800BB5817</string>
+                               <string>1CDDB66907F98D9800BB5817</string>
+                               <string>1CE0B1FE06471DED0097A5F4</string>
+                               <string>1CA1AED706398EBD00589147</string>
+                       </array>
+                       <key>ToolbarConfiguration</key>
+                       <string>xcode.toolbar.config.breakpointsV3</string>
+                       <key>WindowString</key>
+                       <string>315 424 744 409 0 0 1440 878 </string>
+                       <key>WindowToolGUID</key>
+                       <string>1CDDB66807F98D9800BB5817</string>
+                       <key>WindowToolIsVisible</key>
+                       <integer>1</integer>
+               </dict>
+               <dict>
+                       <key>Identifier</key>
+                       <string>windowTool.debugAnimator</string>
+                       <key>Layout</key>
+                       <array>
+                               <dict>
+                                       <key>Dock</key>
+                                       <array>
+                                               <dict>
+                                                       <key>Module</key>
+                                                       <string>PBXNavigatorGroup</string>
+                                                       <key>Proportion</key>
+                                                       <string>100%</string>
+                                               </dict>
+                                       </array>
+                                       <key>Proportion</key>
+                                       <string>100%</string>
+                               </dict>
+                       </array>
+                       <key>Name</key>
+                       <string>Debug Visualizer</string>
+                       <key>ServiceClasses</key>
+                       <array>
+                               <string>PBXNavigatorGroup</string>
+                       </array>
+                       <key>StatusbarIsVisible</key>
+                       <integer>1</integer>
+                       <key>ToolbarConfiguration</key>
+                       <string>xcode.toolbar.config.debugAnimatorV3</string>
+                       <key>WindowString</key>
+                       <string>100 100 700 500 0 0 1280 1002 </string>
+               </dict>
+               <dict>
+                       <key>Identifier</key>
+                       <string>windowTool.bookmarks</string>
+                       <key>Layout</key>
+                       <array>
+                               <dict>
+                                       <key>Dock</key>
+                                       <array>
+                                               <dict>
+                                                       <key>Module</key>
+                                                       <string>PBXBookmarksModule</string>
+                                                       <key>Proportion</key>
+                                                       <string>100%</string>
+                                               </dict>
+                                       </array>
+                                       <key>Proportion</key>
+                                       <string>100%</string>
+                               </dict>
+                       </array>
+                       <key>Name</key>
+                       <string>Bookmarks</string>
+                       <key>ServiceClasses</key>
+                       <array>
+                               <string>PBXBookmarksModule</string>
+                       </array>
+                       <key>StatusbarIsVisible</key>
+                       <integer>0</integer>
+                       <key>WindowString</key>
+                       <string>538 42 401 187 0 0 1280 1002 </string>
+               </dict>
+               <dict>
+                       <key>Identifier</key>
+                       <string>windowTool.projectFormatConflicts</string>
+                       <key>Layout</key>
+                       <array>
+                               <dict>
+                                       <key>Dock</key>
+                                       <array>
+                                               <dict>
+                                                       <key>Module</key>
+                                                       <string>XCProjectFormatConflictsModule</string>
+                                                       <key>Proportion</key>
+                                                       <string>100%</string>
+                                               </dict>
+                                       </array>
+                                       <key>Proportion</key>
+                                       <string>100%</string>
+                               </dict>
+                       </array>
+                       <key>Name</key>
+                       <string>Project Format Conflicts</string>
+                       <key>ServiceClasses</key>
+                       <array>
+                               <string>XCProjectFormatConflictsModule</string>
+                       </array>
+                       <key>StatusbarIsVisible</key>
+                       <integer>0</integer>
+                       <key>WindowContentMinSize</key>
+                       <string>450 300</string>
+                       <key>WindowString</key>
+                       <string>50 850 472 307 0 0 1440 877</string>
+               </dict>
+               <dict>
+                       <key>Identifier</key>
+                       <string>windowTool.classBrowser</string>
+                       <key>Layout</key>
+                       <array>
+                               <dict>
+                                       <key>Dock</key>
+                                       <array>
+                                               <dict>
+                                                       <key>BecomeActive</key>
+                                                       <integer>1</integer>
+                                                       <key>ContentConfiguration</key>
+                                                       <dict>
+                                                               <key>OptionsSetName</key>
+                                                               <string>Hierarchy, all classes</string>
+                                                               <key>PBXProjectModuleGUID</key>
+                                                               <string>1CA6456E063B45B4001379D8</string>
+                                                               <key>PBXProjectModuleLabel</key>
+                                                               <string>Class Browser - NSObject</string>
+                                                       </dict>
+                                                       <key>GeometryConfiguration</key>
+                                                       <dict>
+                                                               <key>ClassesFrame</key>
+                                                               <string>{{0, 0}, {374, 96}}</string>
+                                                               <key>ClassesTreeTableConfiguration</key>
+                                                               <array>
+                                                                       <string>PBXClassNameColumnIdentifier</string>
+                                                                       <real>208</real>
+                                                                       <string>PBXClassBookColumnIdentifier</string>
+                                                                       <real>22</real>
+                                                               </array>
+                                                               <key>Frame</key>
+                                                               <string>{{0, 0}, {630, 331}}</string>
+                                                               <key>MembersFrame</key>
+                                                               <string>{{0, 105}, {374, 395}}</string>
+                                                               <key>MembersTreeTableConfiguration</key>
+                                                               <array>
+                                                                       <string>PBXMemberTypeIconColumnIdentifier</string>
+                                                                       <real>22</real>
+                                                                       <string>PBXMemberNameColumnIdentifier</string>
+                                                                       <real>216</real>
+                                                                       <string>PBXMemberTypeColumnIdentifier</string>
+                                                                       <real>97</real>
+                                                                       <string>PBXMemberBookColumnIdentifier</string>
+                                                                       <real>22</real>
+                                                               </array>
+                                                               <key>PBXModuleWindowStatusBarHidden2</key>
+                                                               <integer>1</integer>
+                                                               <key>RubberWindowFrame</key>
+                                                               <string>385 179 630 352 0 0 1440 878 </string>
+                                                       </dict>
+                                                       <key>Module</key>
+                                                       <string>PBXClassBrowserModule</string>
+                                                       <key>Proportion</key>
+                                                       <string>332pt</string>
+                                               </dict>
+                                       </array>
+                                       <key>Proportion</key>
+                                       <string>332pt</string>
+                               </dict>
+                       </array>
+                       <key>Name</key>
+                       <string>Class Browser</string>
+                       <key>ServiceClasses</key>
+                       <array>
+                               <string>PBXClassBrowserModule</string>
+                       </array>
+                       <key>StatusbarIsVisible</key>
+                       <integer>0</integer>
+                       <key>TableOfContents</key>
+                       <array>
+                               <string>1C0AD2AF069F1E9B00FABCE6</string>
+                               <string>1C0AD2B0069F1E9B00FABCE6</string>
+                               <string>1CA6456E063B45B4001379D8</string>
+                       </array>
+                       <key>ToolbarConfiguration</key>
+                       <string>xcode.toolbar.config.classbrowser</string>
+                       <key>WindowString</key>
+                       <string>385 179 630 352 0 0 1440 878 </string>
+                       <key>WindowToolGUID</key>
+                       <string>1C0AD2AF069F1E9B00FABCE6</string>
+                       <key>WindowToolIsVisible</key>
+                       <integer>0</integer>
+               </dict>
+               <dict>
+                       <key>FirstTimeWindowDisplayed</key>
+                       <false/>
+                       <key>Identifier</key>
+                       <string>windowTool.refactoring</string>
+                       <key>IncludeInToolsMenu</key>
+                       <integer>0</integer>
+                       <key>IsVertical</key>
+                       <true/>
+                       <key>Layout</key>
+                       <array>
+                               <dict>
+                                       <key>Dock</key>
+                                       <array>
+                                               <dict>
+                                                       <key>ContentConfiguration</key>
+                                                       <dict>
+                                                               <key>PBXProjectModuleGUID</key>
+                                                               <string>134416D10D178FB0001D4353</string>
+                                                       </dict>
+                                                       <key>GeometryConfiguration</key>
+                                                       <dict>
+                                                               <key>Frame</key>
+                                                               <string>{{0, 0}, {500, 315}}</string>
+                                                               <key>RubberWindowFrame</key>
+                                                               <string>145 187 500 356 0 0 1280 778 </string>
+                                                       </dict>
+                                                       <key>Module</key>
+                                                       <string>XCRefactoringModule</string>
+                                                       <key>Proportion</key>
+                                                       <string>315pt</string>
+                                               </dict>
+                                       </array>
+                                       <key>Proportion</key>
+                                       <string>315pt</string>
+                               </dict>
+                       </array>
+                       <key>Name</key>
+                       <string>Refactoring</string>
+                       <key>ServiceClasses</key>
+                       <array>
+                               <string>XCRefactoringModule</string>
+                       </array>
+                       <key>StatusbarIsVisible</key>
+                       <true/>
+                       <key>TableOfContents</key>
+                       <array>
+                               <string>134416D20D178FB0001D4353</string>
+                               <string>134416D30D178FB0001D4353</string>
+                               <string>134416D10D178FB0001D4353</string>
+                       </array>
+                       <key>WindowString</key>
+                       <string>145 187 500 356 0 0 1280 778 </string>
+                       <key>WindowToolGUID</key>
+                       <string>134416D20D178FB0001D4353</string>
+                       <key>WindowToolIsVisible</key>
+                       <false/>
+               </dict>
+       </array>
+</dict>
+</plist>
diff --git a/Dashboard/KeychainPlugin/KeychainPlugIn.xcodeproj/chuck.pbxuser b/Dashboard/KeychainPlugin/KeychainPlugIn.xcodeproj/chuck.pbxuser
new file mode 100755 (executable)
index 0000000..c1df17a
--- /dev/null
@@ -0,0 +1,149 @@
+// !$*UTF8*$!
+{
+       089C1669FE841209C02AAC07 /* Project object */ = {
+               activeArchitecture = i386;
+               activeBuildConfigurationName = Release;
+               activeTarget = 8D5B49AC048680CD000E48DA /* KeychainPlugIn */;
+               addToTargets = (
+                       8D5B49AC048680CD000E48DA /* KeychainPlugIn */,
+               );
+               codeSenseManager = 134416B80D178ECF001D4353 /* Code sense */;
+               perUserDictionary = {
+                       PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = {
+                               PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
+                               PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
+                               PBXFileTableDataSourceColumnWidthsKey = (
+                                       20,
+                                       725,
+                                       20,
+                                       48,
+                                       43,
+                                       43,
+                                       20,
+                               );
+                               PBXFileTableDataSourceColumnsKey = (
+                                       PBXFileDataSource_FiletypeID,
+                                       PBXFileDataSource_Filename_ColumnID,
+                                       PBXFileDataSource_Built_ColumnID,
+                                       PBXFileDataSource_ObjectSize_ColumnID,
+                                       PBXFileDataSource_Errors_ColumnID,
+                                       PBXFileDataSource_Warnings_ColumnID,
+                                       PBXFileDataSource_Target_ColumnID,
+                               );
+                       };
+                       PBXConfiguration.PBXTargetDataSource.PBXTargetDataSource = {
+                               PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
+                               PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
+                               PBXFileTableDataSourceColumnWidthsKey = (
+                                       20,
+                                       503,
+                                       60,
+                                       20,
+                                       48.16259765625,
+                                       43,
+                                       43,
+                               );
+                               PBXFileTableDataSourceColumnsKey = (
+                                       PBXFileDataSource_FiletypeID,
+                                       PBXFileDataSource_Filename_ColumnID,
+                                       PBXTargetDataSource_PrimaryAttribute,
+                                       PBXFileDataSource_Built_ColumnID,
+                                       PBXFileDataSource_ObjectSize_ColumnID,
+                                       PBXFileDataSource_Errors_ColumnID,
+                                       PBXFileDataSource_Warnings_ColumnID,
+                               );
+                       };
+                       PBXPerProjectTemplateStateSaveDate = 219703816;
+                       PBXWorkspaceStateSaveDate = 219703816;
+               };
+               perUserProjectItems = {
+                       13B421700D186EFC0053EF7C /* PBXBookmark */ = 13B421700D186EFC0053EF7C /* PBXBookmark */;
+                       13B4217D0D1874490053EF7C /* PBXTextBookmark */ = 13B4217D0D1874490053EF7C /* PBXTextBookmark */;
+                       13B421980D188AA90053EF7C /* PBXTextBookmark */ = 13B421980D188AA90053EF7C /* PBXTextBookmark */;
+                       13B421990D188AA90053EF7C /* PBXTextBookmark */ = 13B421990D188AA90053EF7C /* PBXTextBookmark */;
+               };
+               sourceControlManager = 134416B70D178ECF001D4353 /* Source Control */;
+               userBuildSettings = {
+               };
+       };
+       134416B70D178ECF001D4353 /* Source Control */ = {
+               isa = PBXSourceControlManager;
+               fallbackIsa = XCSourceControlManager;
+               isSCMEnabled = 0;
+               scmConfiguration = {
+               };
+       };
+       134416B80D178ECF001D4353 /* Code sense */ = {
+               isa = PBXCodeSenseManager;
+               indexTemplatePath = "";
+       };
+       134416BF0D178F49001D4353 /* KeychainPlugIn.h */ = {
+               uiCtxt = {
+                       sepNavIntBoundsRect = "{{0, 0}, {1040, 590}}";
+                       sepNavSelRange = "{874, 0}";
+                       sepNavVisRange = "{0, 918}";
+                       sepNavWindowFrame = "{{259, 134}, {927, 718}}";
+               };
+       };
+       134416C00D178F49001D4353 /* KeychainPlugIn.m */ = {
+               uiCtxt = {
+                       sepNavIntBoundsRect = "{{0, 0}, {1046, 2212}}";
+                       sepNavSelRange = "{4674, 0}";
+                       sepNavVisRange = "{3710, 1623}";
+                       sepNavWindowFrame = "{{351, 62}, {1030, 755}}";
+               };
+       };
+       134416C10D178F49001D4353 /* KeychainPlugIn_Prefix.pch */ = {
+               uiCtxt = {
+                       sepNavIntBoundsRect = "{{0, 0}, {691, 430}}";
+                       sepNavSelRange = "{147, 0}";
+                       sepNavVisRange = "{0, 154}";
+                       sepNavWindowFrame = "{{15, 465}, {750, 558}}";
+               };
+       };
+       13B421700D186EFC0053EF7C /* PBXBookmark */ = {
+               isa = PBXBookmark;
+               fRef = 134416C00D178F49001D4353 /* KeychainPlugIn.m */;
+       };
+       13B4217D0D1874490053EF7C /* PBXTextBookmark */ = {
+               isa = PBXTextBookmark;
+               fRef = 134416BF0D178F49001D4353 /* KeychainPlugIn.h */;
+               name = "KeychainPlugIn.h: 25";
+               rLen = 0;
+               rLoc = 767;
+               rType = 0;
+               vrLen = 811;
+               vrLoc = 0;
+       };
+       13B421980D188AA90053EF7C /* PBXTextBookmark */ = {
+               isa = PBXTextBookmark;
+               fRef = 134416BF0D178F49001D4353 /* KeychainPlugIn.h */;
+               name = "KeychainPlugIn.h: 25";
+               rLen = 0;
+               rLoc = 874;
+               rType = 0;
+               vrLen = 918;
+               vrLoc = 0;
+       };
+       13B421990D188AA90053EF7C /* PBXTextBookmark */ = {
+               isa = PBXTextBookmark;
+               fRef = 134416C00D178F49001D4353 /* KeychainPlugIn.m */;
+               name = "KeychainPlugIn.m: 128";
+               rLen = 0;
+               rLoc = 4674;
+               rType = 0;
+               vrLen = 1623;
+               vrLoc = 3710;
+       };
+       8D5B49AC048680CD000E48DA /* KeychainPlugIn */ = {
+               activeExec = 0;
+       };
+       8D5B49B7048680CD000E48DA /* Info.plist */ = {
+               uiCtxt = {
+                       sepNavIntBoundsRect = "{{0, 0}, {691, 430}}";
+                       sepNavSelRange = "{0, 0}";
+                       sepNavVisRange = "{0, 766}";
+                       sepNavWindowFrame = "{{130, 110}, {750, 558}}";
+               };
+       };
+}
diff --git a/Dashboard/KeychainPlugin/KeychainPlugIn.xcodeproj/chuck.perspectivev3 b/Dashboard/KeychainPlugin/KeychainPlugIn.xcodeproj/chuck.perspectivev3
new file mode 100755 (executable)
index 0000000..c0d0d86
--- /dev/null
@@ -0,0 +1,1548 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+       <key>ActivePerspectiveName</key>
+       <string>Project</string>
+       <key>AllowedModules</key>
+       <array>
+               <dict>
+                       <key>BundleLoadPath</key>
+                       <string></string>
+                       <key>MaxInstances</key>
+                       <string>n</string>
+                       <key>Module</key>
+                       <string>PBXSmartGroupTreeModule</string>
+                       <key>Name</key>
+                       <string>Groups and Files Outline View</string>
+               </dict>
+               <dict>
+                       <key>BundleLoadPath</key>
+                       <string></string>
+                       <key>MaxInstances</key>
+                       <string>n</string>
+                       <key>Module</key>
+                       <string>PBXNavigatorGroup</string>
+                       <key>Name</key>
+                       <string>Editor</string>
+               </dict>
+               <dict>
+                       <key>BundleLoadPath</key>
+                       <string></string>
+                       <key>MaxInstances</key>
+                       <string>n</string>
+                       <key>Module</key>
+                       <string>XCTaskListModule</string>
+                       <key>Name</key>
+                       <string>Task List</string>
+               </dict>
+               <dict>
+                       <key>BundleLoadPath</key>
+                       <string></string>
+                       <key>MaxInstances</key>
+                       <string>n</string>
+                       <key>Module</key>
+                       <string>XCDetailModule</string>
+                       <key>Name</key>
+                       <string>File and Smart Group Detail Viewer</string>
+               </dict>
+               <dict>
+                       <key>BundleLoadPath</key>
+                       <string></string>
+                       <key>MaxInstances</key>
+                       <string>1</string>
+                       <key>Module</key>
+                       <string>PBXBuildResultsModule</string>
+                       <key>Name</key>
+                       <string>Detailed Build Results Viewer</string>
+               </dict>
+               <dict>
+                       <key>BundleLoadPath</key>
+                       <string></string>
+                       <key>MaxInstances</key>
+                       <string>1</string>
+                       <key>Module</key>
+                       <string>PBXProjectFindModule</string>
+                       <key>Name</key>
+                       <string>Project Batch Find Tool</string>
+               </dict>
+               <dict>
+                       <key>BundleLoadPath</key>
+                       <string></string>
+                       <key>MaxInstances</key>
+                       <string>n</string>
+                       <key>Module</key>
+                       <string>XCProjectFormatConflictsModule</string>
+                       <key>Name</key>
+                       <string>Project Format Conflicts List</string>
+               </dict>
+               <dict>
+                       <key>BundleLoadPath</key>
+                       <string></string>
+                       <key>MaxInstances</key>
+                       <string>n</string>
+                       <key>Module</key>
+                       <string>PBXBookmarksModule</string>
+                       <key>Name</key>
+                       <string>Bookmarks Tool</string>
+               </dict>
+               <dict>
+                       <key>BundleLoadPath</key>
+                       <string></string>
+                       <key>MaxInstances</key>
+                       <string>n</string>
+                       <key>Module</key>
+                       <string>PBXClassBrowserModule</string>
+                       <key>Name</key>
+                       <string>Class Browser</string>
+               </dict>
+               <dict>
+                       <key>BundleLoadPath</key>
+                       <string></string>
+                       <key>MaxInstances</key>
+                       <string>n</string>
+                       <key>Module</key>
+                       <string>PBXCVSModule</string>
+                       <key>Name</key>
+                       <string>Source Code Control Tool</string>
+               </dict>
+               <dict>
+                       <key>BundleLoadPath</key>
+                       <string></string>
+                       <key>MaxInstances</key>
+                       <string>n</string>
+                       <key>Module</key>
+                       <string>PBXDebugBreakpointsModule</string>
+                       <key>Name</key>
+                       <string>Debug Breakpoints Tool</string>
+               </dict>
+               <dict>
+                       <key>BundleLoadPath</key>
+                       <string></string>
+                       <key>MaxInstances</key>
+                       <string>n</string>
+                       <key>Module</key>
+                       <string>XCDockableInspector</string>
+                       <key>Name</key>
+                       <string>Inspector</string>
+               </dict>
+               <dict>
+                       <key>BundleLoadPath</key>
+                       <string></string>
+                       <key>MaxInstances</key>
+                       <string>n</string>
+                       <key>Module</key>
+                       <string>PBXOpenQuicklyModule</string>
+                       <key>Name</key>
+                       <string>Open Quickly Tool</string>
+               </dict>
+               <dict>
+                       <key>BundleLoadPath</key>
+                       <string></string>
+                       <key>MaxInstances</key>
+                       <string>1</string>
+                       <key>Module</key>
+                       <string>PBXDebugSessionModule</string>
+                       <key>Name</key>
+                       <string>Debugger</string>
+               </dict>
+               <dict>
+                       <key>BundleLoadPath</key>
+                       <string></string>
+                       <key>MaxInstances</key>
+                       <string>1</string>
+                       <key>Module</key>
+                       <string>PBXDebugCLIModule</string>
+                       <key>Name</key>
+                       <string>Debug Console</string>
+               </dict>
+               <dict>
+                       <key>BundleLoadPath</key>
+                       <string></string>
+                       <key>MaxInstances</key>
+                       <string>n</string>
+                       <key>Module</key>
+                       <string>XCSnapshotModule</string>
+                       <key>Name</key>
+                       <string>Snapshots Tool</string>
+               </dict>
+       </array>
+       <key>BundlePath</key>
+       <string>/Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources</string>
+       <key>Description</key>
+       <string>AIODescriptionKey</string>
+       <key>DockingSystemVisible</key>
+       <false/>
+       <key>Extension</key>
+       <string>perspectivev3</string>
+       <key>FavBarConfig</key>
+       <dict>
+               <key>PBXProjectModuleGUID</key>
+               <string>13299D890D18558B00CA453F</string>
+               <key>XCBarModuleItemNames</key>
+               <dict/>
+               <key>XCBarModuleItems</key>
+               <array/>
+       </dict>
+       <key>FirstTimeWindowDisplayed</key>
+       <false/>
+       <key>Identifier</key>
+       <string>com.apple.perspectives.project.defaultV3</string>
+       <key>MajorVersion</key>
+       <integer>34</integer>
+       <key>MinorVersion</key>
+       <integer>0</integer>
+       <key>Name</key>
+       <string>All-In-One</string>
+       <key>Notifications</key>
+       <array/>
+       <key>OpenEditors</key>
+       <array>
+               <dict>
+                       <key>Content</key>
+                       <dict>
+                               <key>PBXProjectModuleGUID</key>
+                               <string>13B421730D1873220053EF7C</string>
+                               <key>PBXProjectModuleLabel</key>
+                               <string>KeychainPlugIn.h</string>
+                               <key>PBXSplitModuleInNavigatorKey</key>
+                               <dict>
+                                       <key>Split0</key>
+                                       <dict>
+                                               <key>PBXProjectModuleGUID</key>
+                                               <string>13B421740D1873220053EF7C</string>
+                                               <key>PBXProjectModuleLabel</key>
+                                               <string>KeychainPlugIn.h</string>
+                                               <key>_historyCapacity</key>
+                                               <integer>0</integer>
+                                               <key>bookmark</key>
+                                               <string>13B421980D188AA90053EF7C</string>
+                                               <key>history</key>
+                                               <array>
+                                                       <string>13B4217D0D1874490053EF7C</string>
+                                               </array>
+                                       </dict>
+                                       <key>SplitCount</key>
+                                       <string>1</string>
+                               </dict>
+                               <key>StatusBarVisibility</key>
+                               <true/>
+                       </dict>
+                       <key>Geometry</key>
+                       <dict>
+                               <key>Frame</key>
+                               <string>{{0, 20}, {927, 621}}</string>
+                               <key>PBXModuleWindowStatusBarHidden2</key>
+                               <false/>
+                               <key>RubberWindowFrame</key>
+                               <string>259 190 927 662 0 0 1680 1028 </string>
+                       </dict>
+               </dict>
+               <dict>
+                       <key>Content</key>
+                       <dict>
+                               <key>PBXProjectModuleGUID</key>
+                               <string>13B421760D1873220053EF7C</string>
+                               <key>PBXProjectModuleLabel</key>
+                               <string>KeychainPlugIn.m</string>
+                               <key>PBXSplitModuleInNavigatorKey</key>
+                               <dict>
+                                       <key>Split0</key>
+                                       <dict>
+                                               <key>PBXProjectModuleGUID</key>
+                                               <string>13B421770D1873220053EF7C</string>
+                                               <key>PBXProjectModuleLabel</key>
+                                               <string>KeychainPlugIn.m</string>
+                                               <key>_historyCapacity</key>
+                                               <integer>0</integer>
+                                               <key>bookmark</key>
+                                               <string>13B421990D188AA90053EF7C</string>
+                                               <key>history</key>
+                                               <array>
+                                                       <string>13B421700D186EFC0053EF7C</string>
+                                               </array>
+                                       </dict>
+                                       <key>SplitCount</key>
+                                       <string>1</string>
+                               </dict>
+                               <key>StatusBarVisibility</key>
+                               <true/>
+                       </dict>
+                       <key>Geometry</key>
+                       <dict>
+                               <key>Frame</key>
+                               <string>{{0, 20}, {1030, 658}}</string>
+                               <key>PBXModuleWindowStatusBarHidden2</key>
+                               <false/>
+                               <key>RubberWindowFrame</key>
+                               <string>351 118 1030 699 0 0 1680 1028 </string>
+                       </dict>
+               </dict>
+       </array>
+       <key>PerspectiveWidths</key>
+       <array>
+               <integer>1171</integer>
+               <integer>1171</integer>
+       </array>
+       <key>Perspectives</key>
+       <array>
+               <dict>
+                       <key>ChosenToolbarItems</key>
+                       <array>
+                               <string>XCToolbarPerspectiveControl</string>
+                               <string>NSToolbarSeparatorItem</string>
+                               <string>active-target-popup</string>
+                               <string>active-buildstyle-popup</string>
+                               <string>action</string>
+                               <string>NSToolbarFlexibleSpaceItem</string>
+                               <string>buildOrClean</string>
+                               <string>build-and-goOrGo</string>
+                               <string>com.apple.ide.PBXToolbarStopButton</string>
+                               <string>get-info</string>
+                               <string>toggle-editor</string>
+                               <string>NSToolbarFlexibleSpaceItem</string>
+                               <string>com.apple.pbx.toolbar.searchfield</string>
+                       </array>
+                       <key>ControllerClassBaseName</key>
+                       <string></string>
+                       <key>IconName</key>
+                       <string>WindowOfProject</string>
+                       <key>Identifier</key>
+                       <string>perspective.project</string>
+                       <key>IsVertical</key>
+                       <false/>
+                       <key>Layout</key>
+                       <array>
+                               <dict>
+                                       <key>ContentConfiguration</key>
+                                       <dict>
+                                               <key>PBXBottomSmartGroupGIDs</key>
+                                               <array>
+                                                       <string>1C37FBAC04509CD000000102</string>
+                                                       <string>1C37FAAC04509CD000000102</string>
+                                                       <string>1C08E77C0454961000C914BD</string>
+                                                       <string>1C37FABC05509CD000000102</string>
+                                                       <string>1C37FABC05539CD112110102</string>
+                                                       <string>E2644B35053B69B200211256</string>
+                                                       <string>1C37FABC04509CD000100104</string>
+                                                       <string>1CC0EA4004350EF90044410B</string>
+                                                       <string>1CC0EA4004350EF90041110B</string>
+                                                       <string>1C77FABC04509CD000000102</string>
+                                               </array>
+                                               <key>PBXProjectModuleGUID</key>
+                                               <string>1CA23ED40692098700951B8B</string>
+                                               <key>PBXProjectModuleLabel</key>
+                                               <string>Files</string>
+                                               <key>PBXProjectStructureProvided</key>
+                                               <string>yes</string>
+                                               <key>PBXSmartGroupTreeModuleColumnData</key>
+                                               <dict>
+                                                       <key>PBXSmartGroupTreeModuleColumnWidthsKey</key>
+                                                       <array>
+                                                               <real>185</real>
+                                                       </array>
+                                                       <key>PBXSmartGroupTreeModuleColumnsKey_v4</key>
+                                                       <array>
+                                                               <string>MainColumn</string>
+                                                       </array>
+                                               </dict>
+                                               <key>PBXSmartGroupTreeModuleOutlineStateKey_v7</key>
+                                               <dict>
+                                                       <key>PBXSmartGroupTreeModuleOutlineStateExpansionKey</key>
+                                                       <array>
+                                                               <string>089C166AFE841209C02AAC07</string>
+                                                               <string>089C1671FE841209C02AAC07</string>
+                                                               <string>1058C7ACFEA557BF11CA2CBB</string>
+                                                               <string>1058C7AEFEA557BF11CA2CBB</string>
+                                                               <string>1C37FBAC04509CD000000102</string>
+                                                       </array>
+                                                       <key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
+                                                       <array>
+                                                               <array>
+                                                                       <integer>1</integer>
+                                                                       <integer>0</integer>
+                                                               </array>
+                                                       </array>
+                                                       <key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
+                                                       <string>{{0, 0}, {185, 707}}</string>
+                                               </dict>
+                                               <key>PBXTopSmartGroupGIDs</key>
+                                               <array/>
+                                               <key>XCIncludePerspectivesSwitch</key>
+                                               <false/>
+                                       </dict>
+                                       <key>GeometryConfiguration</key>
+                                       <dict>
+                                               <key>Frame</key>
+                                               <string>{{0, 0}, {202, 725}}</string>
+                                               <key>GroupTreeTableConfiguration</key>
+                                               <array>
+                                                       <string>MainColumn</string>
+                                                       <real>185</real>
+                                               </array>
+                                               <key>RubberWindowFrame</key>
+                                               <string>215 167 1171 766 0 0 1680 1028 </string>
+                                       </dict>
+                                       <key>Module</key>
+                                       <string>PBXSmartGroupTreeModule</string>
+                                       <key>Proportion</key>
+                                       <string>202pt</string>
+                               </dict>
+                               <dict>
+                                       <key>Dock</key>
+                                       <array>
+                                               <dict>
+                                                       <key>ContentConfiguration</key>
+                                                       <dict>
+                                                               <key>PBXProjectModuleGUID</key>
+                                                               <string>13299D840D18558B00CA453F</string>
+                                                               <key>PBXProjectModuleLabel</key>
+                                                               <string></string>
+                                                               <key>PBXSplitModuleInNavigatorKey</key>
+                                                               <dict>
+                                                                       <key>Split0</key>
+                                                                       <dict>
+                                                                               <key>PBXProjectModuleGUID</key>
+                                                                               <string>13299D850D18558B00CA453F</string>
+                                                                               <key>PBXProjectModuleLabel</key>
+                                                                               <string></string>
+                                                                       </dict>
+                                                                       <key>SplitCount</key>
+                                                                       <string>1</string>
+                                                               </dict>
+                                                               <key>StatusBarVisibility</key>
+                                                               <true/>
+                                                               <key>XCSharingToken</key>
+                                                               <string>com.apple.Xcode.CommonNavigatorGroupSharingToken</string>
+                                                       </dict>
+                                                       <key>GeometryConfiguration</key>
+                                                       <dict>
+                                                               <key>Frame</key>
+                                                               <string>{{0, 0}, {964, 0}}</string>
+                                                               <key>RubberWindowFrame</key>
+                                                               <string>215 167 1171 766 0 0 1680 1028 </string>
+                                                       </dict>
+                                                       <key>Module</key>
+                                                       <string>PBXNavigatorGroup</string>
+                                                       <key>Proportion</key>
+                                                       <string>0pt</string>
+                                               </dict>
+                                               <dict>
+                                                       <key>Proportion</key>
+                                                       <string>720pt</string>
+                                                       <key>Tabs</key>
+                                                       <array>
+                                                               <dict>
+                                                                       <key>ContentConfiguration</key>
+                                                                       <dict>
+                                                                               <key>PBXProjectModuleGUID</key>
+                                                                               <string>1CA23EDF0692099D00951B8B</string>
+                                                                               <key>PBXProjectModuleLabel</key>
+                                                                               <string>Detail</string>
+                                                                       </dict>
+                                                                       <key>GeometryConfiguration</key>
+                                                                       <dict>
+                                                                               <key>Frame</key>
+                                                                               <string>{{10, 27}, {964, 693}}</string>
+                                                                       </dict>
+                                                                       <key>Module</key>
+                                                                       <string>XCDetailModule</string>
+                                                               </dict>
+                                                               <dict>
+                                                                       <key>ContentConfiguration</key>
+                                                                       <dict>
+                                                                               <key>PBXProjectModuleGUID</key>
+                                                                               <string>1CA23EE00692099D00951B8B</string>
+                                                                               <key>PBXProjectModuleLabel</key>
+                                                                               <string>Project Find</string>
+                                                                       </dict>
+                                                                       <key>GeometryConfiguration</key>
+                                                                       <dict>
+                                                                               <key>Frame</key>
+                                                                               <string>{{10, 27}, {782, 504}}</string>
+                                                                       </dict>
+                                                                       <key>Module</key>
+                                                                       <string>PBXProjectFindModule</string>
+                                                               </dict>
+                                                               <dict>
+                                                                       <key>ContentConfiguration</key>
+                                                                       <dict>
+                                                                               <key>PBXCVSModuleFilterTypeKey</key>
+                                                                               <integer>1032</integer>
+                                                                               <key>PBXProjectModuleGUID</key>
+                                                                               <string>1CA23EE10692099D00951B8B</string>
+                                                                               <key>PBXProjectModuleLabel</key>
+                                                                               <string>SCM Results</string>
+                                                                       </dict>
+                                                                       <key>GeometryConfiguration</key>
+                                                                       <dict>
+                                                                               <key>Frame</key>
+                                                                               <string>{{10, 27}, {964, 693}}</string>
+                                                                       </dict>
+                                                                       <key>Module</key>
+                                                                       <string>PBXCVSModule</string>
+                                                               </dict>
+                                                               <dict>
+                                                                       <key>BecomeActive</key>
+                                                                       <true/>
+                                                                       <key>ContentConfiguration</key>
+                                                                       <dict>
+                                                                               <key>PBXProjectModuleGUID</key>
+                                                                               <string>XCMainBuildResultsModuleGUID</string>
+                                                                               <key>PBXProjectModuleLabel</key>
+                                                                               <string>Build</string>
+                                                                               <key>XCBuildResultsTrigger_Collapse</key>
+                                                                               <integer>1021</integer>
+                                                                               <key>XCBuildResultsTrigger_Open</key>
+                                                                               <integer>1011</integer>
+                                                                       </dict>
+                                                                       <key>GeometryConfiguration</key>
+                                                                       <dict>
+                                                                               <key>Frame</key>
+                                                                               <string>{{10, 27}, {964, 693}}</string>
+                                                                               <key>RubberWindowFrame</key>
+                                                                               <string>215 167 1171 766 0 0 1680 1028 </string>
+                                                                       </dict>
+                                                                       <key>Module</key>
+                                                                       <string>PBXBuildResultsModule</string>
+                                                               </dict>
+                                                       </array>
+                                               </dict>
+                                       </array>
+                                       <key>Proportion</key>
+                                       <string>964pt</string>
+                               </dict>
+                       </array>
+                       <key>Name</key>
+                       <string>Project</string>
+                       <key>ServiceClasses</key>
+                       <array>
+                               <string>XCModuleDock</string>
+                               <string>PBXSmartGroupTreeModule</string>
+                               <string>XCModuleDock</string>
+                               <string>PBXNavigatorGroup</string>
+                               <string>XCDockableTabModule</string>
+                               <string>XCDetailModule</string>
+                               <string>PBXProjectFindModule</string>
+                               <string>PBXCVSModule</string>
+                               <string>PBXBuildResultsModule</string>
+                       </array>
+                       <key>TableOfContents</key>
+                       <array>
+                               <string>13B4216A0D186AA80053EF7C</string>
+                               <string>1CA23ED40692098700951B8B</string>
+                               <string>13B4216B0D186AA80053EF7C</string>
+                               <string>13299D840D18558B00CA453F</string>
+                               <string>13B4216C0D186AA80053EF7C</string>
+                               <string>1CA23EDF0692099D00951B8B</string>
+                               <string>1CA23EE00692099D00951B8B</string>
+                               <string>1CA23EE10692099D00951B8B</string>
+                               <string>XCMainBuildResultsModuleGUID</string>
+                       </array>
+                       <key>ToolbarConfiguration</key>
+                       <string>xcode.toolbar.config.defaultV3</string>
+               </dict>
+               <dict>
+                       <key>ChosenToolbarItems</key>
+                       <array>
+                               <string>XCToolbarPerspectiveControl</string>
+                               <string>NSToolbarSeparatorItem</string>
+                               <string>build-and-go</string>
+                               <string>go</string>
+                               <string>NSToolbarFlexibleSpaceItem</string>
+                               <string>debugger-fix-and-continue</string>
+                               <string>debugger-restart-executable</string>
+                               <string>debugger-pause</string>
+                               <string>debugger-step-over</string>
+                               <string>debugger-step-into</string>
+                               <string>debugger-step-out</string>
+                               <string>debugger-step-instruction</string>
+                               <string>NSToolbarFlexibleSpaceItem</string>
+                       </array>
+                       <key>ControllerClassBaseName</key>
+                       <string>PBXDebugSessionModule</string>
+                       <key>IconName</key>
+                       <string>DebugTabIcon</string>
+                       <key>Identifier</key>
+                       <string>perspective.debug</string>
+                       <key>IsVertical</key>
+                       <true/>
+                       <key>Layout</key>
+                       <array>
+                               <dict>
+                                       <key>ContentConfiguration</key>
+                                       <dict>
+                                               <key>PBXProjectModuleGUID</key>
+                                               <string>1CCC7628064C1048000F2A68</string>
+                                               <key>PBXProjectModuleLabel</key>
+                                               <string>Debugger Console</string>
+                                       </dict>
+                                       <key>GeometryConfiguration</key>
+                                       <dict>
+                                               <key>Frame</key>
+                                               <string>{{0, 0}, {1171, 277}}</string>
+                                       </dict>
+                                       <key>Module</key>
+                                       <string>PBXDebugCLIModule</string>
+                                       <key>Proportion</key>
+                                       <string>277pt</string>
+                               </dict>
+                               <dict>
+                                       <key>ContentConfiguration</key>
+                                       <dict>
+                                               <key>Debugger</key>
+                                               <dict>
+                                                       <key>HorizontalSplitView</key>
+                                                       <dict>
+                                                               <key>_collapsingFrameDimension</key>
+                                                               <real>0.0</real>
+                                                               <key>_indexOfCollapsedView</key>
+                                                               <integer>0</integer>
+                                                               <key>_percentageOfCollapsedView</key>
+                                                               <real>0.0</real>
+                                                               <key>isCollapsed</key>
+                                                               <string>yes</string>
+                                                               <key>sizes</key>
+                                                               <array>
+                                                                       <string>{{0, 0}, {571, 215}}</string>
+                                                                       <string>{{571, 0}, {600, 215}}</string>
+                                                               </array>
+                                                       </dict>
+                                                       <key>VerticalSplitView</key>
+                                                       <dict>
+                                                               <key>_collapsingFrameDimension</key>
+                                                               <real>0.0</real>
+                                                               <key>_indexOfCollapsedView</key>
+                                                               <integer>0</integer>
+                                                               <key>_percentageOfCollapsedView</key>
+                                                               <real>0.0</real>
+                                                               <key>isCollapsed</key>
+                                                               <string>yes</string>
+                                                               <key>sizes</key>
+                                                               <array>
+                                                                       <string>{{0, 0}, {1171, 215}}</string>
+                                                                       <string>{{0, 215}, {1171, 228}}</string>
+                                                               </array>
+                                                       </dict>
+                                               </dict>
+                                               <key>LauncherConfigVersion</key>
+                                               <string>8</string>
+                                               <key>PBXProjectModuleGUID</key>
+                                               <string>1CCC7629064C1048000F2A68</string>
+                                               <key>PBXProjectModuleLabel</key>
+                                               <string>Debug</string>
+                                       </dict>
+                                       <key>GeometryConfiguration</key>
+                                       <dict>
+                                               <key>DebugConsoleVisible</key>
+                                               <string>None</string>
+                                               <key>DebugConsoleWindowFrame</key>
+                                               <string>{{200, 200}, {500, 300}}</string>
+                                               <key>DebugSTDIOWindowFrame</key>
+                                               <string>{{200, 200}, {500, 300}}</string>
+                                               <key>Frame</key>
+                                               <string>{{0, 282}, {1171, 443}}</string>
+                                               <key>PBXDebugSessionStackFrameViewKey</key>
+                                               <dict>
+                                                       <key>DebugVariablesTableConfiguration</key>
+                                                       <array>
+                                                               <string>Name</string>
+                                                               <real>120</real>
+                                                               <string>Value</string>
+                                                               <real>85</real>
+                                                               <string>Summary</string>
+                                                               <real>370</real>
+                                                       </array>
+                                                       <key>Frame</key>
+                                                       <string>{{571, 0}, {600, 215}}</string>
+                                               </dict>
+                                       </dict>
+                                       <key>Module</key>
+                                       <string>PBXDebugSessionModule</string>
+                                       <key>Proportion</key>
+                                       <string>443pt</string>
+                               </dict>
+                       </array>
+                       <key>Name</key>
+                       <string>Debug</string>
+                       <key>ServiceClasses</key>
+                       <array>
+                               <string>XCModuleDock</string>
+                               <string>PBXDebugCLIModule</string>
+                               <string>PBXDebugSessionModule</string>
+                               <string>PBXDebugProcessAndThreadModule</string>
+                               <string>PBXDebugProcessViewModule</string>
+                               <string>PBXDebugThreadViewModule</string>
+                               <string>PBXDebugStackFrameViewModule</string>
+                               <string>PBXNavigatorGroup</string>
+                       </array>
+                       <key>TableOfContents</key>
+                       <array>
+                               <string>13299EC40D18594200CA453F</string>
+                               <string>1CCC7628064C1048000F2A68</string>
+                               <string>1CCC7629064C1048000F2A68</string>
+                               <string>13299EC50D18594200CA453F</string>
+                               <string>13299EC60D18594200CA453F</string>
+                               <string>13299EC70D18594200CA453F</string>
+                               <string>13299EC80D18594200CA453F</string>
+                               <string>13299D8A0D1855F200CA453F</string>
+                       </array>
+                       <key>ToolbarConfiguration</key>
+                       <string>xcode.toolbar.config.debugV3</string>
+               </dict>
+       </array>
+       <key>PerspectivesBarVisible</key>
+       <true/>
+       <key>ShelfIsVisible</key>
+       <false/>
+       <key>SourceDescription</key>
+       <string>file at '/Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources/XCPerspectivesSpecification.xcperspec'</string>
+       <key>StatusbarIsVisible</key>
+       <true/>
+       <key>TimeStamp</key>
+       <real>0.0</real>
+       <key>ToolbarDisplayMode</key>
+       <integer>1</integer>
+       <key>ToolbarIsVisible</key>
+       <true/>
+       <key>ToolbarSizeMode</key>
+       <integer>1</integer>
+       <key>Type</key>
+       <string>Perspectives</string>
+       <key>UpdateMessage</key>
+       <string></string>
+       <key>WindowJustification</key>
+       <integer>5</integer>
+       <key>WindowOrderList</key>
+       <array>
+               <string>13B421760D1873220053EF7C</string>
+               <string>13B421730D1873220053EF7C</string>
+               <string>/Volumes/chagenbu/Documents/Dashboard/KeychainPlugin/KeychainPlugIn.xcodeproj</string>
+       </array>
+       <key>WindowString</key>
+       <string>215 167 1171 766 0 0 1680 1028 </string>
+       <key>WindowToolsV3</key>
+       <array>
+               <dict>
+                       <key>Identifier</key>
+                       <string>windowTool.debugger</string>
+                       <key>Layout</key>
+                       <array>
+                               <dict>
+                                       <key>Dock</key>
+                                       <array>
+                                               <dict>
+                                                       <key>ContentConfiguration</key>
+                                                       <dict>
+                                                               <key>Debugger</key>
+                                                               <dict>
+                                                                       <key>HorizontalSplitView</key>
+                                                                       <dict>
+                                                                               <key>_collapsingFrameDimension</key>
+                                                                               <real>0.0</real>
+                                                                               <key>_indexOfCollapsedView</key>
+                                                                               <integer>0</integer>
+                                                                               <key>_percentageOfCollapsedView</key>
+                                                                               <real>0.0</real>
+                                                                               <key>isCollapsed</key>
+                                                                               <string>yes</string>
+                                                                               <key>sizes</key>
+                                                                               <array>
+                                                                                       <string>{{0, 0}, {317, 164}}</string>
+                                                                                       <string>{{317, 0}, {377, 164}}</string>
+                                                                               </array>
+                                                                       </dict>
+                                                                       <key>VerticalSplitView</key>
+                                                                       <dict>
+                                                                               <key>_collapsingFrameDimension</key>
+                                                                               <real>0.0</real>
+                                                                               <key>_indexOfCollapsedView</key>
+                                                                               <integer>0</integer>
+                                                                               <key>_percentageOfCollapsedView</key>
+                                                                               <real>0.0</real>
+                                                                               <key>isCollapsed</key>
+                                                                               <string>yes</string>
+                                                                               <key>sizes</key>
+                                                                               <array>
+                                                                                       <string>{{0, 0}, {694, 164}}</string>
+                                                                                       <string>{{0, 164}, {694, 216}}</string>
+                                                                               </array>
+                                                                       </dict>
+                                                               </dict>
+                                                               <key>LauncherConfigVersion</key>
+                                                               <string>8</string>
+                                                               <key>PBXProjectModuleGUID</key>
+                                                               <string>1C162984064C10D400B95A72</string>
+                                                               <key>PBXProjectModuleLabel</key>
+                                                               <string>Debug - GLUTExamples (Underwater)</string>
+                                                       </dict>
+                                                       <key>GeometryConfiguration</key>
+                                                       <dict>
+                                                               <key>DebugConsoleDrawerSize</key>
+                                                               <string>{100, 120}</string>
+                                                               <key>DebugConsoleVisible</key>
+                                                               <string>None</string>
+                                                               <key>DebugConsoleWindowFrame</key>
+                                                               <string>{{200, 200}, {500, 300}}</string>
+                                                               <key>DebugSTDIOWindowFrame</key>
+                                                               <string>{{200, 200}, {500, 300}}</string>
+                                                               <key>Frame</key>
+                                                               <string>{{0, 0}, {694, 380}}</string>
+                                                               <key>RubberWindowFrame</key>
+                                                               <string>321 238 694 422 0 0 1440 878 </string>
+                                                       </dict>
+                                                       <key>Module</key>
+                                                       <string>PBXDebugSessionModule</string>
+                                                       <key>Proportion</key>
+                                                       <string>100%</string>
+                                               </dict>
+                                       </array>
+                                       <key>Proportion</key>
+                                       <string>100%</string>
+                               </dict>
+                       </array>
+                       <key>Name</key>
+                       <string>Debugger</string>
+                       <key>ServiceClasses</key>
+                       <array>
+                               <string>PBXDebugSessionModule</string>
+                       </array>
+                       <key>StatusbarIsVisible</key>
+                       <integer>1</integer>
+                       <key>TableOfContents</key>
+                       <array>
+                               <string>1CD10A99069EF8BA00B06720</string>
+                               <string>1C0AD2AB069F1E9B00FABCE6</string>
+                               <string>1C162984064C10D400B95A72</string>
+                               <string>1C0AD2AC069F1E9B00FABCE6</string>
+                       </array>
+                       <key>ToolbarConfiguration</key>
+                       <string>xcode.toolbar.config.debugV3</string>
+                       <key>WindowString</key>
+                       <string>321 238 694 422 0 0 1440 878 </string>
+                       <key>WindowToolGUID</key>
+                       <string>1CD10A99069EF8BA00B06720</string>
+                       <key>WindowToolIsVisible</key>
+                       <integer>0</integer>
+               </dict>
+               <dict>
+                       <key>Identifier</key>
+                       <string>windowTool.build</string>
+                       <key>Layout</key>
+                       <array>
+                               <dict>
+                                       <key>Dock</key>
+                                       <array>
+                                               <dict>
+                                                       <key>ContentConfiguration</key>
+                                                       <dict>
+                                                               <key>PBXProjectModuleGUID</key>
+                                                               <string>1CD0528F0623707200166675</string>
+                                                               <key>PBXProjectModuleLabel</key>
+                                                               <string>&lt;No Editor&gt;</string>
+                                                               <key>PBXSplitModuleInNavigatorKey</key>
+                                                               <dict>
+                                                                       <key>Split0</key>
+                                                                       <dict>
+                                                                               <key>PBXProjectModuleGUID</key>
+                                                                               <string>1CD052900623707200166675</string>
+                                                                       </dict>
+                                                                       <key>SplitCount</key>
+                                                                       <string>1</string>
+                                                               </dict>
+                                                               <key>StatusBarVisibility</key>
+                                                               <integer>1</integer>
+                                                       </dict>
+                                                       <key>GeometryConfiguration</key>
+                                                       <dict>
+                                                               <key>Frame</key>
+                                                               <string>{{0, 0}, {500, 215}}</string>
+                                                               <key>RubberWindowFrame</key>
+                                                               <string>192 257 500 500 0 0 1280 1002 </string>
+                                                       </dict>
+                                                       <key>Module</key>
+                                                       <string>PBXNavigatorGroup</string>
+                                                       <key>Proportion</key>
+                                                       <string>218pt</string>
+                                               </dict>
+                                               <dict>
+                                                       <key>BecomeActive</key>
+                                                       <integer>1</integer>
+                                                       <key>ContentConfiguration</key>
+                                                       <dict>
+                                                               <key>PBXProjectModuleGUID</key>
+                                                               <string>XCMainBuildResultsModuleGUID</string>
+                                                               <key>PBXProjectModuleLabel</key>
+                                                               <string>Build</string>
+                                                       </dict>
+                                                       <key>GeometryConfiguration</key>
+                                                       <dict>
+                                                               <key>Frame</key>
+                                                               <string>{{0, 222}, {500, 236}}</string>
+                                                               <key>RubberWindowFrame</key>
+                                                               <string>192 257 500 500 0 0 1280 1002 </string>
+                                                       </dict>
+                                                       <key>Module</key>
+                                                       <string>PBXBuildResultsModule</string>
+                                                       <key>Proportion</key>
+                                                       <string>236pt</string>
+                                               </dict>
+                                       </array>
+                                       <key>Proportion</key>
+                                       <string>458pt</string>
+                               </dict>
+                       </array>
+                       <key>Name</key>
+                       <string>Build Results</string>
+                       <key>ServiceClasses</key>
+                       <array>
+                               <string>PBXBuildResultsModule</string>
+                       </array>
+                       <key>StatusbarIsVisible</key>
+                       <integer>1</integer>
+                       <key>TableOfContents</key>
+                       <array>
+                               <string>1C78EAA5065D492600B07095</string>
+                               <string>1C78EAA6065D492600B07095</string>
+                               <string>1CD0528F0623707200166675</string>
+                               <string>XCMainBuildResultsModuleGUID</string>
+                       </array>
+                       <key>ToolbarConfiguration</key>
+                       <string>xcode.toolbar.config.buildV3</string>
+                       <key>WindowString</key>
+                       <string>192 257 500 500 0 0 1280 1002 </string>
+               </dict>
+               <dict>
+                       <key>Identifier</key>
+                       <string>windowTool.find</string>
+                       <key>Layout</key>
+                       <array>
+                               <dict>
+                                       <key>Dock</key>
+                                       <array>
+                                               <dict>
+                                                       <key>Dock</key>
+                                                       <array>
+                                                               <dict>
+                                                                       <key>ContentConfiguration</key>
+                                                                       <dict>
+                                                                               <key>PBXProjectModuleGUID</key>
+                                                                               <string>1CDD528C0622207200134675</string>
+                                                                               <key>PBXProjectModuleLabel</key>
+                                                                               <string>&lt;No Editor&gt;</string>
+                                                                               <key>PBXSplitModuleInNavigatorKey</key>
+                                                                               <dict>
+                                                                                       <key>Split0</key>
+                                                                                       <dict>
+                                                                                               <key>PBXProjectModuleGUID</key>
+                                                                                               <string>1CD0528D0623707200166675</string>
+                                                                                       </dict>
+                                                                                       <key>SplitCount</key>
+                                                                                       <string>1</string>
+                                                                               </dict>
+                                                                               <key>StatusBarVisibility</key>
+                                                                               <integer>1</integer>
+                                                                       </dict>
+                                                                       <key>GeometryConfiguration</key>
+                                                                       <dict>
+                                                                               <key>Frame</key>
+                                                                               <string>{{0, 0}, {781, 167}}</string>
+                                                                               <key>RubberWindowFrame</key>
+                                                                               <string>62 385 781 470 0 0 1440 878 </string>
+                                                                       </dict>
+                                                                       <key>Module</key>
+                                                                       <string>PBXNavigatorGroup</string>
+                                                                       <key>Proportion</key>
+                                                                       <string>781pt</string>
+                                                               </dict>
+                                                       </array>
+                                                       <key>Proportion</key>
+                                                       <string>50%</string>
+                                               </dict>
+                                               <dict>
+                                                       <key>BecomeActive</key>
+                                                       <integer>1</integer>
+                                                       <key>ContentConfiguration</key>
+                                                       <dict>
+                                                               <key>PBXProjectModuleGUID</key>
+                                                               <string>1CD0528E0623707200166675</string>
+                                                               <key>PBXProjectModuleLabel</key>
+                                                               <string>Project Find</string>
+                                                       </dict>
+                                                       <key>GeometryConfiguration</key>
+                                                       <dict>
+                                                               <key>Frame</key>
+                                                               <string>{{8, 0}, {773, 254}}</string>
+                                                               <key>RubberWindowFrame</key>
+                                                               <string>62 385 781 470 0 0 1440 878 </string>
+                                                       </dict>
+                                                       <key>Module</key>
+                                                       <string>PBXProjectFindModule</string>
+                                                       <key>Proportion</key>
+                                                       <string>50%</string>
+                                               </dict>
+                                       </array>
+                                       <key>Proportion</key>
+                                       <string>428pt</string>
+                               </dict>
+                       </array>
+                       <key>Name</key>
+                       <string>Project Find</string>
+                       <key>ServiceClasses</key>
+                       <array>
+                               <string>PBXProjectFindModule</string>
+                       </array>
+                       <key>StatusbarIsVisible</key>
+                       <integer>1</integer>
+                       <key>TableOfContents</key>
+                       <array>
+                               <string>1C530D57069F1CE1000CFCEE</string>
+                               <string>1C530D58069F1CE1000CFCEE</string>
+                               <string>1C530D59069F1CE1000CFCEE</string>
+                               <string>1CDD528C0622207200134675</string>
+                               <string>1C530D5A069F1CE1000CFCEE</string>
+                               <string>1CE0B1FE06471DED0097A5F4</string>
+                               <string>1CD0528E0623707200166675</string>
+                       </array>
+                       <key>WindowString</key>
+                       <string>62 385 781 470 0 0 1440 878 </string>
+                       <key>WindowToolGUID</key>
+                       <string>1C530D57069F1CE1000CFCEE</string>
+                       <key>WindowToolIsVisible</key>
+                       <integer>0</integer>
+               </dict>
+               <dict>
+                       <key>Identifier</key>
+                       <string>windowTool.snapshots</string>
+                       <key>Layout</key>
+                       <array>
+                               <dict>
+                                       <key>Dock</key>
+                                       <array>
+                                               <dict>
+                                                       <key>Module</key>
+                                                       <string>XCSnapshotModule</string>
+                                                       <key>Proportion</key>
+                                                       <string>100%</string>
+                                               </dict>
+                                       </array>
+                                       <key>Proportion</key>
+                                       <string>100%</string>
+                               </dict>
+                       </array>
+                       <key>Name</key>
+                       <string>Snapshots</string>
+                       <key>ServiceClasses</key>
+                       <array>
+                               <string>XCSnapshotModule</string>
+                       </array>
+                       <key>StatusbarIsVisible</key>
+                       <string>Yes</string>
+                       <key>ToolbarConfiguration</key>
+                       <string>xcode.toolbar.config.snapshots</string>
+                       <key>WindowString</key>
+                       <string>315 824 300 550 0 0 1440 878 </string>
+                       <key>WindowToolIsVisible</key>
+                       <string>Yes</string>
+               </dict>
+               <dict>
+                       <key>Identifier</key>
+                       <string>windowTool.debuggerConsole</string>
+                       <key>Layout</key>
+                       <array>
+                               <dict>
+                                       <key>Dock</key>
+                                       <array>
+                                               <dict>
+                                                       <key>BecomeActive</key>
+                                                       <integer>1</integer>
+                                                       <key>ContentConfiguration</key>
+                                                       <dict>
+                                                               <key>PBXProjectModuleGUID</key>
+                                                               <string>1C78EAAC065D492600B07095</string>
+                                                               <key>PBXProjectModuleLabel</key>
+                                                               <string>Debugger Console</string>
+                                                       </dict>
+                                                       <key>GeometryConfiguration</key>
+                                                       <dict>
+                                                               <key>Frame</key>
+                                                               <string>{{0, 0}, {700, 358}}</string>
+                                                               <key>RubberWindowFrame</key>
+                                                               <string>149 87 700 400 0 0 1440 878 </string>
+                                                       </dict>
+                                                       <key>Module</key>
+                                                       <string>PBXDebugCLIModule</string>
+                                                       <key>Proportion</key>
+                                                       <string>358pt</string>
+                                               </dict>
+                                       </array>
+                                       <key>Proportion</key>
+                                       <string>358pt</string>
+                               </dict>
+                       </array>
+                       <key>Name</key>
+                       <string>Debugger Console</string>
+                       <key>ServiceClasses</key>
+                       <array>
+                               <string>PBXDebugCLIModule</string>
+                       </array>
+                       <key>StatusbarIsVisible</key>
+                       <integer>1</integer>
+                       <key>TableOfContents</key>
+                       <array>
+                               <string>1C530D5B069F1CE1000CFCEE</string>
+                               <string>1C530D5C069F1CE1000CFCEE</string>
+                               <string>1C78EAAC065D492600B07095</string>
+                       </array>
+                       <key>ToolbarConfiguration</key>
+                       <string>xcode.toolbar.config.consoleV3</string>
+                       <key>WindowString</key>
+                       <string>149 87 440 400 0 0 1440 878 </string>
+                       <key>WindowToolGUID</key>
+                       <string>1C530D5B069F1CE1000CFCEE</string>
+                       <key>WindowToolIsVisible</key>
+                       <integer>0</integer>
+               </dict>
+               <dict>
+                       <key>Identifier</key>
+                       <string>windowTool.scm</string>
+                       <key>Layout</key>
+                       <array>
+                               <dict>
+                                       <key>Dock</key>
+                                       <array>
+                                               <dict>
+                                                       <key>ContentConfiguration</key>
+                                                       <dict>
+                                                               <key>PBXProjectModuleGUID</key>
+                                                               <string>1C78EAB2065D492600B07095</string>
+                                                               <key>PBXProjectModuleLabel</key>
+                                                               <string>&lt;No Editor&gt;</string>
+                                                               <key>PBXSplitModuleInNavigatorKey</key>
+                                                               <dict>
+                                                                       <key>Split0</key>
+                                                                       <dict>
+                                                                               <key>PBXProjectModuleGUID</key>
+                                                                               <string>1C78EAB3065D492600B07095</string>
+                                                                       </dict>
+                                                                       <key>SplitCount</key>
+                                                                       <string>1</string>
+                                                               </dict>
+                                                               <key>StatusBarVisibility</key>
+                                                               <integer>1</integer>
+                                                       </dict>
+                                                       <key>GeometryConfiguration</key>
+                                                       <dict>
+                                                               <key>Frame</key>
+                                                               <string>{{0, 0}, {452, 0}}</string>
+                                                               <key>RubberWindowFrame</key>
+                                                               <string>743 379 452 308 0 0 1280 1002 </string>
+                                                       </dict>
+                                                       <key>Module</key>
+                                                       <string>PBXNavigatorGroup</string>
+                                                       <key>Proportion</key>
+                                                       <string>0pt</string>
+                                               </dict>
+                                               <dict>
+                                                       <key>BecomeActive</key>
+                                                       <integer>1</integer>
+                                                       <key>ContentConfiguration</key>
+                                                       <dict>
+                                                               <key>PBXProjectModuleGUID</key>
+                                                               <string>1CD052920623707200166675</string>
+                                                               <key>PBXProjectModuleLabel</key>
+                                                               <string>SCM</string>
+                                                       </dict>
+                                                       <key>GeometryConfiguration</key>
+                                                       <dict>
+                                                               <key>ConsoleFrame</key>
+                                                               <string>{{0, 259}, {452, 0}}</string>
+                                                               <key>Frame</key>
+                                                               <string>{{0, 7}, {452, 259}}</string>
+                                                               <key>RubberWindowFrame</key>
+                                                               <string>743 379 452 308 0 0 1280 1002 </string>
+                                                               <key>TableConfiguration</key>
+                                                               <array>
+                                                                       <string>Status</string>
+                                                                       <real>30</real>
+                                                                       <string>FileName</string>
+                                                                       <real>199</real>
+                                                                       <string>Path</string>
+                                                                       <real>197.09500122070312</real>
+                                                               </array>
+                                                               <key>TableFrame</key>
+                                                               <string>{{0, 0}, {452, 250}}</string>
+                                                       </dict>
+                                                       <key>Module</key>
+                                                       <string>PBXCVSModule</string>
+                                                       <key>Proportion</key>
+                                                       <string>262pt</string>
+                                               </dict>
+                                       </array>
+                                       <key>Proportion</key>
+                                       <string>266pt</string>
+                               </dict>
+                       </array>
+                       <key>Name</key>
+                       <string>SCM</string>
+                       <key>ServiceClasses</key>
+                       <array>
+                               <string>PBXCVSModule</string>
+                       </array>
+                       <key>StatusbarIsVisible</key>
+                       <integer>1</integer>
+                       <key>TableOfContents</key>
+                       <array>
+                               <string>1C78EAB4065D492600B07095</string>
+                               <string>1C78EAB5065D492600B07095</string>
+                               <string>1C78EAB2065D492600B07095</string>
+                               <string>1CD052920623707200166675</string>
+                       </array>
+                       <key>ToolbarConfiguration</key>
+                       <string>xcode.toolbar.config.scmV3</string>
+                       <key>WindowString</key>
+                       <string>743 379 452 308 0 0 1280 1002 </string>
+               </dict>
+               <dict>
+                       <key>Identifier</key>
+                       <string>windowTool.breakpoints</string>
+                       <key>IsVertical</key>
+                       <integer>0</integer>
+                       <key>Layout</key>
+                       <array>
+                               <dict>
+                                       <key>Dock</key>
+                                       <array>
+                                               <dict>
+                                                       <key>BecomeActive</key>
+                                                       <integer>1</integer>
+                                                       <key>ContentConfiguration</key>
+                                                       <dict>
+                                                               <key>PBXBottomSmartGroupGIDs</key>
+                                                               <array>
+                                                                       <string>1C77FABC04509CD000000102</string>
+                                                               </array>
+                                                               <key>PBXProjectModuleGUID</key>
+                                                               <string>1CE0B1FE06471DED0097A5F4</string>
+                                                               <key>PBXProjectModuleLabel</key>
+                                                               <string>Files</string>
+                                                               <key>PBXProjectStructureProvided</key>
+                                                               <string>no</string>
+                                                               <key>PBXSmartGroupTreeModuleColumnData</key>
+                                                               <dict>
+                                                                       <key>PBXSmartGroupTreeModuleColumnWidthsKey</key>
+                                                                       <array>
+                                                                               <real>168</real>
+                                                                       </array>
+                                                                       <key>PBXSmartGroupTreeModuleColumnsKey_v4</key>
+                                                                       <array>
+                                                                               <string>MainColumn</string>
+                                                                       </array>
+                                                               </dict>
+                                                               <key>PBXSmartGroupTreeModuleOutlineStateKey_v7</key>
+                                                               <dict>
+                                                                       <key>PBXSmartGroupTreeModuleOutlineStateExpansionKey</key>
+                                                                       <array>
+                                                                               <string>1C77FABC04509CD000000102</string>
+                                                                       </array>
+                                                                       <key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
+                                                                       <array>
+                                                                               <array>
+                                                                                       <integer>0</integer>
+                                                                               </array>
+                                                                       </array>
+                                                                       <key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
+                                                                       <string>{{0, 0}, {168, 350}}</string>
+                                                               </dict>
+                                                               <key>PBXTopSmartGroupGIDs</key>
+                                                               <array/>
+                                                               <key>XCIncludePerspectivesSwitch</key>
+                                                               <integer>0</integer>
+                                                       </dict>
+                                                       <key>GeometryConfiguration</key>
+                                                       <dict>
+                                                               <key>Frame</key>
+                                                               <string>{{0, 0}, {185, 368}}</string>
+                                                               <key>GroupTreeTableConfiguration</key>
+                                                               <array>
+                                                                       <string>MainColumn</string>
+                                                                       <real>168</real>
+                                                               </array>
+                                                               <key>RubberWindowFrame</key>
+                                                               <string>315 424 744 409 0 0 1440 878 </string>
+                                                       </dict>
+                                                       <key>Module</key>
+                                                       <string>PBXSmartGroupTreeModule</string>
+                                                       <key>Proportion</key>
+                                                       <string>185pt</string>
+                                               </dict>
+                                               <dict>
+                                                       <key>ContentConfiguration</key>
+                                                       <dict>
+                                                               <key>PBXProjectModuleGUID</key>
+                                                               <string>1CA1AED706398EBD00589147</string>
+                                                               <key>PBXProjectModuleLabel</key>
+                                                               <string>Detail</string>
+                                                       </dict>
+                                                       <key>GeometryConfiguration</key>
+                                                       <dict>
+                                                               <key>Frame</key>
+                                                               <string>{{190, 0}, {554, 368}}</string>
+                                                               <key>RubberWindowFrame</key>
+                                                               <string>315 424 744 409 0 0 1440 878 </string>
+                                                       </dict>
+                                                       <key>Module</key>
+                                                       <string>XCDetailModule</string>
+                                                       <key>Proportion</key>
+                                                       <string>554pt</string>
+                                               </dict>
+                                       </array>
+                                       <key>Proportion</key>
+                                       <string>368pt</string>
+                               </dict>
+                       </array>
+                       <key>MajorVersion</key>
+                       <integer>3</integer>
+                       <key>MinorVersion</key>
+                       <integer>0</integer>
+                       <key>Name</key>
+                       <string>Breakpoints</string>
+                       <key>ServiceClasses</key>
+                       <array>
+                               <string>PBXSmartGroupTreeModule</string>
+                               <string>XCDetailModule</string>
+                       </array>
+                       <key>StatusbarIsVisible</key>
+                       <integer>1</integer>
+                       <key>TableOfContents</key>
+                       <array>
+                               <string>1CDDB66807F98D9800BB5817</string>
+                               <string>1CDDB66907F98D9800BB5817</string>
+                               <string>1CE0B1FE06471DED0097A5F4</string>
+                               <string>1CA1AED706398EBD00589147</string>
+                       </array>
+                       <key>ToolbarConfiguration</key>
+                       <string>xcode.toolbar.config.breakpointsV3</string>
+                       <key>WindowString</key>
+                       <string>315 424 744 409 0 0 1440 878 </string>
+                       <key>WindowToolGUID</key>
+                       <string>1CDDB66807F98D9800BB5817</string>
+                       <key>WindowToolIsVisible</key>
+                       <integer>1</integer>
+               </dict>
+               <dict>
+                       <key>Identifier</key>
+                       <string>windowTool.debugAnimator</string>
+                       <key>Layout</key>
+                       <array>
+                               <dict>
+                                       <key>Dock</key>
+                                       <array>
+                                               <dict>
+                                                       <key>Module</key>
+                                                       <string>PBXNavigatorGroup</string>
+                                                       <key>Proportion</key>
+                                                       <string>100%</string>
+                                               </dict>
+                                       </array>
+                                       <key>Proportion</key>
+                                       <string>100%</string>
+                               </dict>
+                       </array>
+                       <key>Name</key>
+                       <string>Debug Visualizer</string>
+                       <key>ServiceClasses</key>
+                       <array>
+                               <string>PBXNavigatorGroup</string>
+                       </array>
+                       <key>StatusbarIsVisible</key>
+                       <integer>1</integer>
+                       <key>ToolbarConfiguration</key>
+                       <string>xcode.toolbar.config.debugAnimatorV3</string>
+                       <key>WindowString</key>
+                       <string>100 100 700 500 0 0 1280 1002 </string>
+               </dict>
+               <dict>
+                       <key>Identifier</key>
+                       <string>windowTool.bookmarks</string>
+                       <key>Layout</key>
+                       <array>
+                               <dict>
+                                       <key>Dock</key>
+                                       <array>
+                                               <dict>
+                                                       <key>Module</key>
+                                                       <string>PBXBookmarksModule</string>
+                                                       <key>Proportion</key>
+                                                       <string>166pt</string>
+                                               </dict>
+                                       </array>
+                                       <key>Proportion</key>
+                                       <string>166pt</string>
+                               </dict>
+                       </array>
+                       <key>Name</key>
+                       <string>Bookmarks</string>
+                       <key>ServiceClasses</key>
+                       <array>
+                               <string>PBXBookmarksModule</string>
+                       </array>
+                       <key>StatusbarIsVisible</key>
+                       <integer>0</integer>
+                       <key>WindowString</key>
+                       <string>538 42 401 187 0 0 1280 1002 </string>
+               </dict>
+               <dict>
+                       <key>Identifier</key>
+                       <string>windowTool.projectFormatConflicts</string>
+                       <key>Layout</key>
+                       <array>
+                               <dict>
+                                       <key>Dock</key>
+                                       <array>
+                                               <dict>
+                                                       <key>Module</key>
+                                                       <string>XCProjectFormatConflictsModule</string>
+                                                       <key>Proportion</key>
+                                                       <string>100%</string>
+                                               </dict>
+                                       </array>
+                                       <key>Proportion</key>
+                                       <string>100%</string>
+                               </dict>
+                       </array>
+                       <key>Name</key>
+                       <string>Project Format Conflicts</string>
+                       <key>ServiceClasses</key>
+                       <array>
+                               <string>XCProjectFormatConflictsModule</string>
+                       </array>
+                       <key>StatusbarIsVisible</key>
+                       <integer>0</integer>
+                       <key>WindowContentMinSize</key>
+                       <string>450 300</string>
+                       <key>WindowString</key>
+                       <string>50 850 472 307 0 0 1440 877</string>
+               </dict>
+               <dict>
+                       <key>Identifier</key>
+                       <string>windowTool.classBrowser</string>
+                       <key>Layout</key>
+                       <array>
+                               <dict>
+                                       <key>Dock</key>
+                                       <array>
+                                               <dict>
+                                                       <key>BecomeActive</key>
+                                                       <integer>1</integer>
+                                                       <key>ContentConfiguration</key>
+                                                       <dict>
+                                                               <key>OptionsSetName</key>
+                                                               <string>Hierarchy, all classes</string>
+                                                               <key>PBXProjectModuleGUID</key>
+                                                               <string>1CA6456E063B45B4001379D8</string>
+                                                               <key>PBXProjectModuleLabel</key>
+                                                               <string>Class Browser - NSObject</string>
+                                                       </dict>
+                                                       <key>GeometryConfiguration</key>
+                                                       <dict>
+                                                               <key>ClassesFrame</key>
+                                                               <string>{{0, 0}, {369, 96}}</string>
+                                                               <key>ClassesTreeTableConfiguration</key>
+                                                               <array>
+                                                                       <string>PBXClassNameColumnIdentifier</string>
+                                                                       <real>208</real>
+                                                                       <string>PBXClassBookColumnIdentifier</string>
+                                                                       <real>22</real>
+                                                               </array>
+                                                               <key>Frame</key>
+                                                               <string>{{0, 0}, {616, 353}}</string>
+                                                               <key>MembersFrame</key>
+                                                               <string>{{0, 105}, {369, 395}}</string>
+                                                               <key>MembersTreeTableConfiguration</key>
+                                                               <array>
+                                                                       <string>PBXMemberTypeIconColumnIdentifier</string>
+                                                                       <real>22</real>
+                                                                       <string>PBXMemberNameColumnIdentifier</string>
+                                                                       <real>216</real>
+                                                                       <string>PBXMemberTypeColumnIdentifier</string>
+                                                                       <real>94</real>
+                                                                       <string>PBXMemberBookColumnIdentifier</string>
+                                                                       <real>22</real>
+                                                               </array>
+                                                               <key>PBXModuleWindowStatusBarHidden2</key>
+                                                               <integer>1</integer>
+                                                               <key>RubberWindowFrame</key>
+                                                               <string>597 125 616 374 0 0 1280 1002 </string>
+                                                       </dict>
+                                                       <key>Module</key>
+                                                       <string>PBXClassBrowserModule</string>
+                                                       <key>Proportion</key>
+                                                       <string>354pt</string>
+                                               </dict>
+                                       </array>
+                                       <key>Proportion</key>
+                                       <string>354pt</string>
+                               </dict>
+                       </array>
+                       <key>Name</key>
+                       <string>Class Browser</string>
+                       <key>ServiceClasses</key>
+                       <array>
+                               <string>PBXClassBrowserModule</string>
+                       </array>
+                       <key>StatusbarIsVisible</key>
+                       <integer>0</integer>
+                       <key>TableOfContents</key>
+                       <array>
+                               <string>1C78EABA065D492600B07095</string>
+                               <string>1C78EABB065D492600B07095</string>
+                               <string>1CA6456E063B45B4001379D8</string>
+                       </array>
+                       <key>ToolbarConfiguration</key>
+                       <string>xcode.toolbar.config.classbrowser</string>
+                       <key>WindowString</key>
+                       <string>597 125 616 374 0 0 1280 1002 </string>
+               </dict>
+               <dict>
+                       <key>Identifier</key>
+                       <string>windowTool.refactoring</string>
+                       <key>IncludeInToolsMenu</key>
+                       <integer>0</integer>
+                       <key>Layout</key>
+                       <array>
+                               <dict>
+                                       <key>Dock</key>
+                                       <array>
+                                               <dict>
+                                                       <key>BecomeActive</key>
+                                                       <integer>1</integer>
+                                                       <key>GeometryConfiguration</key>
+                                                       <dict>
+                                                               <key>Frame</key>
+                                                               <string>{0, 0}, {500, 335}</string>
+                                                               <key>RubberWindowFrame</key>
+                                                               <string>{0, 0}, {500, 335}</string>
+                                                       </dict>
+                                                       <key>Module</key>
+                                                       <string>XCRefactoringModule</string>
+                                                       <key>Proportion</key>
+                                                       <string>100%</string>
+                                               </dict>
+                                       </array>
+                                       <key>Proportion</key>
+                                       <string>100%</string>
+                               </dict>
+                       </array>
+                       <key>Name</key>
+                       <string>Refactoring</string>
+                       <key>ServiceClasses</key>
+                       <array>
+                               <string>XCRefactoringModule</string>
+                       </array>
+                       <key>WindowString</key>
+                       <string>200 200 500 356 0 0 1920 1200 </string>
+               </dict>
+       </array>
+</dict>
+</plist>
diff --git a/Dashboard/KeychainPlugin/KeychainPlugIn.xcodeproj/project.pbxproj b/Dashboard/KeychainPlugin/KeychainPlugIn.xcodeproj/project.pbxproj
new file mode 100755 (executable)
index 0000000..90d8476
--- /dev/null
@@ -0,0 +1,277 @@
+// !$*UTF8*$!
+{
+       archiveVersion = 1;
+       classes = {
+       };
+       objectVersion = 44;
+       objects = {
+
+/* Begin PBXBuildFile section */
+               13299EBB0D1858AC00CA453F /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 13299EBA0D1858AC00CA453F /* Security.framework */; };
+               134416C20D178F49001D4353 /* KeychainPlugIn.m in Sources */ = {isa = PBXBuildFile; fileRef = 134416C00D178F49001D4353 /* KeychainPlugIn.m */; };
+               849B55160A66F83000C7EFED /* WebKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 849B55140A66F83000C7EFED /* WebKit.framework */; };
+               8D5B49B0048680CD000E48DA /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C167DFE841241C02AAC07 /* InfoPlist.strings */; };
+               8D5B49B4048680CD000E48DA /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7ADFEA557BF11CA2CBB /* Cocoa.framework */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXFileReference section */
+               089C1672FE841209C02AAC07 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = "<absolute>"; };
+               089C167EFE841241C02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = "<group>"; };
+               1058C7ADFEA557BF11CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = "<absolute>"; };
+               13299EBA0D1858AC00CA453F /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = /System/Library/Frameworks/Security.framework; sourceTree = "<absolute>"; };
+               134416BF0D178F49001D4353 /* KeychainPlugIn.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KeychainPlugIn.h; sourceTree = "<group>"; };
+               134416C00D178F49001D4353 /* KeychainPlugIn.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KeychainPlugIn.m; sourceTree = "<group>"; };
+               134416C10D178F49001D4353 /* KeychainPlugIn_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KeychainPlugIn_Prefix.pch; sourceTree = "<group>"; };
+               13D0E3C70D17907700AEFAEB /* KeychainPlugIn.widgetplugin */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = KeychainPlugIn.widgetplugin; sourceTree = BUILT_PRODUCTS_DIR; };
+               849B55140A66F83000C7EFED /* WebKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebKit.framework; path = /System/Library/Frameworks/WebKit.framework; sourceTree = "<absolute>"; };
+               8D5B49B7048680CD000E48DA /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = Info.plist; sourceTree = "<group>"; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+               8D5B49B3048680CD000E48DA /* Frameworks */ = {
+                       isa = PBXFrameworksBuildPhase;
+                       buildActionMask = 2147483647;
+                       files = (
+                               8D5B49B4048680CD000E48DA /* Cocoa.framework in Frameworks */,
+                               849B55160A66F83000C7EFED /* WebKit.framework in Frameworks */,
+                               13299EBB0D1858AC00CA453F /* Security.framework in Frameworks */,
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+               };
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+               089C166AFE841209C02AAC07 /* KeychainPlugIn */ = {
+                       isa = PBXGroup;
+                       children = (
+                               134416BF0D178F49001D4353 /* KeychainPlugIn.h */,
+                               134416C00D178F49001D4353 /* KeychainPlugIn.m */,
+                               134416C10D178F49001D4353 /* KeychainPlugIn_Prefix.pch */,
+                               32C88E010371C26100C91783 /* Other Sources */,
+                               08FB77AFFE84173DC02AAC07 /* Classes */,
+                               089C167CFE841241C02AAC07 /* Resources */,
+                               089C1671FE841209C02AAC07 /* Frameworks and Libraries */,
+                               19C28FB8FE9D52D311CA2CBB /* Products */,
+                       );
+                       name = KeychainPlugIn;
+                       sourceTree = "<group>";
+               };
+               089C1671FE841209C02AAC07 /* Frameworks and Libraries */ = {
+                       isa = PBXGroup;
+                       children = (
+                               1058C7ACFEA557BF11CA2CBB /* Linked Frameworks */,
+                               1058C7AEFEA557BF11CA2CBB /* Other Frameworks */,
+                       );
+                       name = "Frameworks and Libraries";
+                       sourceTree = "<group>";
+               };
+               089C167CFE841241C02AAC07 /* Resources */ = {
+                       isa = PBXGroup;
+                       children = (
+                               8D5B49B7048680CD000E48DA /* Info.plist */,
+                               089C167DFE841241C02AAC07 /* InfoPlist.strings */,
+                       );
+                       name = Resources;
+                       sourceTree = "<group>";
+               };
+               08FB77AFFE84173DC02AAC07 /* Classes */ = {
+                       isa = PBXGroup;
+                       children = (
+                       );
+                       name = Classes;
+                       sourceTree = "<group>";
+               };
+               1058C7ACFEA557BF11CA2CBB /* Linked Frameworks */ = {
+                       isa = PBXGroup;
+                       children = (
+                               1058C7ADFEA557BF11CA2CBB /* Cocoa.framework */,
+                       );
+                       name = "Linked Frameworks";
+                       sourceTree = "<group>";
+               };
+               1058C7AEFEA557BF11CA2CBB /* Other Frameworks */ = {
+                       isa = PBXGroup;
+                       children = (
+                               13299EBA0D1858AC00CA453F /* Security.framework */,
+                               849B55140A66F83000C7EFED /* WebKit.framework */,
+                               089C1672FE841209C02AAC07 /* Foundation.framework */,
+                       );
+                       name = "Other Frameworks";
+                       sourceTree = "<group>";
+               };
+               19C28FB8FE9D52D311CA2CBB /* Products */ = {
+                       isa = PBXGroup;
+                       children = (
+                               13D0E3C70D17907700AEFAEB /* KeychainPlugIn.widgetplugin */,
+                       );
+                       name = Products;
+                       sourceTree = "<group>";
+               };
+               32C88E010371C26100C91783 /* Other Sources */ = {
+                       isa = PBXGroup;
+                       children = (
+                       );
+                       name = "Other Sources";
+                       sourceTree = "<group>";
+               };
+/* End PBXGroup section */
+
+/* Begin PBXNativeTarget section */
+               8D5B49AC048680CD000E48DA /* KeychainPlugIn */ = {
+                       isa = PBXNativeTarget;
+                       buildConfigurationList = 1DEB913A08733D840010E9CD /* Build configuration list for PBXNativeTarget "KeychainPlugIn" */;
+                       buildPhases = (
+                               8D5B49AF048680CD000E48DA /* Resources */,
+                               8D5B49B1048680CD000E48DA /* Sources */,
+                               8D5B49B3048680CD000E48DA /* Frameworks */,
+                       );
+                       buildRules = (
+                       );
+                       dependencies = (
+                       );
+                       name = KeychainPlugIn;
+                       productInstallPath = "$(HOME)/Library/Bundles";
+                       productName = KeychainPlugIn;
+                       productReference = 13D0E3C70D17907700AEFAEB /* KeychainPlugIn.widgetplugin */;
+                       productType = "com.apple.product-type.bundle";
+               };
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+               089C1669FE841209C02AAC07 /* Project object */ = {
+                       isa = PBXProject;
+                       buildConfigurationList = 1DEB913E08733D840010E9CD /* Build configuration list for PBXProject "KeychainPlugIn" */;
+                       compatibilityVersion = "Xcode 3.0";
+                       hasScannedForEncodings = 1;
+                       mainGroup = 089C166AFE841209C02AAC07 /* KeychainPlugIn */;
+                       projectDirPath = "";
+                       projectRoot = "";
+                       targets = (
+                               8D5B49AC048680CD000E48DA /* KeychainPlugIn */,
+                       );
+               };
+/* End PBXProject section */
+
+/* Begin PBXResourcesBuildPhase section */
+               8D5B49AF048680CD000E48DA /* Resources */ = {
+                       isa = PBXResourcesBuildPhase;
+                       buildActionMask = 2147483647;
+                       files = (
+                               8D5B49B0048680CD000E48DA /* InfoPlist.strings in Resources */,
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+               };
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+               8D5B49B1048680CD000E48DA /* Sources */ = {
+                       isa = PBXSourcesBuildPhase;
+                       buildActionMask = 2147483647;
+                       files = (
+                               134416C20D178F49001D4353 /* KeychainPlugIn.m in Sources */,
+                       );
+                       runOnlyForDeploymentPostprocessing = 0;
+               };
+/* End PBXSourcesBuildPhase section */
+
+/* Begin PBXVariantGroup section */
+               089C167DFE841241C02AAC07 /* InfoPlist.strings */ = {
+                       isa = PBXVariantGroup;
+                       children = (
+                               089C167EFE841241C02AAC07 /* English */,
+                       );
+                       name = InfoPlist.strings;
+                       sourceTree = "<group>";
+               };
+/* End PBXVariantGroup section */
+
+/* Begin XCBuildConfiguration section */
+               1DEB913B08733D840010E9CD /* Debug */ = {
+                       isa = XCBuildConfiguration;
+                       buildSettings = {
+                               COPY_PHASE_STRIP = NO;
+                               DSTROOT = "/tmp/$(PROJECT_NAME).dst";
+                               GCC_DYNAMIC_NO_PIC = NO;
+                               GCC_ENABLE_FIX_AND_CONTINUE = YES;
+                               GCC_MODEL_TUNING = G5;
+                               GCC_OPTIMIZATION_LEVEL = 0;
+                               GCC_PRECOMPILE_PREFIX_HEADER = YES;
+                               GCC_PREFIX_HEADER = KeychainPlugIn_Prefix.pch;
+                               INFOPLIST_FILE = Info.plist;
+                               INSTALL_PATH = "$(HOME)/Library/Bundles";
+                               PRODUCT_NAME = KeychainPlugIn;
+                               WRAPPER_EXTENSION = widgetplugin;
+                               ZERO_LINK = NO;
+                       };
+                       name = Debug;
+               };
+               1DEB913C08733D840010E9CD /* Release */ = {
+                       isa = XCBuildConfiguration;
+                       buildSettings = {
+                               ARCHS = (
+                                       ppc,
+                                       i386,
+                               );
+                               CONFIGURATION_TEMP_DIR = "$(PROJECT_TEMP_DIR)/$(CONFIGURATION)";
+                               DSTROOT = "/tmp/$(PROJECT_NAME).dst";
+                               GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
+                               GCC_MODEL_TUNING = G5;
+                               GCC_PRECOMPILE_PREFIX_HEADER = YES;
+                               GCC_PREFIX_HEADER = KeychainPlugIn_Prefix.pch;
+                               INFOPLIST_FILE = Info.plist;
+                               INSTALL_PATH = "$(HOME)/Library/Bundles";
+                               LD_MAP_FILE_PATH = "$(TARGET_TEMP_DIR)/$(PRODUCT_NAME)-LinkMap-$(CURRENT_VARIANT)-$(CURRENT_ARCH).txt";
+                               PRODUCT_NAME = KeychainPlugIn;
+                               VERSION_INFO_FILE = "$(PRODUCT_NAME)_vers.c";
+                               WRAPPER_EXTENSION = widgetplugin;
+                       };
+                       name = Release;
+               };
+               1DEB913F08733D840010E9CD /* Debug */ = {
+                       isa = XCBuildConfiguration;
+                       buildSettings = {
+                               GCC_WARN_ABOUT_RETURN_TYPE = YES;
+                               GCC_WARN_UNUSED_VARIABLE = YES;
+                               PREBINDING = NO;
+                               SDKROOT = "$(DEVELOPER_SDK_DIR)/MacOSX10.4u.sdk";
+                       };
+                       name = Debug;
+               };
+               1DEB914008733D840010E9CD /* Release */ = {
+                       isa = XCBuildConfiguration;
+                       buildSettings = {
+                               ARCHS = "$(NATIVE_ARCH_ACTUAL)";
+                               CONFIGURATION_TEMP_DIR = "$(PROJECT_TEMP_DIR)/$(CONFIGURATION)";
+                               GCC_WARN_ABOUT_RETURN_TYPE = YES;
+                               GCC_WARN_UNUSED_VARIABLE = YES;
+                               PREBINDING = NO;
+                               SDKROOT = "$(DEVELOPER_SDK_DIR)/MacOSX10.4u.sdk";
+                               VALID_ARCHS = "ppc64 ppc7400 ppc970 i386 x86_64 ppc";
+                       };
+                       name = Release;
+               };
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+               1DEB913A08733D840010E9CD /* Build configuration list for PBXNativeTarget "KeychainPlugIn" */ = {
+                       isa = XCConfigurationList;
+                       buildConfigurations = (
+                               1DEB913B08733D840010E9CD /* Debug */,
+                               1DEB913C08733D840010E9CD /* Release */,
+                       );
+                       defaultConfigurationIsVisible = 0;
+                       defaultConfigurationName = Release;
+               };
+               1DEB913E08733D840010E9CD /* Build configuration list for PBXProject "KeychainPlugIn" */ = {
+                       isa = XCConfigurationList;
+                       buildConfigurations = (
+                               1DEB913F08733D840010E9CD /* Debug */,
+                               1DEB914008733D840010E9CD /* Release */,
+                       );
+                       defaultConfigurationIsVisible = 0;
+                       defaultConfigurationName = Release;
+               };
+/* End XCConfigurationList section */
+       };
+       rootObject = 089C1669FE841209C02AAC07 /* Project object */;
+}
diff --git a/Dashboard/KeychainPlugin/KeychainPlugIn_Prefix.pch b/Dashboard/KeychainPlugin/KeychainPlugIn_Prefix.pch
new file mode 100644 (file)
index 0000000..276333d
--- /dev/null
@@ -0,0 +1,17 @@
+/**
+ * $Horde: $
+ *
+ * KeychainPlugIn_Prefix.pch
+ *
+ * Prefix header for all source files of the 'KeychainPlugIn' target in
+ * the 'KeychainPlugIn' project.
+ *
+ * Copyright 2003-2007 The Horde Project (http://www.horde.org/)
+ *
+ * See the enclosed file COPYING for license information (LGPL). If you
+ * did not receive this file, see http://opensource.org/licenses/lgpl-license.php
+ */
+
+#ifdef __OBJC__
+    #import <Cocoa/Cocoa.h>
+#endif
diff --git a/Dashboard/KeychainPlugin/build/KeychainPlugIn.build/KeychainPlugIn.pbxindex/categories.pbxbtree b/Dashboard/KeychainPlugin/build/KeychainPlugIn.build/KeychainPlugIn.pbxindex/categories.pbxbtree
new file mode 100755 (executable)
index 0000000..9a61859
Binary files /dev/null and b/Dashboard/KeychainPlugin/build/KeychainPlugIn.build/KeychainPlugIn.pbxindex/categories.pbxbtree differ
diff --git a/Dashboard/KeychainPlugin/build/KeychainPlugIn.build/KeychainPlugIn.pbxindex/cdecls.pbxbtree b/Dashboard/KeychainPlugin/build/KeychainPlugIn.build/KeychainPlugIn.pbxindex/cdecls.pbxbtree
new file mode 100755 (executable)
index 0000000..ebb5b7c
Binary files /dev/null and b/Dashboard/KeychainPlugin/build/KeychainPlugIn.build/KeychainPlugIn.pbxindex/cdecls.pbxbtree differ
diff --git a/Dashboard/KeychainPlugin/build/KeychainPlugIn.build/KeychainPlugIn.pbxindex/decls.pbxbtree b/Dashboard/KeychainPlugin/build/KeychainPlugIn.build/KeychainPlugIn.pbxindex/decls.pbxbtree
new file mode 100755 (executable)
index 0000000..4356ae9
Binary files /dev/null and b/Dashboard/KeychainPlugin/build/KeychainPlugIn.build/KeychainPlugIn.pbxindex/decls.pbxbtree differ
diff --git a/Dashboard/KeychainPlugin/build/KeychainPlugIn.build/KeychainPlugIn.pbxindex/files.pbxbtree b/Dashboard/KeychainPlugin/build/KeychainPlugIn.build/KeychainPlugIn.pbxindex/files.pbxbtree
new file mode 100755 (executable)
index 0000000..3dd17a5
Binary files /dev/null and b/Dashboard/KeychainPlugin/build/KeychainPlugIn.build/KeychainPlugIn.pbxindex/files.pbxbtree differ
diff --git a/Dashboard/KeychainPlugin/build/KeychainPlugIn.build/KeychainPlugIn.pbxindex/imports.pbxbtree b/Dashboard/KeychainPlugin/build/KeychainPlugIn.build/KeychainPlugIn.pbxindex/imports.pbxbtree
new file mode 100755 (executable)
index 0000000..99950cb
Binary files /dev/null and b/Dashboard/KeychainPlugin/build/KeychainPlugIn.build/KeychainPlugIn.pbxindex/imports.pbxbtree differ
diff --git a/Dashboard/KeychainPlugin/build/KeychainPlugIn.build/KeychainPlugIn.pbxindex/pbxindex.header b/Dashboard/KeychainPlugin/build/KeychainPlugIn.build/KeychainPlugIn.pbxindex/pbxindex.header
new file mode 100755 (executable)
index 0000000..063868f
Binary files /dev/null and b/Dashboard/KeychainPlugin/build/KeychainPlugIn.build/KeychainPlugIn.pbxindex/pbxindex.header differ
diff --git a/Dashboard/KeychainPlugin/build/KeychainPlugIn.build/KeychainPlugIn.pbxindex/protocols.pbxbtree b/Dashboard/KeychainPlugin/build/KeychainPlugIn.build/KeychainPlugIn.pbxindex/protocols.pbxbtree
new file mode 100755 (executable)
index 0000000..0cfc6d8
Binary files /dev/null and b/Dashboard/KeychainPlugin/build/KeychainPlugIn.build/KeychainPlugIn.pbxindex/protocols.pbxbtree differ
diff --git a/Dashboard/KeychainPlugin/build/KeychainPlugIn.build/KeychainPlugIn.pbxindex/refs.pbxbtree b/Dashboard/KeychainPlugin/build/KeychainPlugIn.build/KeychainPlugIn.pbxindex/refs.pbxbtree
new file mode 100755 (executable)
index 0000000..824f504
Binary files /dev/null and b/Dashboard/KeychainPlugin/build/KeychainPlugIn.build/KeychainPlugIn.pbxindex/refs.pbxbtree differ
diff --git a/Dashboard/KeychainPlugin/build/KeychainPlugIn.build/KeychainPlugIn.pbxindex/strings.pbxstrings/control b/Dashboard/KeychainPlugin/build/KeychainPlugIn.build/KeychainPlugIn.pbxindex/strings.pbxstrings/control
new file mode 100755 (executable)
index 0000000..9a96bee
Binary files /dev/null and b/Dashboard/KeychainPlugin/build/KeychainPlugIn.build/KeychainPlugIn.pbxindex/strings.pbxstrings/control differ
diff --git a/Dashboard/KeychainPlugin/build/KeychainPlugIn.build/KeychainPlugIn.pbxindex/strings.pbxstrings/strings b/Dashboard/KeychainPlugin/build/KeychainPlugIn.build/KeychainPlugIn.pbxindex/strings.pbxstrings/strings
new file mode 100755 (executable)
index 0000000..081abed
Binary files /dev/null and b/Dashboard/KeychainPlugin/build/KeychainPlugIn.build/KeychainPlugIn.pbxindex/strings.pbxstrings/strings differ
diff --git a/Dashboard/KeychainPlugin/build/KeychainPlugIn.build/KeychainPlugIn.pbxindex/subclasses.pbxbtree b/Dashboard/KeychainPlugin/build/KeychainPlugIn.build/KeychainPlugIn.pbxindex/subclasses.pbxbtree
new file mode 100755 (executable)
index 0000000..f77f53d
Binary files /dev/null and b/Dashboard/KeychainPlugin/build/KeychainPlugIn.build/KeychainPlugIn.pbxindex/subclasses.pbxbtree differ
diff --git a/Dashboard/KeychainPlugin/build/KeychainPlugIn.build/KeychainPlugIn.pbxindex/symbols0.pbxsymbols b/Dashboard/KeychainPlugin/build/KeychainPlugIn.build/KeychainPlugIn.pbxindex/symbols0.pbxsymbols
new file mode 100755 (executable)
index 0000000..8df68dd
Binary files /dev/null and b/Dashboard/KeychainPlugin/build/KeychainPlugIn.build/KeychainPlugIn.pbxindex/symbols0.pbxsymbols differ
diff --git a/Dashboard/KeychainPlugin/build/KeychainPlugIn.build/Release/KeychainPlugIn.build/KeychainPlugIn.dep b/Dashboard/KeychainPlugin/build/KeychainPlugIn.build/Release/KeychainPlugIn.build/KeychainPlugIn.dep
new file mode 100755 (executable)
index 0000000..e13a506
--- /dev/null
@@ -0,0 +1,18 @@
+6fb5bc70b1cb00b41ba8b5a530ac319a ad9cb7e14af48800e75d5063795791e5 ffffffffffffffffffffffffffffffff 136 /Volumes/chagenbu/Documents/Dashboard/KeychainPlugin/build/Release/KeychainPlugIn.widgetplugin
+4ddce06f4c275784201726aac955c722 abfba16bee72fb6685cfd226e70ee335 ffffffffffffffffffffffffffffffff 46712 /Volumes/chagenbu/Documents/Dashboard/KeychainPlugin/build/Release/KeychainPlugIn.widgetplugin/Contents/MacOS/KeychainPlugIn
+4e91f72497cc0b626ffa585de987b1f2 c7871a8ab18e3634d0c6048fc6cb3889 ffffffffffffffffffffffffffffffff 22136 /Volumes/chagenbu/Documents/Dashboard/KeychainPlugin/build/KeychainPlugIn.build/Release/KeychainPlugIn.build/Objects-normal/i386/KeychainPlugIn
+7930abbb3a8e70c5f976ec1da3709471 bdfaa67a50eb1a17665d96654569da28 ffffffffffffffffffffffffffffffff 18104 /Volumes/chagenbu/Documents/Dashboard/KeychainPlugin/build/KeychainPlugIn.build/Release/KeychainPlugIn.build/Objects-normal/ppc/KeychainPlugIn
+56b1e28b9937df23a79292b60bdb7fae 182015af0f5e9061c868caebe2cf367e ffffffffffffffffffffffffffffffff 6820 /Volumes/chagenbu/Documents/Dashboard/KeychainPlugin/build/KeychainPlugIn.build/Release/KeychainPlugIn.build/Objects-normal/i386/KeychainPlugIn.o
+9cdea6179cdf8140923536f81d24c8da e5ee0daca7f4b5a56b43dae5bec7a48a ffffffffffffffffffffffffffffffff 7680 /Volumes/chagenbu/Documents/Dashboard/KeychainPlugin/build/KeychainPlugIn.build/Release/KeychainPlugIn.build/Objects-normal/ppc/KeychainPlugIn.o
+000000004472820d0000000000036c84 56b1e28bdce935bfa79292b60bd81288 ffffffffffffffffffffffffffffffff 22509184 /Library/Caches/com.apple.Xcode.501/SharedPrecompiledHeaders/KeychainPlugIn_Prefix-csembfusninrumexuwrwrywturik/KeychainPlugIn_Prefix.pch.gch
+000000004472820d0000000000036c84 9cdea617d9016bdc923536f81d27a5fc ffffffffffffffffffffffffffffffff 20919824 /Library/Caches/com.apple.Xcode.501/SharedPrecompiledHeaders/KeychainPlugIn_Prefix-dxlglhftcsfjcuayqbkvhcrlbgmk/KeychainPlugIn_Prefix.pch.gch
+ffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffff 276 /Volumes/chagenbu/Documents/Dashboard/KeychainPlugin/build/Release/KeychainPlugIn.widgetplugin/Contents/Resources/English.lproj/InfoPlist.strings
+ffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffff ffffffffffffffffffffffffffffffff 680 /Volumes/chagenbu/Documents/Dashboard/KeychainPlugin/build/Release/KeychainPlugIn.widgetplugin/Contents/Info.plist
+661f7a209a49fac9fd14936090838488 b3bf313ec0409f69d1c4edf8cf90af4b ffffffffffffffffffffffffffffffff 102 /Users/chuck/Desktop/KeychainPlugin/build/Release/KeychainPlugIn.widgetplugin
+5c9ffbd9274ce702d9f61e2078126486 ce8857a4a1ef31a3c43bd761f5290f69 ffffffffffffffffffffffffffffffff 46664 /Users/chuck/Desktop/KeychainPlugin/build/Release/KeychainPlugIn.widgetplugin/Contents/MacOS/KeychainPlugIn
+00000000000000000000000000000000 b75d0cb1c3b775aad3981f3842a38b98 ffffffffffffffffffffffffffffffff 276 /Users/chuck/Desktop/KeychainPlugin/build/Release/KeychainPlugIn.widgetplugin/Contents/Resources/English.lproj/InfoPlist.strings
+00000000476821ae0000000000000309 4355daec9835786c334145195f1b67f6 ffffffffffffffffffffffffffffffff 680 /Users/chuck/Desktop/KeychainPlugin/build/Release/KeychainPlugIn.widgetplugin/Contents/Info.plist
+34a6baf2148d57f7a79b084324a81e92 fa9e54d2e2f5ad171dc80fbcae9d3a5f ffffffffffffffffffffffffffffffff 22088 /Users/chuck/Desktop/KeychainPlugin/build/KeychainPlugIn.build/Release/KeychainPlugIn.build/Objects-normal/i386/KeychainPlugIn
+5361dcd2ec396c7829a4fd7e412194c2 c1c6c92b3d0d719a4a01e4a1b306d489 ffffffffffffffffffffffffffffffff 18044 /Users/chuck/Desktop/KeychainPlugin/build/KeychainPlugIn.build/Release/KeychainPlugIn.build/Objects-normal/ppc/KeychainPlugIn
+22f8f9f3604de6ae2974715a71561e17 165e43017565e4ba8eef7919556df8b4 ffffffffffffffffffffffffffffffff 6800 /Users/chuck/Desktop/KeychainPlugin/build/KeychainPlugIn.build/Release/KeychainPlugIn.build/Objects-normal/i386/KeychainPlugIn.o
+51ab0604a81dfc5ea88a9435403d833c 02cadad64581c5c5812e694b018fefce ffffffffffffffffffffffffffffffff 7580 /Users/chuck/Desktop/KeychainPlugin/build/KeychainPlugIn.build/Release/KeychainPlugIn.build/Objects-normal/ppc/KeychainPlugIn.o
diff --git a/Dashboard/KeychainPlugin/build/KeychainPlugIn.build/Release/KeychainPlugIn.build/KeychainPlugIn.hmap b/Dashboard/KeychainPlugin/build/KeychainPlugIn.build/Release/KeychainPlugIn.build/KeychainPlugIn.hmap
new file mode 100755 (executable)
index 0000000..54d0245
Binary files /dev/null and b/Dashboard/KeychainPlugin/build/KeychainPlugIn.build/Release/KeychainPlugIn.build/KeychainPlugIn.hmap differ
diff --git a/Dashboard/KeychainPlugin/build/KeychainPlugIn.build/Release/KeychainPlugIn.build/KeychainPlugIn~.dep b/Dashboard/KeychainPlugin/build/KeychainPlugIn.build/Release/KeychainPlugIn.build/KeychainPlugIn~.dep
new file mode 100755 (executable)
index 0000000..844da98
--- /dev/null
@@ -0,0 +1,10 @@
+661f7a209a49fac9fd14936090838488 b3bf313ec0409f69d1c4edf8cf90af4b ffffffffffffffffffffffffffffffff 102 /Users/chuck/Desktop/KeychainPlugin/build/Release/KeychainPlugIn.widgetplugin
+5c9ffbd9274ce702d9f61e2078126486 ce8857a4a1ef31a3c43bd761f5290f69 ffffffffffffffffffffffffffffffff 46664 /Users/chuck/Desktop/KeychainPlugin/build/Release/KeychainPlugIn.widgetplugin/Contents/MacOS/KeychainPlugIn
+00000000000000000000000000000000 b75d0cb1c3b775aad3981f3842a38b98 ffffffffffffffffffffffffffffffff 276 /Users/chuck/Desktop/KeychainPlugin/build/Release/KeychainPlugIn.widgetplugin/Contents/Resources/English.lproj/InfoPlist.strings
+00000000476821ae0000000000000309 4355daec9835786c334145195f1b67f6 ffffffffffffffffffffffffffffffff 680 /Users/chuck/Desktop/KeychainPlugin/build/Release/KeychainPlugIn.widgetplugin/Contents/Info.plist
+34a6baf2148d57f7a79b084324a81e92 fa9e54d2e2f5ad171dc80fbcae9d3a5f ffffffffffffffffffffffffffffffff 22088 /Users/chuck/Desktop/KeychainPlugin/build/KeychainPlugIn.build/Release/KeychainPlugIn.build/Objects-normal/i386/KeychainPlugIn
+5361dcd2ec396c7829a4fd7e412194c2 c1c6c92b3d0d719a4a01e4a1b306d489 ffffffffffffffffffffffffffffffff 18044 /Users/chuck/Desktop/KeychainPlugin/build/KeychainPlugIn.build/Release/KeychainPlugIn.build/Objects-normal/ppc/KeychainPlugIn
+22f8f9f3604de6ae2974715a71561e17 165e43017565e4ba8eef7919556df8b4 ffffffffffffffffffffffffffffffff 6800 /Users/chuck/Desktop/KeychainPlugin/build/KeychainPlugIn.build/Release/KeychainPlugIn.build/Objects-normal/i386/KeychainPlugIn.o
+51ab0604a81dfc5ea88a9435403d833c 02cadad64581c5c5812e694b018fefce ffffffffffffffffffffffffffffffff 7580 /Users/chuck/Desktop/KeychainPlugin/build/KeychainPlugIn.build/Release/KeychainPlugIn.build/Objects-normal/ppc/KeychainPlugIn.o
+000000004472820d0000000000036c84 22f8f9f325930f622974715a715573b4 ffffffffffffffffffffffffffffffff 22509184 /Library/Caches/com.apple.Xcode.501/SharedPrecompiledHeaders/KeychainPlugIn_Prefix-csembfusninrumexuwrwrywturik/KeychainPlugIn_Prefix.pch.gch
+000000004472820d0000000000036c84 51ab0604edc31592a88a9435403eee9f ffffffffffffffffffffffffffffffff 20919824 /Library/Caches/com.apple.Xcode.501/SharedPrecompiledHeaders/KeychainPlugIn_Prefix-dxlglhftcsfjcuayqbkvhcrlbgmk/KeychainPlugIn_Prefix.pch.gch
diff --git a/Dashboard/KeychainPlugin/build/KeychainPlugIn.build/Release/KeychainPlugIn.build/Objects-normal/i386/KeychainPlugIn b/Dashboard/KeychainPlugin/build/KeychainPlugIn.build/Release/KeychainPlugIn.build/Objects-normal/i386/KeychainPlugIn
new file mode 100755 (executable)
index 0000000..6aa4a47
Binary files /dev/null and b/Dashboard/KeychainPlugin/build/KeychainPlugIn.build/Release/KeychainPlugIn.build/Objects-normal/i386/KeychainPlugIn differ
diff --git a/Dashboard/KeychainPlugin/build/KeychainPlugIn.build/Release/KeychainPlugIn.build/Objects-normal/i386/KeychainPlugIn.LinkFileList b/Dashboard/KeychainPlugin/build/KeychainPlugIn.build/Release/KeychainPlugIn.build/Objects-normal/i386/KeychainPlugIn.LinkFileList
new file mode 100755 (executable)
index 0000000..60d2c02
--- /dev/null
@@ -0,0 +1 @@
+/Volumes/chagenbu/Documents/Dashboard/KeychainPlugin/build/KeychainPlugIn.build/Release/KeychainPlugIn.build/Objects-normal/i386/KeychainPlugIn.o
diff --git a/Dashboard/KeychainPlugin/build/KeychainPlugIn.build/Release/KeychainPlugIn.build/Objects-normal/i386/KeychainPlugIn.o b/Dashboard/KeychainPlugin/build/KeychainPlugIn.build/Release/KeychainPlugIn.build/Objects-normal/i386/KeychainPlugIn.o
new file mode 100755 (executable)
index 0000000..18a6961
Binary files /dev/null and b/Dashboard/KeychainPlugin/build/KeychainPlugIn.build/Release/KeychainPlugIn.build/Objects-normal/i386/KeychainPlugIn.o differ
diff --git a/Dashboard/KeychainPlugin/build/KeychainPlugIn.build/Release/KeychainPlugIn.build/Objects-normal/ppc/KeychainPlugIn b/Dashboard/KeychainPlugin/build/KeychainPlugIn.build/Release/KeychainPlugIn.build/Objects-normal/ppc/KeychainPlugIn
new file mode 100755 (executable)
index 0000000..db9f452
Binary files /dev/null and b/Dashboard/KeychainPlugin/build/KeychainPlugIn.build/Release/KeychainPlugIn.build/Objects-normal/ppc/KeychainPlugIn differ
diff --git a/Dashboard/KeychainPlugin/build/KeychainPlugIn.build/Release/KeychainPlugIn.build/Objects-normal/ppc/KeychainPlugIn.LinkFileList b/Dashboard/KeychainPlugin/build/KeychainPlugIn.build/Release/KeychainPlugIn.build/Objects-normal/ppc/KeychainPlugIn.LinkFileList
new file mode 100755 (executable)
index 0000000..9a81d02
--- /dev/null
@@ -0,0 +1 @@
+/Volumes/chagenbu/Documents/Dashboard/KeychainPlugin/build/KeychainPlugIn.build/Release/KeychainPlugIn.build/Objects-normal/ppc/KeychainPlugIn.o
diff --git a/Dashboard/KeychainPlugin/build/KeychainPlugIn.build/Release/KeychainPlugIn.build/Objects-normal/ppc/KeychainPlugIn.o b/Dashboard/KeychainPlugin/build/KeychainPlugIn.build/Release/KeychainPlugIn.build/Objects-normal/ppc/KeychainPlugIn.o
new file mode 100755 (executable)
index 0000000..a88a6c5
Binary files /dev/null and b/Dashboard/KeychainPlugin/build/KeychainPlugIn.build/Release/KeychainPlugIn.build/Objects-normal/ppc/KeychainPlugIn.o differ
diff --git a/Dashboard/KeychainPlugin/build/Release/KeychainPlugIn.widgetplugin/Contents/Info.plist b/Dashboard/KeychainPlugin/build/Release/KeychainPlugIn.widgetplugin/Contents/Info.plist
new file mode 100755 (executable)
index 0000000..6ec420e
--- /dev/null
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+       <key>CFBundleDevelopmentRegion</key>
+       <string>English</string>
+       <key>CFBundleExecutable</key>
+       <string>KeychainPlugIn</string>
+       <key>CFBundleIdentifier</key>
+       <string>org.horde.dashboard.KeychainPlugin</string>
+       <key>CFBundleInfoDictionaryVersion</key>
+       <string>1.0</string>
+       <key>CFBundleName</key>
+       <string>KeychainPlugIn</string>
+       <key>CFBundlePackageType</key>
+       <string>BNDL</string>
+       <key>CFBundleSignature</key>
+       <string>????</string>
+       <key>CFBundleVersion</key>
+       <string>1.0</string>
+</dict>
+</plist>
diff --git a/Dashboard/KeychainPlugin/build/Release/KeychainPlugIn.widgetplugin/Contents/MacOS/KeychainPlugIn b/Dashboard/KeychainPlugin/build/Release/KeychainPlugIn.widgetplugin/Contents/MacOS/KeychainPlugIn
new file mode 100755 (executable)
index 0000000..37bb788
Binary files /dev/null and b/Dashboard/KeychainPlugin/build/Release/KeychainPlugIn.widgetplugin/Contents/MacOS/KeychainPlugIn differ
diff --git a/Dashboard/KeychainPlugin/build/Release/KeychainPlugIn.widgetplugin/Contents/Resources/English.lproj/InfoPlist.strings b/Dashboard/KeychainPlugin/build/Release/KeychainPlugIn.widgetplugin/Contents/Resources/English.lproj/InfoPlist.strings
new file mode 100755 (executable)
index 0000000..7934d23
Binary files /dev/null and b/Dashboard/KeychainPlugin/build/Release/KeychainPlugIn.widgetplugin/Contents/Resources/English.lproj/InfoPlist.strings differ