<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -1,4 +1,4 @@
-1.6.0:
+1.5.x:
     Added EC2 facts
   
     Fixed #2032 - file.open hanging on /proc/uptime on some platform
@@ -8,13 +8,13 @@
 
     Fixed #1761 - changes to Solaris facts:
        operatingsystemrelease == kernel release or uname -r
-       kernelrelease == uname -r 
+       kernelrelease == uname -r
        kernelversion == uname -v
 
     Added support for Oracle VM Server to operatingsystem
     and operatingsystemrelease
 
-    Added support for Oracle Enterprise Linux to operatingsystem 
+    Added support for Oracle Enterprise Linux to operatingsystem
     and operatingsystemrelease
 
     Fixed #1927 - failing facts don't kill Facter
@@ -47,19 +47,19 @@
 
     Added ci namespace and Rake tasks
 
-    Fixed #1650 - OS X package creation script should be more selective 
+    Fixed #1650 - OS X package creation script should be more selective
     about cleaning out prior versions
 
     Added Ubuntu to a variety of confines
 
     Fixed #1619 - Applying patch by seanmil, adding support for SLES.
-    
-    Fixed #1634 - Update virtual fact to differentiate OpenVZ 
+
+    Fixed #1634 - Update virtual fact to differentiate OpenVZ
     hardware nodes and virtual environments
 
     Fixed #1509 - Fixed version recognition for SLES.
 
-    Fixes #1582 - Fix MAC address reporting for Linux bonding 
+    Fixes #1582 - Fix MAC address reporting for Linux bonding
     slave interfaces
 
     Fixed #1575 - CentOS fix for Facter SPEC file
@@ -115,8 +115,8 @@
 
     Fixes #1467 - macaddress not set on Ubuntu
 
-    Enabled a number of Windows facts - operating system, domain, ipaddress, macaddress, 
-    kernel, ipconfig and others 
+    Enabled a number of Windows facts - operating system, domain, ipaddress, macaddress,
+    kernel, ipconfig and others
 
 1.5.0:
     Fixed Rakefile to include additional files including tests et al
@@ -145,7 +145,7 @@
 
     Add lsbmajdistrelease fact for CentOS and Red Hat
 
-    Updated Red Hat spec file for new version 
+    Updated Red Hat spec file for new version
     The 'facter' executable now has an option (-p|--puppet) for loading the
     Puppet libraries, which gives it access to Puppet's facts.
 
@@ -157,22 +157,22 @@
     Significantly refactored Facter's internals, including creating tests
     for all internal classes.
 
-    A netmask fact has been added closing ticket #46.  It only returns the 
-    netmask of the primary interface (in the same behaviour as the ipaddress 
+    A netmask fact has been added closing ticket #46.  It only returns the
+    netmask of the primary interface (in the same behaviour as the ipaddress
     and macaddress facts).
 
-    Facts to return multiple interfaces on a host have also been updated.  
-    If you have multiple interfaces on Linux, *BSD, or Solaris/SunOS you will 
-    now get facts for each interface's IP address, MAC address and netmask.  
+    Facts to return multiple interfaces on a host have also been updated.
+    If you have multiple interfaces on Linux, *BSD, or Solaris/SunOS you will
+    now get facts for each interface's IP address, MAC address and netmask.
     The facts will be structured like:
       ipaddress_int = 10.0.0.x
       macaddress_int = xx:xx:xx:xx
       netmask_int = 255.255.255.0
 
-    Facter now identifies Ubuntu hosts and their releases using the 
+    Facter now identifies Ubuntu hosts and their releases using the
     operatingsystem and operatingsystemrelease facts.
 
-    The Debian operatingsystemrelease fact now correctly returns the current 
+    The Debian operatingsystemrelease fact now correctly returns the current
     Debian release.
 
     Fixed ticket #48 - ioperatingsystem and operatingsystemrelease for CentOS
@@ -186,16 +186,16 @@
 
     Fixed ticket #45
 
-    Added netmask.rb closing ticket #46    
+    Added netmask.rb closing ticket #46
 
 1.3.8:
     Fixed Rdoc::usage bug on CentOS 5 - closed Puppet #753 and Facter #40
 
-    Added support to return multiple interfaces and their IP addresses and 
-    MAC addressess as facts. Returns interface_interfacename and 
-    macaddress_interfacename.  Existing ipaddress and macaddress facts are 
+    Added support to return multiple interfaces and their IP addresses and
+    MAC addressess as facts. Returns interface_interfacename and
+    macaddress_interfacename.  Existing ipaddress and macaddress facts are
     unchanged and still returned.  Currently Linux only.  Closes #6.
- 
+
     Added macaddress fact support for FreeBSD and OpenBSD - closes #37
 
     Added hardwareisa support for *BSD platforms - closed #38
@@ -289,4 +289,4 @@
     adding new fact resolution mechanisms at run-time.
 
 1.0b1:
-	Initial release.
+    Initial release.</diff>
      <filename>CHANGELOG</filename>
    </modified>
    <modified>
      <diff>@@ -2,7 +2,7 @@
 
 $LOAD_PATH &lt;&lt; File.join(File.dirname(__FILE__), 'tasks')
 
-begin 
+begin
     require 'rake/reductive'
 rescue LoadError
     $stderr.puts &quot;You must have the Reductive build library in your RUBYLIB.&quot;
@@ -12,16 +12,16 @@ end
 project = Rake::RedLabProject.new(&quot;facter&quot;) do |p|
     p.summary = &quot;Facter collects Operating system facts.&quot;
     p.description = &lt;&lt;-EOF
-      Facter is a module for collecting simple facts about a host 
+      Facter is a module for collecting simple facts about a host
       Operating system.
     EOF
 
     p.filelist = [
         'install.rb',
         '[A-Z]*',
-        'bin/**/*', 
+        'bin/**/*',
         'lib/facter.rb',
-        'lib/**/*.rb', 
+        'lib/**/*.rb',
         'test/**/*.rb',
         'spec/**/*',
         'conf/**/*',
@@ -48,21 +48,19 @@ task :archive do
 end
 
 namespace :ci do
+    desc &quot;Run the CI prep tasks&quot;
+    task :prep do
+        require 'rubygems'
+        gem 'ci_reporter'
+        require 'ci/reporter/rake/rspec'
+        require 'ci/reporter/rake/test_unit'
+        ENV['CI_REPORTS'] = 'results'
+    end
 
-  desc &quot;Run the CI prep tasks&quot;
-  task :prep do
-    require 'rubygems'
-    gem 'ci_reporter'
-    require 'ci/reporter/rake/rspec'
-    require 'ci/reporter/rake/test_unit'
-    ENV['CI_REPORTS'] = 'results'
-  end
-
-  desc &quot;Run CI RSpec tests&quot;
-  task :spec =&gt; [:prep, 'ci:setup:rspec'] do
-     sh &quot;cd spec; rake all; exit 0&quot;
-  end
-
+    desc &quot;Run CI RSpec tests&quot;
+    task :spec =&gt; [:prep, 'ci:setup:rspec'] do
+        sh &quot;cd spec; rake all; exit 0&quot;
+    end
 end
 
 desc &quot;Send patch information to the puppet-dev list&quot;
@@ -75,7 +73,7 @@ task :mail_patches do
         raise &quot;Could not get branch from 'git status'&quot;
     end
     branch = $1
-    
+
     unless branch =~ %r{^([^\/]+)/([^\/]+)/([^\/]+)$}
         raise &quot;Branch name does not follow &lt;type&gt;/&lt;parent&gt;/&lt;name&gt; model; cannot autodetect parent branch&quot;
     end</diff>
      <filename>Rakefile</filename>
    </modified>
    <modified>
      <diff>@@ -1,9 +1,9 @@
 require 'autotest'
 
 Autotest.add_discovery do
-  &quot;rspec&quot;
+    &quot;rspec&quot;
 end
 
 Autotest.add_discovery do
-  &quot;facter&quot;
+    &quot;facter&quot;
 end</diff>
      <filename>autotest/discover.rb</filename>
    </modified>
    <modified>
      <diff>@@ -16,25 +16,25 @@ Autotest.add_hook :initialize do |at|
 
     # force a complete re-run for all of these:
 
-	# main facter lib
-	at.add_mapping(%r!^lib/facter\.rb$!) { |filename, _|
+    # main facter lib
+    at.add_mapping(%r!^lib/facter\.rb$!) { |filename, _|
         at.files_matching %r!spec/(unit|integration)/.*\.rb!
-	}
+    }
 
-	# the spec_helper
-	at.add_mapping(%r!^spec/spec_helper\.rb$!) { |filename, _|
+    # the spec_helper
+    at.add_mapping(%r!^spec/spec_helper\.rb$!) { |filename, _|
         at.files_matching %r!spec/(unit|integration)/.*\.rb!
-	}
+    }
 
     # the facter spec libraries
-	at.add_mapping(%r!^spec/lib/spec.*!) { |filename, _|
+    at.add_mapping(%r!^spec/lib/spec.*!) { |filename, _|
         at.files_matching %r!spec/(unit|integration)/.*\.rb!
-	}
+    }
 
     # the monkey patches for rspec
-	at.add_mapping(%r!^spec/lib/monkey_patches/.*!) { |filename, _|
+    at.add_mapping(%r!^spec/lib/monkey_patches/.*!) { |filename, _|
         at.files_matching %r!spec/(unit|integration)/.*\.rb!
-	}
+    }
 end
 
 class Autotest::FacterRspec &lt; Autotest::Rspec</diff>
      <filename>autotest/facter_rspec.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,74 +1,74 @@
 require 'autotest'
 
 Autotest.add_hook :initialize do |at|
-  at.clear_mappings
-  # watch out: Ruby bug (1.8.6):
-  # %r(/) != /\//
-  at.add_mapping(%r%^spec/.*\.rb$%) { |filename, _| 
-    filename 
-  }
-  at.add_mapping(%r%^lib/(.*)\.rb$%) { |_, m| 
-    [&quot;spec/#{m[1]}_spec.rb&quot;]
-  }
-  at.add_mapping(%r%^spec/(spec_helper|shared/.*)\.rb$%) { 
-    at.files_matching %r{^spec/.*_spec\.rb$}
-  }
+    at.clear_mappings
+    # watch out: Ruby bug (1.8.6):
+    # %r(/) != /\//
+    at.add_mapping(%r%^spec/.*\.rb$%) { |filename, _|
+        filename
+    }
+    at.add_mapping(%r%^lib/(.*)\.rb$%) { |_, m|
+        [&quot;spec/#{m[1]}_spec.rb&quot;]
+    }
+    at.add_mapping(%r%^spec/(spec_helper|shared/.*)\.rb$%) {
+        at.files_matching %r{^spec/.*_spec\.rb$}
+    }
 end
 
 class RspecCommandError &lt; StandardError; end
 
 class Autotest::Rspec &lt; Autotest
 
-  def initialize
-    super
+    def initialize
+        super
 
-    self.failed_results_re = /^\d+\)\n(?:\e\[\d*m)?(?:.*?Error in )?'([^\n]*)'(?: FAILED)?(?:\e\[\d*m)?\n(.*?)\n\n/m
-    self.completed_re = /\Z/ # FIX: some sort of summary line at the end?
-  end
+        self.failed_results_re = /^\d+\)\n(?:\e\[\d*m)?(?:.*?Error in )?'([^\n]*)'(?: FAILED)?(?:\e\[\d*m)?\n(.*?)\n\n/m
+        self.completed_re = /\Z/ # FIX: some sort of summary line at the end?
+    end
 
-  def consolidate_failures(failed)
-    filters = Hash.new { |h,k| h[k] = [] }
-    failed.each do |spec, failed_trace|
-      if f = test_files_for(failed).find { |f| failed_trace =~ Regexp.new(f) } then
-        filters[f] &lt;&lt; spec
-        break
-      end
+    def consolidate_failures(failed)
+        filters = Hash.new { |h,k| h[k] = [] }
+        failed.each do |spec, failed_trace|
+            if f = test_files_for(failed).find { |f| failed_trace =~ Regexp.new(f) } then
+                filters[f] &lt;&lt; spec
+                break
+            end
+        end
+        return filters
     end
-    return filters
-  end
 
-  def make_test_cmd(files_to_test)
-    return &quot;#{ruby} -S #{spec_command} #{add_options_if_present} #{files_to_test.keys.flatten.join(' ')}&quot;
-  end
-  
-  def add_options_if_present
-    File.exist?(&quot;spec/spec.opts&quot;) ? &quot;-O spec/spec.opts &quot; : &quot;&quot;
-  end
+    def make_test_cmd(files_to_test)
+        return &quot;#{ruby} -S #{spec_command} #{add_options_if_present} #{files_to_test.keys.flatten.join(' ')}&quot;
+    end
+ 
+    def add_options_if_present
+        File.exist?(&quot;spec/spec.opts&quot;) ? &quot;-O spec/spec.opts &quot; : &quot;&quot;
+    end
 
-  # Finds the proper spec command to use.  Precendence is set in the
-  # lazily-evaluated method spec_commands.  Alias + Override that in
-  # ~/.autotest to provide a different spec command then the default
-  # paths provided.
-  def spec_command(separator=File::ALT_SEPARATOR)
-    unless defined? @spec_command then
-      @spec_command = spec_commands.find { |cmd| File.exists? cmd }
+    # Finds the proper spec command to use.  Precendence is set in the
+    # lazily-evaluated method spec_commands.  Alias + Override that in
+    # ~/.autotest to provide a different spec command then the default
+    # paths provided.
+    def spec_command(separator=File::ALT_SEPARATOR)
+        unless defined? @spec_command then
+            @spec_command = spec_commands.find { |cmd| File.exists? cmd }
 
-      raise RspecCommandError, &quot;No spec command could be found!&quot; unless @spec_command
+            raise RspecCommandError, &quot;No spec command could be found!&quot; unless @spec_command
 
-      @spec_command.gsub! File::SEPARATOR, separator if separator
+            @spec_command.gsub! File::SEPARATOR, separator if separator
+        end
+        @spec_command
     end
-    @spec_command
-  end
 
-  # Autotest will look for spec commands in the following
-  # locations, in this order:
-  #
-  #   * bin/spec
-  #   * default spec bin/loader installed in Rubygems
-  def spec_commands
-    [
-      File.expand_path(File.join(File.dirname(__FILE__), '..', '..', 'bin', 'spec')),
-      File.join(Config::CONFIG['bindir'], 'spec')
-    ]
-  end
+    # Autotest will look for spec commands in the following
+    # locations, in this order:
+    #
+    #   * bin/spec
+    #   * default spec bin/loader installed in Rubygems
+    def spec_commands
+        [
+            File.expand_path(File.join(File.dirname(__FILE__), '..', '..', 'bin', 'spec')),
+            File.join(Config::CONFIG['bindir'], 'spec')
+        ]
+    end
 end</diff>
      <filename>autotest/rspec.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,4 +1,4 @@
-#!/usr/bin/env ruby 
+#!/usr/bin/env ruby
 #
 # = Synopsis
 #
@@ -15,7 +15,7 @@
 # about a system from within the shell or within Ruby.
 #
 # If no facts are specifically asked for, then all facts will be returned.
-# 
+#
 # = Options
 #
 # debug::
@@ -63,34 +63,34 @@ $debug = 0
 config = nil
 
 result = GetoptLong.new(
-    [ &quot;--version&quot;,         &quot;-v&quot;,     GetoptLong::NO_ARGUMENT ],
-    [ &quot;--help&quot;,		&quot;-h&quot;,            GetoptLong::NO_ARGUMENT ],
-    [ &quot;--debug&quot;,	&quot;-d&quot;,            GetoptLong::NO_ARGUMENT ],
-    [ &quot;--yaml&quot;,	&quot;-y&quot;,                GetoptLong::NO_ARGUMENT ],
-    [ &quot;--config&quot;,    &quot;-c&quot;,           GetoptLong::REQUIRED_ARGUMENT ],
-    [ &quot;--puppet&quot;,    &quot;-p&quot;,           GetoptLong::NO_ARGUMENT ]
+    [ &quot;--version&quot;, &quot;-v&quot;, GetoptLong::NO_ARGUMENT       ],
+    [ &quot;--help&quot;,    &quot;-h&quot;, GetoptLong::NO_ARGUMENT       ],
+    [ &quot;--debug&quot;,   &quot;-d&quot;, GetoptLong::NO_ARGUMENT       ],
+    [ &quot;--yaml&quot;,    &quot;-y&quot;, GetoptLong::NO_ARGUMENT       ],
+    [ &quot;--config&quot;,  &quot;-c&quot;, GetoptLong::REQUIRED_ARGUMENT ],
+    [ &quot;--puppet&quot;,  &quot;-p&quot;, GetoptLong::NO_ARGUMENT       ]
 )
 
 options = {
     :yaml =&gt; false
 }
 
-begin 
-  result.each { |opt,arg|
-    case opt
+begin
+    result.each { |opt,arg|
+        case opt
         when &quot;--version&quot;
-                        puts &quot;%s&quot; % Facter.version
-                        exit
+            puts &quot;%s&quot; % Facter.version
+            exit
         when &quot;--puppet&quot;
-			begin
+            begin
                 require 'puppet'
             rescue LoadError =&gt; detail
                 $stderr.puts &quot;Could not load Puppet: %s&quot; % detail
             end
         when &quot;--yaml&quot;
-			options[:yaml] = true
+            options[:yaml] = true
         when &quot;--debug&quot;
-			Facter.debugging(1)
+            Facter.debugging(1)
         when &quot;--help&quot;
             if $haveusage
                 RDoc::usage &amp;&amp; exit
@@ -101,24 +101,24 @@ begin
         else
             $stderr.puts &quot;Invalid option '#{opt}'&quot;
             exit(12)
-    end
-  }
+        end
+    }
 rescue
-  exit(12)
+    exit(12)
 end
 
 names = []
 
 unless config.nil?
-	File.open(config) { |file|
-		names = file.readlines.collect { |line|
-			line.chomp
-		}
-	}
+    File.open(config) { |file|
+        names = file.readlines.collect { |line|
+            line.chomp
+        }
+    }
 end
 
 ARGV.each { |item|
-	names.push item
+    names.push item
 }
 
 if names.empty?</diff>
      <filename>bin/facter</filename>
    </modified>
    <modified>
      <diff>@@ -2,35 +2,35 @@
 &lt;!DOCTYPE plist PUBLIC &quot;-//Apple//DTD PLIST 1.0//EN&quot; &quot;http://www.apple.com/DTDs/PropertyList-1.0.dtd&quot;&gt;
 &lt;plist version=&quot;1.0&quot;&gt;
 &lt;dict&gt;
-	&lt;key&gt;CFBundleIdentifier&lt;/key&gt;
-	&lt;string&gt;com.reductivelabs.facter&lt;/string&gt;
-	&lt;key&gt;CFBundleShortVersionString&lt;/key&gt;
-	&lt;string&gt;{SHORTVERSION}&lt;/string&gt;
-	&lt;key&gt;IFMajorVersion&lt;/key&gt;
-	&lt;integer&gt;{MAJORVERSION}&lt;/integer&gt;
-	&lt;key&gt;IFMinorVersion&lt;/key&gt;
-	&lt;integer&gt;{MINORVERSION}&lt;/integer&gt;
-	&lt;key&gt;IFPkgFlagAllowBackRev&lt;/key&gt;
-	&lt;false/&gt;
-	&lt;key&gt;IFPkgFlagAuthorizationAction&lt;/key&gt;
-	&lt;string&gt;RootAuthorization&lt;/string&gt;
-	&lt;key&gt;IFPkgFlagDefaultLocation&lt;/key&gt;
-	&lt;string&gt;/&lt;/string&gt;
-	&lt;key&gt;IFPkgFlagFollowLinks&lt;/key&gt;
-	&lt;true/&gt;
-	&lt;key&gt;IFPkgFlagInstallFat&lt;/key&gt;
-	&lt;false/&gt;
-	&lt;key&gt;IFPkgFlagIsRequired&lt;/key&gt;
-	&lt;false/&gt;
-	&lt;key&gt;IFPkgFlagOverwritePermissions&lt;/key&gt;
-	&lt;false/&gt;
-	&lt;key&gt;IFPkgFlagRelocatable&lt;/key&gt;
-	&lt;false/&gt;
-	&lt;key&gt;IFPkgFlagRestartAction&lt;/key&gt;
-	&lt;string&gt;None&lt;/string&gt;
-	&lt;key&gt;IFPkgFlagRootVolumeOnly&lt;/key&gt;
-	&lt;true/&gt;
-	&lt;key&gt;IFPkgFlagUpdateInstalledLanguages&lt;/key&gt;
-	&lt;false/&gt;
+    &lt;key&gt;CFBundleIdentifier&lt;/key&gt;
+    &lt;string&gt;com.reductivelabs.facter&lt;/string&gt;
+    &lt;key&gt;CFBundleShortVersionString&lt;/key&gt;
+    &lt;string&gt;{SHORTVERSION}&lt;/string&gt;
+    &lt;key&gt;IFMajorVersion&lt;/key&gt;
+    &lt;integer&gt;{MAJORVERSION}&lt;/integer&gt;
+    &lt;key&gt;IFMinorVersion&lt;/key&gt;
+    &lt;integer&gt;{MINORVERSION}&lt;/integer&gt;
+    &lt;key&gt;IFPkgFlagAllowBackRev&lt;/key&gt;
+    &lt;false/&gt;
+    &lt;key&gt;IFPkgFlagAuthorizationAction&lt;/key&gt;
+    &lt;string&gt;RootAuthorization&lt;/string&gt;
+    &lt;key&gt;IFPkgFlagDefaultLocation&lt;/key&gt;
+    &lt;string&gt;/&lt;/string&gt;
+    &lt;key&gt;IFPkgFlagFollowLinks&lt;/key&gt;
+    &lt;true/&gt;
+    &lt;key&gt;IFPkgFlagInstallFat&lt;/key&gt;
+    &lt;false/&gt;
+    &lt;key&gt;IFPkgFlagIsRequired&lt;/key&gt;
+    &lt;false/&gt;
+    &lt;key&gt;IFPkgFlagOverwritePermissions&lt;/key&gt;
+    &lt;false/&gt;
+    &lt;key&gt;IFPkgFlagRelocatable&lt;/key&gt;
+    &lt;false/&gt;
+    &lt;key&gt;IFPkgFlagRestartAction&lt;/key&gt;
+    &lt;string&gt;None&lt;/string&gt;
+    &lt;key&gt;IFPkgFlagRootVolumeOnly&lt;/key&gt;
+    &lt;true/&gt;
+    &lt;key&gt;IFPkgFlagUpdateInstalledLanguages&lt;/key&gt;
+    &lt;false/&gt;
 &lt;/dict&gt;
 &lt;/plist&gt;</diff>
      <filename>conf/osx/PackageInfo.plist</filename>
    </modified>
    <modified>
      <diff>@@ -7,13 +7,13 @@
 # Last Updated: 2008-07-31
 #
 # Copyright 2008 Google Inc.
-# 
+#
 # Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at
-# 
+#
 #      http://www.apache.org/licenses/LICENSE-2.0
-# 
+#
 # Unless required by applicable law or agreed to in writing, software
 # distributed under the License is distributed on an &quot;AS IS&quot; BASIS,
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -30,7 +30,7 @@ PREFLIGHT=&quot;preflight&quot;
 
 
 function find_installer() {
-  # we walk up three directories to make this executable from the root, 
+  # we walk up three directories to make this executable from the root,
   # root/conf or root/conf/osx
   if [ -f &quot;./${INSTALLRB}&quot; ]; then
     installer=&quot;$(pwd)/${INSTALLRB}&quot;
@@ -64,7 +64,7 @@ function prepare_package() {
   # to look at for package creation and substitue the version strings out.
   # Major/Minor versions can only be integers, so we have &quot;1&quot; and &quot;50&quot; for
   # facter version 1.5
-  # Note too that for 10.5 compatibility this Info.plist *must* be set to 
+  # Note too that for 10.5 compatibility this Info.plist *must* be set to
   # follow symlinks.
   VER1=$(echo ${facter_version} | awk -F &quot;.&quot; '{print $1}')
   VER2=$(echo ${facter_version} | awk -F &quot;.&quot; '{print $2}')
@@ -75,12 +75,12 @@ function prepare_package() {
   sed -i '' &quot;s/{SHORTVERSION}/${facter_version}/g&quot; &quot;${pkgtemp}/${PROTO_PLIST}&quot;
   sed -i '' &quot;s/{MAJORVERSION}/${major_version}/g&quot; &quot;${pkgtemp}/${PROTO_PLIST}&quot;
   sed -i '' &quot;s/{MINORVERSION}/${minor_version}/g&quot; &quot;${pkgtemp}/${PROTO_PLIST}&quot;
-  
+
   # We need to create a preflight script to remove traces of previous
   # facter installs due to limitations in Apple's pkg format.
   mkdir &quot;${pkgtemp}/scripts&quot;
   cp &quot;${facter_root}/conf/osx/${PREFLIGHT}&quot; &quot;${pkgtemp}/scripts&quot;
-  
+
   # substitute in the sitelibdir specified above on the assumption that this
   # is where any previous facter install exists that should be cleaned out.
   sed -i '' &quot;s|{SITELIBDIR}|${SITELIBDIR}|g&quot; &quot;${pkgtemp}/scripts/${PREFLIGHT}&quot;
@@ -124,44 +124,44 @@ function main() {
   fi
 
   find_installer
-  
+
   if [ ! &quot;${installer}&quot; ]; then
     echo &quot;Unable to find ${INSTALLRB}&quot;
     cleanup_and_exit 1
   fi
 
   find_facter_root
-  
+
   if [ ! &quot;${facter_root}&quot; ]; then
     echo &quot;Unable to find facter repository root.&quot;
     cleanup_and_exit 1
   fi
-  
+
   pkgroot=$(mktemp -d -t facterpkg)
-  
+
   if [ ! &quot;${pkgroot}&quot; ]; then
     echo &quot;Unable to create temporary package root.&quot;
     cleanup_and_exit 1
   fi
-  
+
   pkgtemp=$(mktemp -d -t factertmp)
-  
+
   if [ ! &quot;${pkgtemp}&quot; ]; then
     echo &quot;Unable to create temporary package root.&quot;
     cleanup_and_exit 1
   fi
-  
+
   install_facter
   get_facter_version
-  
+
   if [ ! &quot;${facter_version}&quot; ]; then
     echo &quot;Unable to retrieve facter version&quot;
     cleanup_and_exit 1
   fi
-  
+
   prepare_package
   create_package
-  
+
   cleanup_and_exit 0
 }
 </diff>
      <filename>conf/osx/createpackage.sh</filename>
    </modified>
    <modified>
      <diff>@@ -81,33 +81,33 @@ libs  = glob(%w{lib/**/*.rb lib/**/*.py})
 tests = glob(%w{tests/**/*.rb})
 
 def do_bins(bins, target, strip = 's?bin/')
-  bins.each do |bf|
-    obf = bf.gsub(/#{strip}/, '')
-    install_binfile(bf, obf, target)
-  end
+    bins.each do |bf|
+        obf = bf.gsub(/#{strip}/, '')
+            install_binfile(bf, obf, target)
+    end
 end
 
 def do_libs(libs, strip = 'lib/')
-  libs.each do |lf|
-    olf = File.join(InstallOptions.site_dir, lf.gsub(/#{strip}/, ''))
-    op = File.dirname(olf)
-    File.makedirs(op, true)
-    File.chmod(0755, op)
-    File.install(lf, olf, 0755, true)
-  end
+    libs.each do |lf|
+        olf = File.join(InstallOptions.site_dir, lf.gsub(/#{strip}/, ''))
+        op = File.dirname(olf)
+        File.makedirs(op, true)
+        File.chmod(0755, op)
+        File.install(lf, olf, 0755, true)
+    end
 end
 
 def do_man(man, strip = 'man/')
-  man.each do |mf|
-    omf = File.join(InstallOptions.man_dir, mf.gsub(/#{strip}/, ''))
-    om = File.dirname(omf)
-    File.makedirs(om, true)
-    File.chmod(0644, om)
-    File.install(mf, omf, 0644, true)
-    gzip = %x{which gzip}
-    gzip.chomp!
-    %x{#{gzip} -f #{omf}}
-  end
+    man.each do |mf|
+        omf = File.join(InstallOptions.man_dir, mf.gsub(/#{strip}/, ''))
+        om = File.dirname(omf)
+        File.makedirs(om, true)
+        File.chmod(0644, om)
+        File.install(mf, omf, 0644, true)
+        gzip = %x{which gzip}
+        gzip.chomp!
+        %x{#{gzip} -f #{omf}}
+    end
 end
 
 # Verify that all of the prereqs are installed
@@ -126,158 +126,158 @@ end
 # Prepare the file installation.
 #
 def prepare_installation
-  # Only try to do docs if we're sure they have rdoc
-  if $haverdoc
-      InstallOptions.rdoc  = true
-      if RUBY_PLATFORM == &quot;i386-mswin32&quot;
+    # Only try to do docs if we're sure they have rdoc
+    if $haverdoc
+        InstallOptions.rdoc  = true
+        if RUBY_PLATFORM == &quot;i386-mswin32&quot;
+            InstallOptions.ri  = false
+        else
+            InstallOptions.ri  = true
+        end
+    else
+        InstallOptions.rdoc  = false
         InstallOptions.ri  = false
-      else
-        InstallOptions.ri  = true
-      end
-  else
-      InstallOptions.rdoc  = false
-      InstallOptions.ri  = false
-  end
-
-
-  if $haveman
-      InstallOptions.man = true
-      if RUBY_PLATFORM == &quot;i386-mswin32&quot;
-        InstallOptions.man  = false
-      end
-  else
-      InstallOptions.man = false
-  end
-
-  InstallOptions.tests = true
-
-  ARGV.options do |opts|
-    opts.banner = &quot;Usage: #{File.basename($0)} [options]&quot;
-    opts.separator &quot;&quot;
-    opts.on('--[no-]rdoc', 'Prevents the creation of RDoc output.', 'Default on.') do |onrdoc|
-      InstallOptions.rdoc = onrdoc
-    end
-    opts.on('--[no-]ri', 'Prevents the creation of RI output.', 'Default off on mswin32.') do |onri|
-      InstallOptions.ri = onri
     end
-    opts.on('--[no-]man', 'Presents the creation of man pages.', 'Default on.') do |onman|
-    InstallOptions.man = onman
-    end
-    opts.on('--[no-]tests', 'Prevents the execution of unit tests.', 'Default on.') do |ontest|
-      InstallOptions.tests = ontest
-    end
-    opts.on('--destdir[=OPTIONAL]', 'Installation prefix for all targets', 'Default essentially /') do |destdir|
-      InstallOptions.destdir = destdir
-    end
-    opts.on('--bindir[=OPTIONAL]', 'Installation directory for binaries', 'overrides Config::CONFIG[&quot;bindir&quot;]') do |bindir|
-      InstallOptions.bindir = bindir
+
+
+    if $haveman
+        InstallOptions.man = true
+        if RUBY_PLATFORM == &quot;i386-mswin32&quot;
+            InstallOptions.man  = false
+        end
+    else
+        InstallOptions.man = false
     end
-    opts.on('--sbindir[=OPTIONAL]', 'Installation directory for system binaries', 'overrides Config::CONFIG[&quot;sbindir&quot;]') do |sbindir|
-      InstallOptions.sbindir = sbindir
+
+    InstallOptions.tests = true
+
+    ARGV.options do |opts|
+        opts.banner = &quot;Usage: #{File.basename($0)} [options]&quot;
+        opts.separator &quot;&quot;
+        opts.on('--[no-]rdoc', 'Prevents the creation of RDoc output.', 'Default on.') do |onrdoc|
+            InstallOptions.rdoc = onrdoc
+        end
+        opts.on('--[no-]ri', 'Prevents the creation of RI output.', 'Default off on mswin32.') do |onri|
+            InstallOptions.ri = onri
+        end
+        opts.on('--[no-]man', 'Presents the creation of man pages.', 'Default on.') do |onman|
+        InstallOptions.man = onman
+        end
+        opts.on('--[no-]tests', 'Prevents the execution of unit tests.', 'Default on.') do |ontest|
+            InstallOptions.tests = ontest
+        end
+        opts.on('--destdir[=OPTIONAL]', 'Installation prefix for all targets', 'Default essentially /') do |destdir|
+            InstallOptions.destdir = destdir
+        end
+        opts.on('--bindir[=OPTIONAL]', 'Installation directory for binaries', 'overrides Config::CONFIG[&quot;bindir&quot;]') do |bindir|
+            InstallOptions.bindir = bindir
+        end
+        opts.on('--sbindir[=OPTIONAL]', 'Installation directory for system binaries', 'overrides Config::CONFIG[&quot;sbindir&quot;]') do |sbindir|
+            InstallOptions.sbindir = sbindir
+        end
+        opts.on('--sitelibdir[=OPTIONAL]', 'Installation directory for libraries', 'overrides Config::CONFIG[&quot;sitelibdir&quot;]') do |sitelibdir|
+            InstallOptions.sitelibdir = sitelibdir
+        end
+        opts.on('--mandir[=OPTIONAL]', 'Installation directory for man pages', 'overrides Config::CONFIG[&quot;mandir&quot;]') do |mandir|
+            InstallOptions.mandir = mandir
+        end
+        opts.on('--quick', 'Performs a quick installation. Only the', 'installation is done.') do |quick|
+            InstallOptions.rdoc   = false
+            InstallOptions.ri     = false
+            InstallOptions.tests  = false
+        end
+        opts.on('--full', 'Performs a full installation. All', 'optional installation steps are run.') do |full|
+            InstallOptions.rdoc   = true
+            InstallOptions.ri     = true
+            InstallOptions.tests  = true
+        end
+        opts.separator(&quot;&quot;)
+        opts.on_tail('--help', &quot;Shows this help text.&quot;) do
+            $stderr.puts opts
+            exit
+        end
+
+        opts.parse!
     end
-    opts.on('--sitelibdir[=OPTIONAL]', 'Installation directory for libraries', 'overrides Config::CONFIG[&quot;sitelibdir&quot;]') do |sitelibdir|
-      InstallOptions.sitelibdir = sitelibdir
+
+    tmpdirs = [&quot;.&quot;, ENV['TMP'], ENV['TEMP'], &quot;/tmp&quot;, &quot;/var/tmp&quot;]
+
+    version = [Config::CONFIG[&quot;MAJOR&quot;], Config::CONFIG[&quot;MINOR&quot;]].join(&quot;.&quot;)
+    libdir = File.join(Config::CONFIG[&quot;libdir&quot;], &quot;ruby&quot;, version)
+
+    # Mac OS X 10.5 declares bindir and sbindir as
+    # /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin
+    # /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/sbin
+    # which is not generally where people expect executables to be installed
+    if RUBY_PLATFORM == &quot;universal-darwin9.0&quot;
+        Config::CONFIG['bindir'] = &quot;/usr/bin&quot;
+        Config::CONFIG['sbindir'] = &quot;/usr/sbin&quot;
     end
-    opts.on('--mandir[=OPTIONAL]', 'Installation directory for man pages', 'overrides Config::CONFIG[&quot;mandir&quot;]') do |mandir|
-      InstallOptions.mandir = mandir
+
+    if not InstallOptions.bindir.nil?
+        bindir = InstallOptions.bindir
+    else
+        bindir = Config::CONFIG['bindir']
     end
-    opts.on('--quick', 'Performs a quick installation. Only the', 'installation is done.') do |quick|
-      InstallOptions.rdoc   = false
-      InstallOptions.ri     = false
-      InstallOptions.tests  = false
+
+    if not InstallOptions.sbindir.nil?
+        sbindir = InstallOptions.sbindir
+    else
+        sbindir = Config::CONFIG['sbindir']
     end
-    opts.on('--full', 'Performs a full installation. All', 'optional installation steps are run.') do |full|
-      InstallOptions.rdoc   = true
-      InstallOptions.ri     = true
-      InstallOptions.tests  = true
+
+    if not InstallOptions.sitelibdir.nil?
+        sitelibdir = InstallOptions.sitelibdir
+    else
+        sitelibdir = Config::CONFIG[&quot;sitelibdir&quot;]
+        if sitelibdir.nil?
+            sitelibdir = $:.find { |x| x =~ /site_ruby/ }
+            if sitelibdir.nil?
+                sitelibdir = File.join(libdir, &quot;site_ruby&quot;)
+            elsif sitelibdir !~ Regexp.quote(version)
+                sitelibdir = File.join(sitelibdir, version)
+            end
+        end
     end
-    opts.separator(&quot;&quot;)
-    opts.on_tail('--help', &quot;Shows this help text.&quot;) do
-      $stderr.puts opts
-      exit
+
+    if not InstallOptions.mandir.nil?
+        mandir = InstallOptions.mandir
+    else
+        mandir = Config::CONFIG['mandir']
     end
 
-    opts.parse!
-  end
-
-  tmpdirs = [&quot;.&quot;, ENV['TMP'], ENV['TEMP'], &quot;/tmp&quot;, &quot;/var/tmp&quot;]
-
-  version = [Config::CONFIG[&quot;MAJOR&quot;], Config::CONFIG[&quot;MINOR&quot;]].join(&quot;.&quot;)
-  libdir = File.join(Config::CONFIG[&quot;libdir&quot;], &quot;ruby&quot;, version)
-
-  # Mac OS X 10.5 declares bindir and sbindir as
-  # /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin
-  # /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/sbin
-  # which is not generally where people expect executables to be installed
-  if RUBY_PLATFORM == &quot;universal-darwin9.0&quot;
-    Config::CONFIG['bindir'] = &quot;/usr/bin&quot;
-    Config::CONFIG['sbindir'] = &quot;/usr/sbin&quot;
-  end
-  
-  if not InstallOptions.bindir.nil?
-    bindir = InstallOptions.bindir
-  else
-    bindir = Config::CONFIG['bindir']
-  end
-  
-  if not InstallOptions.sbindir.nil?
-    sbindir = InstallOptions.sbindir
-  else
-    sbindir = Config::CONFIG['sbindir']
-  end
-  
-  if not InstallOptions.sitelibdir.nil?
-    sitelibdir = InstallOptions.sitelibdir
-  else
-    sitelibdir = Config::CONFIG[&quot;sitelibdir&quot;]
-    if sitelibdir.nil?
-      sitelibdir = $:.find { |x| x =~ /site_ruby/ }
-      if sitelibdir.nil?
-        sitelibdir = File.join(libdir, &quot;site_ruby&quot;)
-      elsif sitelibdir !~ Regexp.quote(version)
-        sitelibdir = File.join(sitelibdir, version)
-      end
+    # To be deprecated once people move over to using --destdir option
+    if (destdir = ENV['DESTDIR'])
+        bindir = &quot;#{destdir}#{bindir}&quot;
+        sbindir = &quot;#{destdir}#{sbindir}&quot;
+        mandir = &quot;#{destdir}#{mandir}&quot;
+        sitelibdir = &quot;#{destdir}#{sitelibdir}&quot;
+
+        FileUtils.makedirs(bindir)
+        FileUtils.makedirs(sbindir)
+        FileUtils.makedirs(mandir)
+        FileUtils.makedirs(sitelibdir)
+        # This is the new way forward
+    elsif (destdir = InstallOptions.destdir)
+        bindir = &quot;#{destdir}#{bindir}&quot;
+        sbindir = &quot;#{destdir}#{sbindir}&quot;
+        mandir = &quot;#{destdir}#{mandir}&quot;
+        sitelibdir = &quot;#{destdir}#{sitelibdir}&quot;
+
+        FileUtils.makedirs(bindir)
+        FileUtils.makedirs(sbindir)
+        FileUtils.makedirs(mandir)
+        FileUtils.makedirs(sitelibdir)
     end
-  end
-  
-  if not InstallOptions.mandir.nil?
-    mandir = InstallOptions.mandir
-  else
-    mandir = Config::CONFIG['mandir'] 
-  end
-
-  # To be deprecated once people move over to using --destdir option
-  if (destdir = ENV['DESTDIR'])
-    bindir = &quot;#{destdir}#{bindir}&quot;
-    sbindir = &quot;#{destdir}#{sbindir}&quot;
-    mandir = &quot;#{destdir}#{mandir}&quot;
-    sitelibdir = &quot;#{destdir}#{sitelibdir}&quot;
-
-    FileUtils.makedirs(bindir)
-    FileUtils.makedirs(sbindir)
-    FileUtils.makedirs(mandir)
-    FileUtils.makedirs(sitelibdir)
-  # This is the new way forward
-  elsif (destdir = InstallOptions.destdir)
-    bindir = &quot;#{destdir}#{bindir}&quot;
-    sbindir = &quot;#{destdir}#{sbindir}&quot;
-    mandir = &quot;#{destdir}#{mandir}&quot;
-    sitelibdir = &quot;#{destdir}#{sitelibdir}&quot;
-
-    FileUtils.makedirs(bindir)
-    FileUtils.makedirs(sbindir)
-    FileUtils.makedirs(mandir)
-    FileUtils.makedirs(sitelibdir)
-  end
-
-  tmpdirs &lt;&lt; bindir
-
-  InstallOptions.tmp_dirs = tmpdirs.compact
-  InstallOptions.site_dir = sitelibdir
-  InstallOptions.bin_dir  = bindir
-  InstallOptions.sbin_dir = sbindir
-  InstallOptions.lib_dir  = libdir
-  InstallOptions.man_dir  = mandir
+
+    tmpdirs &lt;&lt; bindir
+
+    InstallOptions.tmp_dirs = tmpdirs.compact
+    InstallOptions.site_dir = sitelibdir
+    InstallOptions.bin_dir  = bindir
+    InstallOptions.sbin_dir = sbindir
+    InstallOptions.lib_dir  = libdir
+    InstallOptions.man_dir  = mandir
 end
 
 ##
@@ -323,10 +323,10 @@ def build_man(bins)
 
         # Create binary man pages
         bins.each do |bin|
-          b = bin.gsub( &quot;bin/&quot;, &quot;&quot;)
-          %x{#{bin} --help &gt; ./#{b}.rst}
-          %x{#{rst2man} ./#{b}.rst ./man/man8/#{b}.8}
-          File.unlink(&quot;./#{b}.rst&quot;)
+            b = bin.gsub( &quot;bin/&quot;, &quot;&quot;)
+            %x{#{bin} --help &gt; ./#{b}.rst}
+            %x{#{rst2man} ./#{b}.rst ./man/man8/#{b}.8}
+            File.unlink(&quot;./#{b}.rst&quot;)
         end
     rescue SystemCallError
         $stderr.puts &quot;Couldn't build man pages: &quot; + $!
@@ -335,24 +335,24 @@ def build_man(bins)
 end
 
 def run_tests(test_list)
-	begin
-		require 'test/unit/ui/console/testrunner'
-		$:.unshift &quot;lib&quot;
-		test_list.each do |test|
-		next if File.directory?(test)
-		require test
-		end
-
-		tests = []
-		ObjectSpace.each_object { |o| tests &lt;&lt; o if o.kind_of?(Class) } 
-		tests.delete_if { |o| !o.ancestors.include?(Test::Unit::TestCase) }
-		tests.delete_if { |o| o == Test::Unit::TestCase }
-
-		tests.each { |test| Test::Unit::UI::Console::TestRunner.run(test) }
-		$:.shift
-	rescue LoadError
-		puts &quot;Missing testrunner library; skipping tests&quot;
-	end
+    begin
+        require 'test/unit/ui/console/testrunner'
+        $:.unshift &quot;lib&quot;
+        test_list.each do |test|
+            next if File.directory?(test)
+            require test
+        end
+
+        tests = []
+        ObjectSpace.each_object { |o| tests &lt;&lt; o if o.kind_of?(Class) }
+        tests.delete_if { |o| !o.ancestors.include?(Test::Unit::TestCase) }
+        tests.delete_if { |o| o == Test::Unit::TestCase }
+
+        tests.each { |test| Test::Unit::UI::Console::TestRunner.run(test) }
+        $:.shift
+    rescue LoadError
+        puts &quot;Missing testrunner library; skipping tests&quot;
+    end
 end
 
 ##
@@ -361,57 +361,57 @@ end
 # (e.g., bin/rdoc becomes rdoc); the shebang line handles running it. Under
 # windows, we add an '.rb' extension and let file associations do their stuff.
 def install_binfile(from, op_file, target)
-  tmp_dir = nil
-  InstallOptions.tmp_dirs.each do |t|
-    if File.directory?(t) and File.writable?(t)
-      tmp_dir = t
-      break
+    tmp_dir = nil
+    InstallOptions.tmp_dirs.each do |t|
+        if File.directory?(t) and File.writable?(t)
+            tmp_dir = t
+            break
+        end
     end
-  end
-  
-  fail &quot;Cannot find a temporary directory&quot; unless tmp_dir
-  tmp_file = File.join(tmp_dir, '_tmp')
-  ruby = File.join(Config::CONFIG['bindir'], Config::CONFIG['ruby_install_name'])
-
-  File.open(from) do |ip|
-    File.open(tmp_file, &quot;w&quot;) do |op|
-      ruby = File.join(Config::CONFIG['bindir'], Config::CONFIG['ruby_install_name'])
-      op.puts &quot;#!#{ruby}&quot;
-      contents = ip.readlines
-      if contents[0] =~ /^#!/
-          contents.shift
-      end
-      op.write contents.join()
+
+    fail &quot;Cannot find a temporary directory&quot; unless tmp_dir
+    tmp_file = File.join(tmp_dir, '_tmp')
+    ruby = File.join(Config::CONFIG['bindir'], Config::CONFIG['ruby_install_name'])
+
+    File.open(from) do |ip|
+        File.open(tmp_file, &quot;w&quot;) do |op|
+            ruby = File.join(Config::CONFIG['bindir'], Config::CONFIG['ruby_install_name'])
+            op.puts &quot;#!#{ruby}&quot;
+            contents = ip.readlines
+            if contents[0] =~ /^#!/
+                contents.shift
+            end
+            op.write contents.join()
+        end
     end
-  end
 
-  if Config::CONFIG[&quot;target_os&quot;] =~ /win/io and Config::CONFIG[&quot;target_os&quot;] !~ /darwin/io
-    installed_wrapper = false
+    if Config::CONFIG[&quot;target_os&quot;] =~ /win/io and Config::CONFIG[&quot;target_os&quot;] !~ /darwin/io
+        installed_wrapper = false
 
-    if File.exists?(&quot;#{from}.bat&quot;)
-      FileUtils.install(&quot;#{from}.bat&quot;, File.join(target, &quot;#{op_file}.bat&quot;), :mode =&gt; 0755, :verbose =&gt; true)
-      installed_wrapper = true
-    end
+        if File.exists?(&quot;#{from}.bat&quot;)
+            FileUtils.install(&quot;#{from}.bat&quot;, File.join(target, &quot;#{op_file}.bat&quot;), :mode =&gt; 0755, :verbose =&gt; true)
+            installed_wrapper = true
+        end
 
-    if File.exists?(&quot;#{from}.cmd&quot;)
-      FileUtils.install(&quot;#{from}.cmd&quot;, File.join(target, &quot;#{op_file}.cmd&quot;), :mode =&gt; 0755, :verbose =&gt; true)
-      installed_wrapper = true
-    end
+        if File.exists?(&quot;#{from}.cmd&quot;)
+            FileUtils.install(&quot;#{from}.cmd&quot;, File.join(target, &quot;#{op_file}.cmd&quot;), :mode =&gt; 0755, :verbose =&gt; true)
+            installed_wrapper = true
+        end
 
-    if not installed_wrapper
-      tmp_file2 = File.join(tmp_dir, '_tmp_wrapper')
-      cwn = File.join(Config::CONFIG['bindir'], op_file)
-      cwv = CMD_WRAPPER.gsub('&lt;ruby&gt;', ruby.gsub(%r{/}) { &quot;\\&quot; }).gsub!('&lt;command&gt;', cwn.gsub(%r{/}) { &quot;\\&quot; } )
+        if not installed_wrapper
+            tmp_file2 = File.join(tmp_dir, '_tmp_wrapper')
+            cwn = File.join(Config::CONFIG['bindir'], op_file)
+            cwv = CMD_WRAPPER.gsub('&lt;ruby&gt;', ruby.gsub(%r{/}) { &quot;\\&quot; }).gsub!('&lt;command&gt;', cwn.gsub(%r{/}) { &quot;\\&quot; } )
 
-      File.open(tmp_file2, &quot;wb&quot;) { |cw| cw.puts cwv }
-      FileUtils.install(tmp_file2, File.join(target, &quot;#{op_file}.bat&quot;), :mode =&gt; 0755, :verbose =&gt; true)
+            File.open(tmp_file2, &quot;wb&quot;) { |cw| cw.puts cwv }
+            FileUtils.install(tmp_file2, File.join(target, &quot;#{op_file}.bat&quot;), :mode =&gt; 0755, :verbose =&gt; true)
 
-      File.unlink(tmp_file2)
-      installed_wrapper = true
+            File.unlink(tmp_file2)
+            installed_wrapper = true
+        end
     end
-  end
-  FileUtils.install(tmp_file, File.join(target, op_file), :mode =&gt; 0755, :verbose =&gt; true)
-  File.unlink(tmp_file)
+    FileUtils.install(tmp_file, File.join(target, op_file), :mode =&gt; 0755, :verbose =&gt; true)
+    File.unlink(tmp_file)
 end
 
 CMD_WRAPPER = &lt;&lt;-EOS</diff>
      <filename>install.rb</filename>
    </modified>
    <modified>
      <diff>@@ -28,13 +28,13 @@ module Facter
     include Enumerable
 
     FACTERVERSION = '1.5.4'
-	# = Facter
+    # = Facter
     # Functions as a hash of 'facts' you might care about about your
     # system, such as mac address, IP address, Video card, etc.
     # returns them dynamically
 
-	# == Synopsis
-	#
+    # == Synopsis
+    #
     # Generally, treat &lt;tt&gt;Facter&lt;/tt&gt; as a hash:
     # == Example
     # require 'facter'
@@ -49,7 +49,7 @@ module Facter
     RESET = &quot;*[0m&quot;
     @@debug = 0
 
-	# module methods
+    # module methods
 
     def self.collection
         unless defined?(@collection) and @collection
@@ -147,9 +147,9 @@ module Facter
         Facter.reset
     end
 
-	# Set debugging on or off.
-	def self.debugging(bit)
-		if bit
+    # Set debugging on or off.
+    def self.debugging(bit)
+        if bit
             case bit
             when TrueClass; @@debug = 1
             when FalseClass; @@debug = 0
@@ -168,10 +168,10 @@ module Facter
             else
                 @@debug = 0
             end
-		else
-			@@debug = 0
-		end
-	end
+        else
+            @@debug = 0
+        end
+    end
 
     # Remove them all.
     def self.reset</diff>
      <filename>lib/facter.rb</filename>
    </modified>
    <modified>
      <diff>@@ -2,8 +2,8 @@ Facter.add(:kernel) do
     setcode do
         require 'rbconfig'
         case Config::CONFIG['host_os']
-          when /mswin/i; 'windows'
-          else Facter::Util::Resolution.exec(&quot;uname -s&quot;)
+        when /mswin/i; 'windows'
+        else Facter::Util::Resolution.exec(&quot;uname -s&quot;)
         end
     end
 end</diff>
      <filename>lib/facter/kernel.rb</filename>
    </modified>
    <modified>
      <diff>@@ -13,11 +13,11 @@
 ## Foundation, Inc., 51 Franklin St, Fifth Floor, Boston MA  02110-1301 USA
 ##
 
-{   &quot;LSBRelease&quot; =&gt; %r{^LSB Version:\t(.*)$},
-    &quot;LSBDistId&quot; =&gt; %r{^Distributor ID:\t(.*)$},
-    &quot;LSBDistRelease&quot; =&gt; %r{^Release:\t(.*)$},
-    &quot;LSBDistDescription&quot; =&gt; %r{^Description:\t(.*)$},
-    &quot;LSBDistCodeName&quot; =&gt; %r{^Codename:\t(.*)$}
+{  &quot;LSBRelease&quot;         =&gt; %r{^LSB Version:\t(.*)$},
+   &quot;LSBDistId&quot;          =&gt; %r{^Distributor ID:\t(.*)$},
+   &quot;LSBDistRelease&quot;     =&gt; %r{^Release:\t(.*)$},
+   &quot;LSBDistDescription&quot; =&gt; %r{^Description:\t(.*)$},
+   &quot;LSBDistCodeName&quot;    =&gt; %r{^Codename:\t(.*)$}
 }.each do |fact, pattern|
     Facter.add(fact) do
         confine :kernel =&gt; :linux</diff>
      <filename>lib/facter/lsb.rb</filename>
    </modified>
    <modified>
      <diff>@@ -6,14 +6,14 @@
 require 'facter/util/manufacturer'
 
 query = {
-	'[Ss]ystem [Ii]nformation' =&gt; [
-		{ 'Manufacturer:' =&gt; 'manufacturer' },
-		{ 'Product(?: Name)?:' =&gt; 'productname' },
-		{ 'Serial Number:' =&gt; 'serialnumber' }
-	],
-	'(Chassis Information|system enclosure or chassis)' =&gt; [
-		{ '(?:Chassis )?Type:' =&gt; 'type' }
-	]
+    '[Ss]ystem [Ii]nformation' =&gt; [
+        { 'Manufacturer:'      =&gt; 'manufacturer' },
+        { 'Product(?: Name)?:' =&gt; 'productname' },
+        { 'Serial Number:'     =&gt; 'serialnumber' }
+    ],
+    '(Chassis Information|system enclosure or chassis)' =&gt; [
+        { '(?:Chassis )?Type:' =&gt; 'type' }
+    ]
 }
 
 Facter::Manufacturer.dmi_find_system_info(query)</diff>
      <filename>lib/facter/manufacturer.rb</filename>
    </modified>
    <modified>
      <diff>@@ -7,10 +7,11 @@
 #
 require 'facter/util/memory'
 
-{:MemorySize =&gt; &quot;MemTotal&quot;,
- :MemoryFree =&gt; &quot;MemFree&quot;,
- :SwapSize   =&gt; &quot;SwapTotal&quot;,
- :SwapFree   =&gt; &quot;SwapFree&quot;}.each do |fact, name|
+{   :MemorySize =&gt; &quot;MemTotal&quot;,
+    :MemoryFree =&gt; &quot;MemFree&quot;,
+    :SwapSize   =&gt; &quot;SwapTotal&quot;,
+    :SwapFree   =&gt; &quot;SwapFree&quot;
+}.each do |fact, name|
     Facter.add(fact) do
         confine :kernel =&gt; :linux
         setcode do</diff>
      <filename>lib/facter/memory.rb</filename>
    </modified>
    <modified>
      <diff>@@ -9,9 +9,9 @@
 require 'facter/util/netmask'
 
 Facter.add(&quot;netmask&quot;) do
-	confine :kernel =&gt; [ :sunos, :linux ]
-	setcode do
-		Facter::NetMask.get_netmask
-	end
+    confine :kernel =&gt; [ :sunos, :linux ]
+    setcode do
+        Facter::NetMask.get_netmask
+    end
 end
 </diff>
      <filename>lib/facter/netmask.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,10 +1,9 @@
 require 'facter/util/ip'
 
 Facter::Util::IP.get_interfaces.each do |interface|
-
-        Facter.add(&quot;network_&quot; + Facter::Util::IP.alphafy(interface)) do
-            setcode do
-                Facter::Util::IP.get_network_value(interface)
-            end 
+    Facter.add(&quot;network_&quot; + Facter::Util::IP.alphafy(interface)) do
+        setcode do
+            Facter::Util::IP.get_network_value(interface)
         end 
+    end 
 end</diff>
      <filename>lib/facter/network.rb</filename>
    </modified>
    <modified>
      <diff>@@ -20,8 +20,8 @@ Facter.add(:operatingsystem) do
             &quot;Mandriva&quot;
         elsif FileTest.exists?(&quot;/etc/mandrake-release&quot;)
             &quot;Mandrake&quot;
-	elsif FileTest.exists?(&quot;/etc/arch-release&quot;)
-	    &quot;Archlinux&quot;
+        elsif FileTest.exists?(&quot;/etc/arch-release&quot;)
+            &quot;Archlinux&quot;
         elsif FileTest.exists?(&quot;/etc/enterprise-release&quot;)
             &quot;OEL&quot;
         elsif FileTest.exists?(&quot;/etc/ovs-release&quot;)
@@ -37,8 +37,8 @@ Facter.add(:operatingsystem) do
             txt = File.read(&quot;/etc/SuSE-release&quot;)
             if txt =~ /^SUSE LINUX Enterprise Server/i
                 &quot;SLES&quot;
-	    elsif txt =~ /^openSUSE/i
-		&quot;OpenSuSE&quot;
+            elsif txt =~ /^openSUSE/i
+                &quot;OpenSuSE&quot;
             else
                 &quot;SuSE&quot;
             end</diff>
      <filename>lib/facter/operatingsystem.rb</filename>
    </modified>
    <modified>
      <diff>@@ -87,8 +87,8 @@ Facter.add(:operatingsystemrelease) do
             releasemajor = $1
             if releasefile =~ /^PATCHLEVEL\s*=\s*(\d+)/
                 releaseminor = $1
-	    elsif releasefile =~ /^VERSION\s=.*.(\d+)/
-		releaseminor = $1
+            elsif releasefile =~ /^VERSION\s=.*.(\d+)/
+                releaseminor = $1
             else
                 releaseminor = &quot;0&quot;
             end</diff>
      <filename>lib/facter/operatingsystemrelease.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,5 @@
 Facter.add(&quot;timezone&quot;) do
-     setcode do 
+     setcode do
          Time.new.zone
      end
 end</diff>
      <filename>lib/facter/timezone.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,4 +1,4 @@
 Facter.add(:uniqueid) do
-    setcode 'hostid',  '/bin/sh'
+    setcode 'hostid', '/bin/sh'
     confine :operatingsystem =&gt; %w{Solaris Linux Fedora RedHat CentOS SuSE SLES Debian Ubuntu Gentoo AIX}
 end</diff>
      <filename>lib/facter/uniqueid.rb</filename>
    </modified>
    <modified>
      <diff>@@ -12,9 +12,9 @@ if FileTest.exists?(&quot;/proc/uptime&quot;)
 
     %w{days hours seconds}.each do |label|
         Facter.add(&quot;uptime_&quot; + label) do
-                setcode do
-                    Facter::Util::Uptime.get_uptime_period(uptime, label)
-                end 
+            setcode do
+                Facter::Util::Uptime.get_uptime_period(uptime, label)
+            end 
         end 
     end 
 end</diff>
      <filename>lib/facter/uptime.rb</filename>
    </modified>
    <modified>
      <diff>@@ -5,20 +5,20 @@ module Facter::Util::IP
     # a given platform or set of platforms.
     REGEX_MAP = {
         :linux =&gt; {
-            :ipaddress =&gt; /inet addr:([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)/,
-            :macaddress  =&gt; /(?:ether|HWaddr)\s+(\w{1,2}:\w{1,2}:\w{1,2}:\w{1,2}:\w{1,2}:\w{1,2})/,
-            :netmask =&gt; /Mask:([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)/
+            :ipaddress  =&gt; /inet addr:([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)/,
+            :macaddress =&gt; /(?:ether|HWaddr)\s+(\w{1,2}:\w{1,2}:\w{1,2}:\w{1,2}:\w{1,2}:\w{1,2})/,
+            :netmask    =&gt; /Mask:([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)/
         },
-        :bsd =&gt; {
-            :aliases =&gt; [:openbsd, :netbsd, :freebsd, :darwin],
-            :ipaddress =&gt; /inet\s+([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)/,
-            :macaddress  =&gt; /(?:ether|lladdr)\s+(\w\w:\w\w:\w\w:\w\w:\w\w:\w\w)/,
-            :netmask =&gt; /netmask\s+0x(\w{8})/
+        :bsd   =&gt; {
+            :aliases    =&gt; [:openbsd, :netbsd, :freebsd, :darwin],
+            :ipaddress  =&gt; /inet\s+([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)/,
+            :macaddress =&gt; /(?:ether|lladdr)\s+(\w\w:\w\w:\w\w:\w\w:\w\w:\w\w)/,
+            :netmask    =&gt; /netmask\s+0x(\w{8})/
         },
         :sunos =&gt; {
-            :addr =&gt; /inet\s+([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)/,
-            :macaddress  =&gt; /(?:ether|lladdr)\s+(\w?\w:\w?\w:\w?\w:\w?\w:\w?\w:\w?\w)/,
-            :netmask =&gt; /netmask\s+(\w{8})/
+            :addr       =&gt; /inet\s+([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)/,
+            :macaddress =&gt; /(?:ether|lladdr)\s+(\w?\w:\w?\w:\w?\w:\w?\w:\w?\w:\w?\w)/,
+            :netmask    =&gt; /netmask\s+(\w{8})/
         }
     }
 </diff>
      <filename>lib/facter/util/ip.rb</filename>
    </modified>
    <modified>
      <diff>@@ -2,45 +2,45 @@
 # Support methods for manufacturer specific facts
 
 module Facter::Manufacturer
-	def self.dmi_find_system_info(name)
-		splitstr=&quot;Handle&quot;
-		case Facter.value(:kernel)
-			when 'Linux'
-				return nil unless FileTest.exists?(&quot;/usr/sbin/dmidecode&quot;)
-		
-				output=%x{/usr/sbin/dmidecode 2&gt;/dev/null}
-			when 'OpenBSD', 'FreeBSD'
-				return nil unless FileTest.exists?(&quot;/usr/local/sbin/dmidecode&quot;)
-		
-				output=%x{/usr/local/sbin/dmidecode 2&gt;/dev/null}
-			when 'NetBSD'
-				return nil unless FileTest.exists?(&quot;/usr/pkg/sbin/dmidecode&quot;)
+    def self.dmi_find_system_info(name)
+        splitstr=&quot;Handle&quot;
+        case Facter.value(:kernel)
+        when 'Linux'
+            return nil unless FileTest.exists?(&quot;/usr/sbin/dmidecode&quot;)
 
-				output=%x{/usr/pkg/sbin/dmidecode 2&gt;/dev/null}
-			when 'SunOS'
-				return nil unless FileTest.exists?(&quot;/usr/sbin/smbios&quot;)
-				splitstr=&quot;ID    SIZE TYPE&quot;
-				output=%x{/usr/sbin/smbios 2&gt;/dev/null}
+            output=%x{/usr/sbin/dmidecode 2&gt;/dev/null}
+        when 'OpenBSD', 'FreeBSD'
+            return nil unless FileTest.exists?(&quot;/usr/local/sbin/dmidecode&quot;)
 
-            else
-                return
-		end
-		name.each_pair do |key,v|
-			v.each do |v2|
-				v2.each_pair do |value,facterkey|
-					output.split(splitstr).each do |line|
-						if line =~ /#{key}/ and ( line =~ /#{value} 0x\d+ \(([-\w].*)\)\n*./ or line =~ /#{value} ([-\w].*)\n*./ )
-                                                result = $1
-							Facter.add(facterkey) do
-								confine :kernel =&gt; [ :linux, :freebsd, :netbsd, :openbsd, :sunos ]
-							setcode do
-							    result
-						        end
-					        end
-				        end
-			        end
-		        end
-	        end
+            output=%x{/usr/local/sbin/dmidecode 2&gt;/dev/null}
+        when 'NetBSD'
+            return nil unless FileTest.exists?(&quot;/usr/pkg/sbin/dmidecode&quot;)
+
+            output=%x{/usr/pkg/sbin/dmidecode 2&gt;/dev/null}
+        when 'SunOS'
+            return nil unless FileTest.exists?(&quot;/usr/sbin/smbios&quot;)
+            splitstr=&quot;ID    SIZE TYPE&quot;
+            output=%x{/usr/sbin/smbios 2&gt;/dev/null}
+
+        else
+            return
+        end
+        name.each_pair do |key,v|
+            v.each do |v2|
+                v2.each_pair do |value,facterkey|
+                    output.split(splitstr).each do |line|
+                        if line =~ /#{key}/ and ( line =~ /#{value} 0x\d+ \(([-\w].*)\)\n*./ or line =~ /#{value} ([-\w].*)\n*./ )
+                            result = $1
+                            Facter.add(facterkey) do
+                                confine :kernel =&gt; [ :linux, :freebsd, :netbsd, :openbsd, :sunos ]
+                                setcode do
+                                    result
+                                end
+                            end
+                        end
+                    end
+                end
+            end
         end
     end
 end</diff>
      <filename>lib/facter/util/manufacturer.rb</filename>
    </modified>
    <modified>
      <diff>@@ -7,220 +7,222 @@
 #++
 # See Plist::Emit.
 module Plist
-  # === Create a plist
-  # You can dump an object to a plist in one of two ways:
-  #
-  # * &lt;tt&gt;Plist::Emit.dump(obj)&lt;/tt&gt;
-  # * &lt;tt&gt;obj.to_plist&lt;/tt&gt;
-  #   * This requires that you mixin the &lt;tt&gt;Plist::Emit&lt;/tt&gt; module, which is already done for +Array+ and +Hash+.
-  #
-  # The following Ruby classes are converted into native plist types:
-  #   Array, Bignum, Date, DateTime, Fixnum, Float, Hash, Integer, String, Symbol, Time, true, false
-  # * +Array+ and +Hash+ are both recursive; their elements will be converted into plist nodes inside the &lt;array&gt; and &lt;dict&gt; containers (respectively).
-  # * +IO+ (and its descendants) and +StringIO+ objects are read from and their contents placed in a &lt;data&gt; element.
-  # * User classes may implement +to_plist_node+ to dictate how they should be serialized; otherwise the object will be passed to &lt;tt&gt;Marshal.dump&lt;/tt&gt; and the result placed in a &lt;data&gt; element.
-  #
-  # For detailed usage instructions, refer to USAGE[link:files/docs/USAGE.html] and the methods documented below.
-  module Emit
-    # Helper method for injecting into classes.  Calls &lt;tt&gt;Plist::Emit.dump&lt;/tt&gt; with +self+.
-    def to_plist(envelope = true)
-      return Plist::Emit.dump(self, envelope)
-    end
-
-    # Helper method for injecting into classes.  Calls &lt;tt&gt;Plist::Emit.save_plist&lt;/tt&gt; with +self+.
-    def save_plist(filename)
-      Plist::Emit.save_plist(self, filename)
-    end
-
-    # The following Ruby classes are converted into native plist types:
-    #   Array, Bignum, Date, DateTime, Fixnum, Float, Hash, Integer, String, Symbol, Time
+    # === Create a plist
+    # You can dump an object to a plist in one of two ways:
     #
-    # Write us (via RubyForge) if you think another class can be coerced safely into one of the expected plist classes.
+    # * &lt;tt&gt;Plist::Emit.dump(obj)&lt;/tt&gt;
+    # * &lt;tt&gt;obj.to_plist&lt;/tt&gt;
+    #   * This requires that you mixin the &lt;tt&gt;Plist::Emit&lt;/tt&gt; module, which is already done for +Array+ and +Hash+.
     #
-    # +IO+ and +StringIO+ objects are encoded and placed in &lt;data&gt; elements; other objects are &lt;tt&gt;Marshal.dump&lt;/tt&gt;'ed unless they implement +to_plist_node+.
+    # The following Ruby classes are converted into native plist types:
+    #   Array, Bignum, Date, DateTime, Fixnum, Float, Hash, Integer, String, Symbol, Time, true, false
+    # * +Array+ and +Hash+ are both recursive; their elements will be converted into plist nodes inside the &lt;array&gt; and &lt;dict&gt; containers (respectively).
+    # * +IO+ (and its descendants) and +StringIO+ objects are read from and their contents placed in a &lt;data&gt; element.
+    # * User classes may implement +to_plist_node+ to dictate how they should be serialized; otherwise the object will be passed to &lt;tt&gt;Marshal.dump&lt;/tt&gt; and the result placed in a &lt;data&gt; element.
     #
-    # The +envelope+ parameters dictates whether or not the resultant plist fragment is wrapped in the normal XML/plist header and footer.  Set it to false if you only want the fragment.
-    def self.dump(obj, envelope = true)
-      output = plist_node(obj)
+    # For detailed usage instructions, refer to USAGE[link:files/docs/USAGE.html] and the methods documented below.
+    module Emit
+        # Helper method for injecting into classes.  Calls &lt;tt&gt;Plist::Emit.dump&lt;/tt&gt; with +self+.
+        def to_plist(envelope = true)
+            return Plist::Emit.dump(self, envelope)
+        end
 
-      output = wrap(output) if envelope
+        # Helper method for injecting into classes.  Calls &lt;tt&gt;Plist::Emit.save_plist&lt;/tt&gt; with +self+.
+        def save_plist(filename)
+            Plist::Emit.save_plist(self, filename)
+        end
 
-      return output
-    end
+        # The following Ruby classes are converted into native plist types:
+        #   Array, Bignum, Date, DateTime, Fixnum, Float, Hash, Integer, String, Symbol, Time
+        #
+        # Write us (via RubyForge) if you think another class can be coerced safely into one of the expected plist classes.
+        #
+        # +IO+ and +StringIO+ objects are encoded and placed in &lt;data&gt; elements; other objects are &lt;tt&gt;Marshal.dump&lt;/tt&gt;'ed unless they implement +to_plist_node+.
+        #
+        # The +envelope+ parameters dictates whether or not the resultant plist fragment is wrapped in the normal XML/plist header and footer.  Set it to false if you only want the fragment.
+        def self.dump(obj, envelope = true)
+            output = plist_node(obj)
 
-    # Writes the serialized object's plist to the specified filename.
-    def self.save_plist(obj, filename)
-      File.open(filename, 'wb') do |f|
-        f.write(obj.to_plist)
-      end
-    end
+            output = wrap(output) if envelope
 
-    private
-    def self.plist_node(element)
-      output = ''
-
-      if element.respond_to? :to_plist_node
-        output &lt;&lt; element.to_plist_node
-      else
-        case element
-        when Array
-          if element.empty?
-            output &lt;&lt; &quot;&lt;array/&gt;\n&quot;
-          else
-            output &lt;&lt; tag('array') {
-              element.collect {|e| plist_node(e)}
-            }
-          end
-        when Hash
-          if element.empty?
-            output &lt;&lt; &quot;&lt;dict/&gt;\n&quot;
-          else
-            inner_tags = []
-
-            element.keys.sort.each do |k|
-              v = element[k]
-              inner_tags &lt;&lt; tag('key', CGI::escapeHTML(k.to_s))
-              inner_tags &lt;&lt; plist_node(v)
+            return output
+        end
+
+        # Writes the serialized object's plist to the specified filename.
+        def self.save_plist(obj, filename)
+            File.open(filename, 'wb') do |f|
+                f.write(obj.to_plist)
+            end
+        end
+
+        private
+        def self.plist_node(element)
+            output = ''
+
+            if element.respond_to? :to_plist_node
+                output &lt;&lt; element.to_plist_node
+            else
+                case element
+                when Array
+                    if element.empty?
+                        output &lt;&lt; &quot;&lt;array/&gt;\n&quot;
+                    else
+                        output &lt;&lt; tag('array') {
+                            element.collect {|e| plist_node(e)}
+                        }
+                    end
+                when Hash
+                    if element.empty?
+                        output &lt;&lt; &quot;&lt;dict/&gt;\n&quot;
+                    else
+                        inner_tags = []
+
+                        element.keys.sort.each do |k|
+                            v = element[k]
+                            inner_tags &lt;&lt; tag('key', CGI::escapeHTML(k.to_s))
+                            inner_tags &lt;&lt; plist_node(v)
+                        end
+
+                        output &lt;&lt; tag('dict') {
+                            inner_tags
+                        }
+                    end
+                when true, false
+                    output &lt;&lt; &quot;&lt;#{element}/&gt;\n&quot;
+                when Time
+                    output &lt;&lt; tag('date', element.utc.strftime('%Y-%m-%dT%H:%M:%SZ'))
+                when Date # also catches DateTime
+                    output &lt;&lt; tag('date', element.strftime('%Y-%m-%dT%H:%M:%SZ'))
+                when String, Symbol, Fixnum, Bignum, Integer, Float
+                    output &lt;&lt; tag(element_type(element), CGI::escapeHTML(element.to_s))
+                when IO, StringIO
+                    element.rewind
+                    contents = element.read
+                    # note that apple plists are wrapped at a different length then
+                    # what ruby's base64 wraps by default.
+                    # I used #encode64 instead of #b64encode (which allows a length arg)
+                    # because b64encode is b0rked and ignores the length arg.
+                    data = &quot;\n&quot;
+                    Base64::encode64(contents).gsub(/\s+/, '').scan(/.{1,68}/o) { data &lt;&lt; $&amp; &lt;&lt; &quot;\n&quot; }
+                    output &lt;&lt; tag('data', data)
+                else
+                    output &lt;&lt; comment( 'The &lt;data&gt; element below contains a Ruby object which has been serialized with Marshal.dump.' )
+                    data = &quot;\n&quot;
+                    Base64::encode64(Marshal.dump(element)).gsub(/\s+/, '').scan(/.{1,68}/o) { data &lt;&lt; $&amp; &lt;&lt; &quot;\n&quot; }
+                    output &lt;&lt; tag('data', data )
+                end
             end
 
-            output &lt;&lt; tag('dict') {
-              inner_tags
-            }
-          end
-        when true, false
-          output &lt;&lt; &quot;&lt;#{element}/&gt;\n&quot;
-        when Time
-          output &lt;&lt; tag('date', element.utc.strftime('%Y-%m-%dT%H:%M:%SZ'))
-        when Date # also catches DateTime
-          output &lt;&lt; tag('date', element.strftime('%Y-%m-%dT%H:%M:%SZ'))
-        when String, Symbol, Fixnum, Bignum, Integer, Float
-          output &lt;&lt; tag(element_type(element), CGI::escapeHTML(element.to_s))
-        when IO, StringIO
-          element.rewind
-          contents = element.read
-          # note that apple plists are wrapped at a different length then
-          # what ruby's base64 wraps by default.
-          # I used #encode64 instead of #b64encode (which allows a length arg)
-          # because b64encode is b0rked and ignores the length arg.
-          data = &quot;\n&quot;
-          Base64::encode64(contents).gsub(/\s+/, '').scan(/.{1,68}/o) { data &lt;&lt; $&amp; &lt;&lt; &quot;\n&quot; }
-          output &lt;&lt; tag('data', data)
-        else
-          output &lt;&lt; comment( 'The &lt;data&gt; element below contains a Ruby object which has been serialized with Marshal.dump.' )
-          data = &quot;\n&quot;
-          Base64::encode64(Marshal.dump(element)).gsub(/\s+/, '').scan(/.{1,68}/o) { data &lt;&lt; $&amp; &lt;&lt; &quot;\n&quot; }
-          output &lt;&lt; tag('data', data )
+            return output
         end
-      end
 
-      return output
-    end
+        def self.comment(content)
+            return &quot;&lt;!-- #{content} --&gt;\n&quot;
+        end
 
-    def self.comment(content)
-      return &quot;&lt;!-- #{content} --&gt;\n&quot;
-    end
+        def self.tag(type, contents = '', &amp;block)
+            out = nil
+
+            if block_given?
+                out = IndentedString.new
+                out &lt;&lt; &quot;&lt;#{type}&gt;&quot;
+                out.raise_indent
 
-    def self.tag(type, contents = '', &amp;block)
-      out = nil
+                out &lt;&lt; block.call
 
-      if block_given?
-        out = IndentedString.new
-        out &lt;&lt; &quot;&lt;#{type}&gt;&quot;
-        out.raise_indent
+                out.lower_indent
+                out &lt;&lt; &quot;&lt;/#{type}&gt;&quot;
+            else
+                out = &quot;&lt;#{type}&gt;#{contents.to_s}&lt;/#{type}&gt;\n&quot;
+            end
 
-        out &lt;&lt; block.call
+            return out.to_s
+        end
 
-        out.lower_indent
-        out &lt;&lt; &quot;&lt;/#{type}&gt;&quot;
-      else
-        out = &quot;&lt;#{type}&gt;#{contents.to_s}&lt;/#{type}&gt;\n&quot;
-      end
+        def self.wrap(contents)
+            output = ''
 
-      return out.to_s
-    end
+            output &lt;&lt; '&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;' + &quot;\n&quot;
+            output &lt;&lt; '&lt;!DOCTYPE plist PUBLIC &quot;-//Apple Computer//DTD PLIST 1.0//EN&quot; &quot;http://www.apple.com/DTDs/PropertyList-1.0.dtd&quot;&gt;' + &quot;\n&quot;
+            output &lt;&lt; '&lt;plist version=&quot;1.0&quot;&gt;' + &quot;\n&quot;
+
+            output &lt;&lt; contents
+
+            output &lt;&lt; '&lt;/plist&gt;' + &quot;\n&quot;
 
-    def self.wrap(contents)
-      output = ''
+            return output
+        end
 
-      output &lt;&lt; '&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;' + &quot;\n&quot;
-      output &lt;&lt; '&lt;!DOCTYPE plist PUBLIC &quot;-//Apple Computer//DTD PLIST 1.0//EN&quot; &quot;http://www.apple.com/DTDs/PropertyList-1.0.dtd&quot;&gt;' + &quot;\n&quot;
-      output &lt;&lt; '&lt;plist version=&quot;1.0&quot;&gt;' + &quot;\n&quot;
+        def self.element_type(item)
+            return case item
+                   when String, Symbol;          'string'
+                   when Fixnum, Bignum, Integer; 'integer'
+                   when Float;                   'real'
+                   else
+                       raise &quot;Don't know about this data type... something must be wrong!&quot;
+                   end
+        end
 
-      output &lt;&lt; contents
+        private
 
-      output &lt;&lt; '&lt;/plist&gt;' + &quot;\n&quot;
+        class IndentedString #:nodoc:
+            attr_accessor :indent_string
 
-      return output
-    end
+            @@indent_level = 0
 
-    def self.element_type(item)
-      return case item
-        when String, Symbol;          'string'
-        when Fixnum, Bignum, Integer; 'integer'
-        when Float;                   'real'
-        else
-          raise &quot;Don't know about this data type... something must be wrong!&quot;
-      end
-    end
-    private
-    class IndentedString #:nodoc:
-      attr_accessor :indent_string
-
-      @@indent_level = 0
-
-      def initialize(str = &quot;\t&quot;)
-        @indent_string = str
-        @contents = ''
-      end
-
-      def to_s
-        return @contents
-      end
-
-      def raise_indent
-        @@indent_level += 1
-      end
-
-      def lower_indent
-        @@indent_level -= 1 if @@indent_level &gt; 0
-      end
-
-      def &lt;&lt;(val)
-        if val.is_a? Array
-          val.each do |f|
-            self &lt;&lt; f
-          end
-        else
-          # if it's already indented, don't bother indenting further
-          unless val =~ /\A#{@indent_string}/
-            indent = @indent_string * @@indent_level
-
-            @contents &lt;&lt; val.gsub(/^/, indent)
-          else
-            @contents &lt;&lt; val
-          end
-
-          # it already has a newline, don't add another
-          @contents &lt;&lt; &quot;\n&quot; unless val =~ /\n$/
+            def initialize(str = &quot;\t&quot;)
+                @indent_string = str
+                @contents = ''
+            end
+
+            def to_s
+                return @contents
+            end
+
+            def raise_indent
+                @@indent_level += 1
+            end
+
+            def lower_indent
+                @@indent_level -= 1 if @@indent_level &gt; 0
+            end
+
+            def &lt;&lt;(val)
+                if val.is_a? Array
+                    val.each do |f|
+                        self &lt;&lt; f
+                    end
+                else
+                    # if it's already indented, don't bother indenting further
+                    unless val =~ /\A#{@indent_string}/
+                        indent = @indent_string * @@indent_level
+
+                        @contents &lt;&lt; val.gsub(/^/, indent)
+                    else
+                        @contents &lt;&lt; val
+                    end
+
+                    # it already has a newline, don't add another
+                    @contents &lt;&lt; &quot;\n&quot; unless val =~ /\n$/
+                end
+            end
         end
-      end
     end
-  end
 end
 
 # we need to add this so sorting hash keys works properly
 class Symbol #:nodoc:
-  def &lt;=&gt; (other)
-    self.to_s &lt;=&gt; other.to_s
-  end
+    def &lt;=&gt; (other)
+        self.to_s &lt;=&gt; other.to_s
+    end
 end
 
 class Array #:nodoc:
-  include Plist::Emit
+    include Plist::Emit
 end
 
 class Hash #:nodoc:
-  include Plist::Emit
+    include Plist::Emit
 end
 
 # $Id: generator.rb 1781 2006-10-16 01:01:35Z luke $</diff>
      <filename>lib/facter/util/plist/generator.rb</filename>
    </modified>
    <modified>
      <diff>@@ -21,207 +21,206 @@ module Plist
 # If you encounter such an error, or if you have a Date element which
 # can't be parsed into a Time object, please send your plist file to
 # plist@hexane.org so that I can implement the proper support.
-  def Plist::parse_xml( filename_or_xml )
-    listener = Listener.new
-    #parser = REXML::Parsers::StreamParser.new(File.new(filename), listener)
-    parser = StreamParser.new(filename_or_xml, listener)
-    parser.parse
-    listener.result
-  end
-
-  class Listener
-    #include REXML::StreamListener
-
-    attr_accessor :result, :open
-
-    def initialize
-      @result = nil
-      @open   = Array.new
+    def Plist::parse_xml( filename_or_xml )
+        listener = Listener.new
+        #parser = REXML::Parsers::StreamParser.new(File.new(filename), listener)
+        parser = StreamParser.new(filename_or_xml, listener)
+        parser.parse
+        listener.result
     end
 
+    class Listener
+        #include REXML::StreamListener
 
-    def tag_start(name, attributes)
-      @open.push PTag::mappings[name].new
-    end
+        attr_accessor :result, :open
 
-    def text( contents )
-      @open.last.text = contents if @open.last
-    end
+        def initialize
+            @result = nil
+            @open   = Array.new
+        end
 
-    def tag_end(name)
-      last = @open.pop
-      if @open.empty?
-        @result = last.to_ruby
-      else
-        @open.last.children.push last
-      end
-    end
-  end
 
-  class StreamParser
-    def initialize( filename_or_xml, listener )
-      @filename_or_xml = filename_or_xml
-      @listener = listener
-    end
+        def tag_start(name, attributes)
+            @open.push PTag::mappings[name].new
+        end
 
-    TEXT       = /([^&lt;]+)/
-    XMLDECL_PATTERN = /&lt;\?xml\s+(.*?)\?&gt;*/um
-    DOCTYPE_PATTERN = /\s*&lt;!DOCTYPE\s+(.*?)(\[|&gt;)/um
-    COMMENT_START = /\A&lt;!--/u
-    COMMENT_END = /.*?--&gt;/um
-
-
-    def parse
-      plist_tags = PTag::mappings.keys.join('|')
-      start_tag  = /&lt;(#{plist_tags})([^&gt;]*)&gt;/i
-      end_tag    = /&lt;\/(#{plist_tags})[^&gt;]*&gt;/i
-
-      require 'strscan'
-
-      contents = (
-        if (File.exists? @filename_or_xml)
-          File.open(@filename_or_xml) {|f| f.read}
-        else
-          @filename_or_xml
-        end
-      )
-
-      @scanner = StringScanner.new( contents )
-      until @scanner.eos?
-        if @scanner.scan(COMMENT_START)
-          @scanner.scan(COMMENT_END)
-        elsif @scanner.scan(XMLDECL_PATTERN)
-        elsif @scanner.scan(DOCTYPE_PATTERN)
-        elsif @scanner.scan(start_tag)
-          @listener.tag_start(@scanner[1], nil)
-          if (@scanner[2] =~ /\/$/)
-            @listener.tag_end(@scanner[1])
-          end
-        elsif @scanner.scan(TEXT)
-          @listener.text(@scanner[1])
-        elsif @scanner.scan(end_tag)
-          @listener.tag_end(@scanner[1])
-        else
-          raise &quot;Unimplemented element&quot;
-        end
-      end
-    end
-  end
+        def text( contents )
+            @open.last.text = contents if @open.last
+        end
 
-  class PTag
-    @@mappings = { }
-    def PTag::mappings
-      @@mappings
+        def tag_end(name)
+            last = @open.pop
+            if @open.empty?
+                @result = last.to_ruby
+            else
+                @open.last.children.push last
+            end
+        end
     end
 
-    def PTag::inherited( sub_class )
-      key = sub_class.to_s.downcase
-      key.gsub!(/^plist::/, '' )
-      key.gsub!(/^p/, '')  unless key == &quot;plist&quot;
+    class StreamParser
+        def initialize( filename_or_xml, listener )
+            @filename_or_xml = filename_or_xml
+            @listener = listener
+        end
 
-      @@mappings[key] = sub_class
+        TEXT            = /([^&lt;]+)/
+        XMLDECL_PATTERN = /&lt;\?xml\s+(.*?)\?&gt;*/um
+        DOCTYPE_PATTERN = /\s*&lt;!DOCTYPE\s+(.*?)(\[|&gt;)/um
+        COMMENT_START   = /\A&lt;!--/u
+        COMMENT_END     = /.*?--&gt;/um
+
+        def parse
+            plist_tags = PTag::mappings.keys.join('|')
+            start_tag  = /&lt;(#{plist_tags})([^&gt;]*)&gt;/i
+            end_tag    = /&lt;\/(#{plist_tags})[^&gt;]*&gt;/i
+
+            require 'strscan'
+
+            contents = (
+                if (File.exists? @filename_or_xml)
+                    File.open(@filename_or_xml) {|f| f.read}
+                else
+                    @filename_or_xml
+                end
+            )
+
+            @scanner = StringScanner.new( contents )
+            until @scanner.eos?
+                if @scanner.scan(COMMENT_START)
+                    @scanner.scan(COMMENT_END)
+                elsif @scanner.scan(XMLDECL_PATTERN)
+                elsif @scanner.scan(DOCTYPE_PATTERN)
+                elsif @scanner.scan(start_tag)
+                    @listener.tag_start(@scanner[1], nil)
+                    if (@scanner[2] =~ /\/$/)
+                        @listener.tag_end(@scanner[1])
+                    end
+                elsif @scanner.scan(TEXT)
+                    @listener.text(@scanner[1])
+                elsif @scanner.scan(end_tag)
+                    @listener.tag_end(@scanner[1])
+                else
+                    raise &quot;Unimplemented element&quot;
+                end
+            end
+        end
     end
 
-    attr_accessor :text, :children
-    def initialize
-      @children = Array.new
-    end
+    class PTag
+        @@mappings = { }
+        def PTag::mappings
+            @@mappings
+        end
 
-    def to_ruby
-      raise &quot;Unimplemented: &quot; + self.class.to_s + &quot;#to_ruby on #{self.inspect}&quot;
+        def PTag::inherited( sub_class )
+            key = sub_class.to_s.downcase
+            key.gsub!(/^plist::/, '' )
+            key.gsub!(/^p/, '')  unless key == &quot;plist&quot;
+
+            @@mappings[key] = sub_class
+        end
+
+        attr_accessor :text, :children
+        def initialize
+            @children = Array.new
+        end
+
+        def to_ruby
+            raise &quot;Unimplemented: &quot; + self.class.to_s + &quot;#to_ruby on #{self.inspect}&quot;
+        end
     end
-  end
 
-  class PList &lt; PTag
-    def to_ruby
-      children.first.to_ruby if children.first
+    class PList &lt; PTag
+        def to_ruby
+            children.first.to_ruby if children.first
+        end
     end
-  end
 
-  class PDict &lt; PTag
-    def to_ruby
-      dict = Hash.new
-      key = nil
+    class PDict &lt; PTag
+        def to_ruby
+            dict = Hash.new
+            key = nil
 
-      children.each do |c|
-        if key.nil?
-          key = c.to_ruby
-        else
-          dict[key] = c.to_ruby
-          key = nil
-        end
-      end
+            children.each do |c|
+                if key.nil?
+                    key = c.to_ruby
+                else
+                    dict[key] = c.to_ruby
+                    key = nil
+                end
+            end
 
-      dict
+            dict
+        end
     end
-  end
 
-  class PKey &lt; PTag
-    def to_ruby
-      CGI::unescapeHTML(text || '')
+    class PKey &lt; PTag
+        def to_ruby
+            CGI::unescapeHTML(text || '')
+        end
     end
-  end
 
-  class PString &lt; PTag
-    def to_ruby
-      CGI::unescapeHTML(text || '')
+    class PString &lt; PTag
+        def to_ruby
+            CGI::unescapeHTML(text || '')
+        end
     end
-  end
 
-  class PArray &lt; PTag
-    def to_ruby
-      children.collect do |c|
-        c.to_ruby
-      end
+    class PArray &lt; PTag
+        def to_ruby
+            children.collect do |c|
+                c.to_ruby
+            end
+        end
     end
-  end
 
-  class PInteger &lt; PTag
-    def to_ruby
-      text.to_i
+    class PInteger &lt; PTag
+        def to_ruby
+            text.to_i
+        end
     end
-  end
 
-  class PTrue &lt; PTag
-    def to_ruby
-      true
+    class PTrue &lt; PTag
+        def to_ruby
+            true
+        end
     end
-  end
 
-  class PFalse &lt; PTag
-    def to_ruby
-      false
+    class PFalse &lt; PTag
+        def to_ruby
+            false
+        end
     end
-  end
 
-  class PReal &lt; PTag
-    def to_ruby
-      text.to_f
+    class PReal &lt; PTag
+        def to_ruby
+            text.to_f
+        end
     end
-  end
 
-  require 'date'
-  class PDate &lt; PTag
-    def to_ruby
-      DateTime.parse(text)
+    require 'date'
+    class PDate &lt; PTag
+        def to_ruby
+            DateTime.parse(text)
+        end
     end
-  end
-
-  require 'base64'
-  class PData &lt; PTag
-    def to_ruby
-      data = Base64.decode64(text.gsub(/\s+/, ''))
-
-      begin
-        return Marshal.load(data)
-      rescue Exception =&gt; e
-        io = StringIO.new
-        io.write data
-        io.rewind
-        return io
-      end
+
+    require 'base64'
+    class PData &lt; PTag
+        def to_ruby
+            data = Base64.decode64(text.gsub(/\s+/, ''))
+
+            begin
+                return Marshal.load(data)
+            rescue Exception =&gt; e
+                io = StringIO.new
+                io.write data
+                io.rewind
+                return io
+            end
+        end
     end
-  end
 end
 
 # $Id: parser.rb 1781 2006-10-16 01:01:35Z luke $</diff>
      <filename>lib/facter/util/plist/parser.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,16 +1,15 @@
 # A module to gather uptime facts
 #
 module Facter::Util::Uptime
-
     def self.get_uptime_simple
         time = Facter::Util::Resolution.exec('uptime')
-            if time =~ /up\s*(\d+\s\w+)/
-                $1
-            elsif time =~ /up\s*(\d+:\d+)/
-                $1 + &quot; hours&quot;
-            else
-                &quot;unknown&quot;
-            end
+        if time =~ /up\s*(\d+\s\w+)/
+            $1
+        elsif time =~ /up\s*(\d+:\d+)/
+            $1 + &quot; hours&quot;
+        else
+            &quot;unknown&quot;
+        end
     end
 
     def self.get_uptime
@@ -21,7 +20,6 @@ module Facter::Util::Uptime
     end
 
     def self.get_uptime_period(seconds, label)
-        
         case label
         when 'days'
             value = seconds / 86400
@@ -30,7 +28,5 @@ module Facter::Util::Uptime
         when 'seconds'
             seconds
         end     
-   
     end
-
 end   </diff>
      <filename>lib/facter/util/uptime.rb</filename>
    </modified>
    <modified>
      <diff>@@ -17,13 +17,13 @@ require 'rake/tasklib'
 #   of date.
 #
 # [&lt;b&gt;&quot;&lt;em&gt;package_dir&lt;/em&gt;/&lt;em&gt;name&lt;/em&gt;-&lt;em&gt;version&lt;/em&gt;.tgz&quot;&lt;/b&gt;]
-#   Create a gzipped tar package (if &lt;em&gt;need_tar&lt;/em&gt; is true).  
+#   Create a gzipped tar package (if &lt;em&gt;need_tar&lt;/em&gt; is true).
 #
 # [&lt;b&gt;&quot;&lt;em&gt;package_dir&lt;/em&gt;/&lt;em&gt;name&lt;/em&gt;-&lt;em&gt;version&lt;/em&gt;.tar.gz&quot;&lt;/b&gt;]
-#   Create a gzipped tar package (if &lt;em&gt;need_tar_gz&lt;/em&gt; is true).  
+#   Create a gzipped tar package (if &lt;em&gt;need_tar_gz&lt;/em&gt; is true).
 #
 # [&lt;b&gt;&quot;&lt;em&gt;package_dir&lt;/em&gt;/&lt;em&gt;name&lt;/em&gt;-&lt;em&gt;version&lt;/em&gt;.tar.bz2&quot;&lt;/b&gt;]
-#   Create a bzip2'd tar package (if &lt;em&gt;need_tar_bz2&lt;/em&gt; is true).  
+#   Create a bzip2'd tar package (if &lt;em&gt;need_tar_bz2&lt;/em&gt; is true).
 #
 # [&lt;b&gt;&quot;&lt;em&gt;package_dir&lt;/em&gt;/&lt;em&gt;name&lt;/em&gt;-&lt;em&gt;version&lt;/em&gt;.zip&quot;&lt;/b&gt;]
 #   Create a zip package archive (if &lt;em&gt;need_zip&lt;/em&gt; is true).
@@ -38,8 +38,8 @@ require 'rake/tasklib'
 class Rake::RedLabPackageTask &lt; Rake::TaskLib
     # The different directory types we can manage.
     DIRTYPES = {
-        :bindir =&gt; :bins,
-        :sbindir =&gt; :sbins,
+        :bindir     =&gt; :bins,
+        :sbindir    =&gt; :sbins,
         :sitelibdir =&gt; :rubylibs
     }
 
@@ -103,7 +103,7 @@ class Rake::RedLabPackageTask &lt; Rake::TaskLib
 
     # The URL for the package.
     attr_accessor :url
-    
+
     # The source for the package.
     attr_accessor :source
 
@@ -139,7 +139,7 @@ class Rake::RedLabPackageTask &lt; Rake::TaskLib
         end
     end
 
-    # Create a Package Task with the given name and version. 
+    # Create a Package Task with the given name and version.
     def initialize(name=nil, version=nil)
         # Theoretically, one could eventually add directory types here.
         @dirtypes = DIRTYPES.dup
@@ -226,7 +226,7 @@ class Rake::RedLabPackageTask &lt; Rake::TaskLib
                             safe_ln(sourcefile, destfile)
                         end
                     end
-                    
+
                     # If we've set the destdir, then list it as a prereq.
                     if destdir
                         file destfile =&gt; destdir
@@ -236,7 +236,7 @@ class Rake::RedLabPackageTask &lt; Rake::TaskLib
 
             # And create a task for each one
             task tname =&gt; reqs
-             
+
             # And then mark our task as a prereq
             tasks &lt;&lt; tname
         end</diff>
      <filename>tasks/rake/redlabpackage.rb</filename>
    </modified>
    <modified>
      <diff>@@ -269,13 +269,13 @@ class Rake::RedLabProject &lt; Rake::TaskLib
                 :package,
                 :publish
               ] do
-          
-            announce 
+
+            announce
             announce &quot;**************************************************************&quot;
             announce &quot;* Release #{@version} Complete.&quot;
             announce &quot;* Packages ready to upload.&quot;
             announce &quot;**************************************************************&quot;
-            announce 
+            announce
         end
     end
 
@@ -283,12 +283,12 @@ class Rake::RedLabProject &lt; Rake::TaskLib
     def mktaskprerelease
         # Validate that everything is ready to go for a release.
         task :prerelease do
-            announce 
+            announce
             announce &quot;**************************************************************&quot;
             announce &quot;* Making Release #{@version}&quot;
             announce &quot;* (current version #{self.currentversion})&quot;
             announce &quot;**************************************************************&quot;
-            announce  
+            announce
 
             # Is a release number supplied?
             unless ENV['REL']
@@ -467,7 +467,7 @@ class Rake::RedLabProject &lt; Rake::TaskLib
     end
 
     desc &quot;List all ruby files&quot;
-    task :rubyfiles do 
+    task :rubyfiles do
         puts Dir['**/*.rb'].reject { |fn| fn =~ /^pkg/ }
         puts Dir['**/bin/*'].reject { |fn| fn =~ /svn|(~$)|(\.rb$)/ }
     end</diff>
      <filename>tasks/rake/reductive.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>9bc174faffcdb412e07e2dde1686cdec9a4d638c</id>
    </parent>
  </parents>
  <author>
    <name>Ian Taylor</name>
    <email>ian@lorf.org</email>
  </author>
  <url>http://github.com/pnasrat/facter/commit/b6f0f9949be9056ea8823b10b86a2b9ea848fad7</url>
  <id>b6f0f9949be9056ea8823b10b86a2b9ea848fad7</id>
  <committed-date>2009-02-27T14:35:20-08:00</committed-date>
  <authored-date>2009-02-17T16:22:54-08:00</authored-date>
  <message>more consistent indentation and alignment. also removal of trailing whitespace</message>
  <tree>82d396fdaf87423c06dab8f8f9344ad4a80af881</tree>
  <committer>
    <name>James Turnbull</name>
    <email>james@lovedthanlost.net</email>
  </committer>
</commit>
