move imports in Binary class to top level to avoid repeated imports.
use cStringIO if available.
diff --git a/Lib/xmlrpclib.py b/Lib/xmlrpclib.py
index 8c1ef1f..b6cd24b 100644
--- a/Lib/xmlrpclib.py
+++ b/Lib/xmlrpclib.py
@@ -386,6 +386,12 @@
 #
 # @param data An 8-bit string containing arbitrary data.
 
+import base64
+try:
+    import cStringIO as StringIO
+except ImportError:
+    import StringIO
+
 class Binary:
     """Wrapper for binary data."""
 
@@ -406,11 +412,9 @@
         return cmp(self.data, other)
 
     def decode(self, data):
-        import base64
         self.data = base64.decodestring(data)
 
     def encode(self, out):
-        import base64, StringIO
         out.write("<value><base64>\n")
         base64.encode(StringIO.StringIO(self.data), out)
         out.write("</base64></value>\n")