 +/* our raw object data array */
 +NSS_EXTERN_DATA pemInternalObject nss_pem_data[];
 +NSS_EXTERN_DATA const PRUint32               nss_pem_nObjects;
-+
-+  PRBool          logged_in;
 +
 +/* our raw object data array */
 +NSS_EXTERN_DATA pemInternalObject nss_pem_data[];

+pem_ParseString(const char *inputstring, const char delimiter,
+                PRInt32 * numStrings, char ***returnedstrings)
+{
+    if (!inputstring || !delimiter || !numStrings || !returnedstrings) {
+        /* we need a string and a non-zero delimiter, as well as
+         * a valid place to return the strings and count
+         */
+        return PR_FALSE;
+    }
+    char nextchar;
+    char *instring = (char *) inputstring;
+    *numStrings = 0;
+    *returnedstrings = NULL;
+

+#endif /* NSSCKBI_H */
diff --git a/a/nss/lib/ckfw/pem/pargs.c b/b/nss/lib/ckfw/pem/pargs.c
new file mode 100644
index 0000000..cff6e87
--- /dev/null
+++ b/b/nss/lib/ckfw/pem/pargs.c
@@ -0,0 +1,163 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
+ *
