<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>src/main/markdown/10-Usage/01-Getting_Started.markdown</filename>
    </added>
    <added>
      <filename>src/main/scala/knockoff/Block.scala</filename>
    </added>
    <added>
      <filename>src/main/scala/knockoff/BlockSeq.scala</filename>
    </added>
    <added>
      <filename>src/main/scala/knockoff/BlockType.scala</filename>
    </added>
    <added>
      <filename>src/main/scala/knockoff/Blockquote.scala</filename>
    </added>
    <added>
      <filename>src/main/scala/knockoff/ChunkParsers.scala</filename>
    </added>
    <added>
      <filename>src/main/scala/knockoff/ChunkStreamFactory.scala</filename>
    </added>
    <added>
      <filename>src/main/scala/knockoff/ChunkTypes.scala</filename>
    </added>
    <added>
      <filename>src/main/scala/knockoff/CodeBlock.scala</filename>
    </added>
    <added>
      <filename>src/main/scala/knockoff/CodeMatchers.scala</filename>
    </added>
    <added>
      <filename>src/main/scala/knockoff/CodeSpan.scala</filename>
    </added>
    <added>
      <filename>src/main/scala/knockoff/ColoredLogger.scala</filename>
    </added>
    <added>
      <filename>src/main/scala/knockoff/ComplexBlock.scala</filename>
    </added>
    <added>
      <filename>src/main/scala/knockoff/ComplexSpan.scala</filename>
    </added>
    <added>
      <filename>src/main/scala/knockoff/DefaultDiscounter.scala</filename>
    </added>
    <added>
      <filename>src/main/scala/knockoff/Discounter.scala</filename>
    </added>
    <added>
      <filename>src/main/scala/knockoff/ElementFactory.scala</filename>
    </added>
    <added>
      <filename>src/main/scala/knockoff/Emphasis.scala</filename>
    </added>
    <added>
      <filename>src/main/scala/knockoff/EmphasisMatchers.scala</filename>
    </added>
    <added>
      <filename>src/main/scala/knockoff/EqualDelimiterMatcher.scala</filename>
    </added>
    <added>
      <filename>src/main/scala/knockoff/GroupBlock.scala</filename>
    </added>
    <added>
      <filename>src/main/scala/knockoff/GroupSpan.scala</filename>
    </added>
    <added>
      <filename>src/main/scala/knockoff/HTMLSpan.scala</filename>
    </added>
    <added>
      <filename>src/main/scala/knockoff/HTMLSpanMatcher.scala</filename>
    </added>
    <added>
      <filename>src/main/scala/knockoff/HasElementFactory.scala</filename>
    </added>
    <added>
      <filename>src/main/scala/knockoff/Header.scala</filename>
    </added>
    <added>
      <filename>src/main/scala/knockoff/HorizontalRule.scala</filename>
    </added>
    <added>
      <filename>src/main/scala/knockoff/ImageLink.scala</filename>
    </added>
    <added>
      <filename>src/main/scala/knockoff/ImageSpan.scala</filename>
    </added>
    <added>
      <filename>src/main/scala/knockoff/IndirectImageLink.scala</filename>
    </added>
    <added>
      <filename>src/main/scala/knockoff/IndirectLink.scala</filename>
    </added>
    <added>
      <filename>src/main/scala/knockoff/Link.scala</filename>
    </added>
    <added>
      <filename>src/main/scala/knockoff/LinkDefinition.scala</filename>
    </added>
    <added>
      <filename>src/main/scala/knockoff/LinkMatcher.scala</filename>
    </added>
    <added>
      <filename>src/main/scala/knockoff/ListItem.scala</filename>
    </added>
    <added>
      <filename>src/main/scala/knockoff/MarkdownList.scala</filename>
    </added>
    <added>
      <filename>src/main/scala/knockoff/OrderedItem.scala</filename>
    </added>
    <added>
      <filename>src/main/scala/knockoff/Paragraph.scala</filename>
    </added>
    <added>
      <filename>src/main/scala/knockoff/SimpleBlock.scala</filename>
    </added>
    <added>
      <filename>src/main/scala/knockoff/SimpleSpan.scala</filename>
    </added>
    <added>
      <filename>src/main/scala/knockoff/Span.scala</filename>
    </added>
    <added>
      <filename>src/main/scala/knockoff/SpanConverter.scala</filename>
    </added>
    <added>
      <filename>src/main/scala/knockoff/SpanConverterFactory.scala</filename>
    </added>
    <added>
      <filename>src/main/scala/knockoff/SpanMatch.scala</filename>
    </added>
    <added>
      <filename>src/main/scala/knockoff/SpanSeq.scala</filename>
    </added>
    <added>
      <filename>src/main/scala/knockoff/StringExtras.scala</filename>
    </added>
    <added>
      <filename>src/main/scala/knockoff/Strong.scala</filename>
    </added>
    <added>
      <filename>src/main/scala/knockoff/StrongAndEmMatchers.scala</filename>
    </added>
    <added>
      <filename>src/main/scala/knockoff/StrongMatchers.scala</filename>
    </added>
    <added>
      <filename>src/main/scala/knockoff/Text.scala</filename>
    </added>
    <added>
      <filename>src/main/scala/knockoff/UnorderedItem.scala</filename>
    </added>
    <added>
      <filename>src/test/scala/knockoff/BlockSuite.scala</filename>
    </added>
    <added>
      <filename>src/test/scala/knockoff/ChunkParsersSpec.scala</filename>
    </added>
    <added>
      <filename>src/test/scala/knockoff/SpanConverterSpec.scala</filename>
    </added>
    <added>
      <filename>src/test/scala/knockoff/StringExtrasSpec.scala</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -1,3 +1,6 @@
 #!/bin/bash
-
-scala -cp /Users/tristan/dev/knockoff/lib/testng-5.8-jdk15.jar:/Users/tristan/dev/knockoff/target/test-classes:/Users/tristan/dev/knockoff/target/classes:/Users/tristan/dev/knockoff/target/test-resources:/Users/tristan/dev/knockoff/target/resources:/Users/tristan/dev/knockoff/lib_managed/compile/scalatest-0.9.5.jar knockoff2.DefaultDiscounter &quot;$@&quot;
\ No newline at end of file
+SCALA_VERSION=2.7.6
+PROJECT_DIR=/Users/tristan/dev/knockoff
+CLASSPATH=$PROJECT_DIR/project/boot/scala-$SCALA_VERSION/lib/scala-library.jar
+CLASSPATH=$CLASSPATH:$PROJECT_DIR/target/scala_$SCALA_VERSION/knockoff_2.7.6-0.5.0-SNAPSHOT.jar
+java -cp $CLASSPATH knockoff.DefaultDiscounter &quot;$@&quot;
\ No newline at end of file</diff>
      <filename>discounter</filename>
    </modified>
    <modified>
      <diff>@@ -4,4 +4,4 @@ project.organization=com.tristanhunt
 project.name=knockoff-literable_plugin
 sbt.version=0.5.2
 scala.version=2.7.5
-project.version=0.1.0-1
+project.version=0.1.0-2</diff>
      <filename>literable_plugin/project/build.properties</filename>
    </modified>
    <modified>
      <diff>@@ -23,13 +23,14 @@ trait Literable extends ScalaProject {
          generator = new Generator {
              override def headerContent( doc : WebDocument ) : Node = Group(
                  &lt;style&gt; {&quot;&quot;&quot;
-                 .header ul { list-style-type: none; margin: 0; padding: 0 }
-                 .header ul li { display: inline; }
+                 .header ul { list-style-type: none; margin: 0; padding: 0; margin-bottom: 1em}
+                 .header ul li { display: inline; padding-right: 2em; }
                  &quot;&quot;&quot;} &lt;/style&gt;
                  &lt;ul style=&quot;list-style-type: none&quot;&gt;
                      &lt;li&gt;&lt;a href={ doc.relativePathTo( &quot;../..&quot; ) }&gt;tristanhunt.com&lt;/a&gt;&lt;/li&gt;
                      &lt;li&gt;&lt;a href=&quot;http://github.com/tristanjuricek/knockoff&quot;&gt;GitHub&lt;/a&gt;&lt;/li&gt;
                      &lt;li&gt;&lt;a href={ doc.relativePathTo(&quot;main/api/index.html&quot;) }&gt;API&lt;/a&gt;&lt;/li&gt;
+                     &lt;li&gt;&lt;a href={ doc.relativePathTo( &quot;../literable&quot; ) }&gt;Literable&lt;/a&gt;&lt;/li&gt;
                  &lt;/ul&gt;
              )
          }</diff>
      <filename>literable_plugin/src/main/scala/knockoff/Literable.scala</filename>
    </modified>
    <modified>
      <diff>@@ -3,6 +3,6 @@
 project.name=knockoff
 project.organization=com.tristanhunt
 sbt.version=0.5.5
-scala.version=2.7.5
+scala.version=2.7.6
 project.version=0.5.0-SNAPSHOT
 project.initialize=false</diff>
      <filename>project/build.properties</filename>
    </modified>
    <modified>
      <diff>@@ -4,6 +4,8 @@ class KnockoffProject( info : ProjectInfo )
 extends DefaultProject( info )
 with    knockoff.Literable {
   
+  override def crossScalaVersions = Set(&quot;2.7.2&quot;, &quot;2.7.3&quot;, &quot;2.7.4&quot;, &quot;2.7.5&quot;, &quot;2.7.6&quot;)
+  
   override def compileOptions = {
     List( MaxCompileErrors( 5 ), CompileOption(&quot;-unchecked&quot;) ) :::
     super.compileOptions.toList</diff>
      <filename>project/build/src/KnockoffProject.scala</filename>
    </modified>
    <modified>
      <diff>@@ -3,5 +3,5 @@ import sbt._
 class Plugins( info : ProjectInfo ) extends PluginDefinition( info ) {
     val tristanhuntNexus = &quot;tristanhunt Nexus&quot; at
         &quot;http://tristanhunt.com:8081/content/groups/public&quot;
-    val literable_plugin = &quot;com.tristanhunt&quot; % &quot;knockoff-literable_plugin&quot; % &quot;0.1.0-1&quot;
+    val literable_plugin = &quot;com.tristanhunt&quot; % &quot;knockoff-literable_plugin&quot; % &quot;0.1.0-2&quot;
 }
\ No newline at end of file</diff>
      <filename>project/plugins/Plugins.scala</filename>
    </modified>
    <modified>
      <diff>@@ -1,3 +1,3 @@
 #Project properties
-#Sat Oct 03 10:50:24 CEST 2009
+#Sun Oct 11 14:34:25 CEST 2009
 plugin.uptodate=true</diff>
      <filename>project/plugins/project/build.properties</filename>
    </modified>
    <modified>
      <diff>@@ -1,96 +1,8 @@
 KnockOff - A Parser + Object Model (in Scala)
 =============================================
 
-Most of the Markdown-based parsers emulate the Perl-script, where they
-generate some HTML. And then you're left to manipulate the rendered HTML
-fragment. Which isn't horrible, but could be better. KnockOff enables you to
-take your Markdown-based documents and manipulate the output in subtle little
-ways. It does this by:
+Knockoff is Yet Another Markdown processor, this time, with an object model, aimed
+for ease of use in a [Scala](http://scala-lang.org)-based environment.
 
-1. Representing the markdown document in an object model, which can then
-   be rebuilt.
-
-2. Creating a fairly simple HTML rendering logic, that can also be adjusted.
-
-### Example: &quot;Turning Down&quot; the Header Level
-
-I found this handy: keep the title of your website at h1 by taking any
-header in your markdown source, and detune it.
-
-This is an example of tweaking the object model.
-
-    import com.tristanhunt.knockoff._
-    import com.tristanhunt.knockoff.Imports._
-    import java.lang.Math.min
-
-    val blocks = knockoff( markdownString ) match {
-        case KnockOff.Parsed( blocks ) =&gt; blocks
-        case KnockOff.Failed( message ) =&gt; message
-    }
-    
-    val detuned = blocks.foreach{ block =&gt; block match {
-        case header : Header =&gt; Header( header.nads, min( header.level + 1, 6 ) )
-        case _ =&gt; block
-    }
-    
-    val html = detuned.toXML
-
-
-### Another Example: Make the first header element have the &quot;title&quot; class.
-
-Here, we'll take the first header element that is rendered, and override the
-`class` attribute to be `title` in the final HTML.
-
-This is an example of adjusting the rendering. Note that I might change this
-around a bunch soon-ish.
-
-    import com.tristanhunt.knockoff._
-    import com.tristanhunt.knockoff.Imports._
-    
-    BlockConverter.current = new DefaultBlockConverter {
-
-        var isAdded = false
-
-        override def toHeaderXML( header : Header ) : Node = {
-            
-            isAdded match {
-                
-                false =&gt; super.toHeaderXML( header ) match {
-                    case e : Elem =&gt; Elem(
-                        e.prefix,
-                        e.label,
-                        new UnprefixedAttribute( &quot;class&quot;, &quot;title&quot;, e.attributes ),
-                        e.scope,
-                        e.child
-                    )
-                }
-                
-                true =&gt; super.toHeaderXML( header )
-            }
-        }
-    }
-    
-    val xhtml = knockoff( markdownString ).get
-
-A few thoughts:
-
-* I'm not 100% sold on the use of the object member or constructor method,
-  even. I know there's a better way.
-* We'll have to see how much HTML adjustment people want to do, I find the
-  object model adjustments much more useful in practice.
-
-
-## The Object Model ##
-
-In HTML, you've got Nodes, and everything inherits from this.
-
-In KnockOff, you've got Nads, and spanning elements are groups of these
-things. But in any markdown document, there's a nice distinction between
-paragraphs and the things in those paragraphs, so I added a block, which
-owns these spanning elements.
-
-In another sense, the KnockOff hierarchy is compositional:
-
-A `Block` has many `Spans` which has many `Nads`.
-
-That's abound the long and the short of the object model.
\ No newline at end of file
+See the [project home](http://tristanhunt.com/projects/knockoff) for more
+information.</diff>
      <filename>readme.markdown</filename>
    </modified>
    <modified>
      <diff>@@ -36,19 +36,6 @@ The `Discounter` is the base object you can use to start to specialize how the
 document is parsed.
 
 
-## Variations off of Markdown ##
-
-This has a couple of _very_ subtle adjustments to the base Markdown script:
-
-1. Tabs are passed through. Though why you're using tabs is beyond me, this keeps
-like diff tools honest.
-
-2. List items (`&lt;li&gt;`) only have a sub-paragraph (`&lt;p&gt;`) if you have complex
-content. (In the core script, if you space them widely, you get the sub `&lt;p&gt;`
-element, which made no sense to me.)
-
-3. If you have a code line, followed by another indented line, even if that line's
-empty, the empty line is part of the code block.
 
 
 [1]: http://scala-lang.org</diff>
      <filename>src/main/markdown/01-Introduction.markdown</filename>
    </modified>
    <modified>
      <diff>@@ -10,7 +10,7 @@ fancy customization, you use the DefaultDiscounter.
 
 Otherwise...
 
-    // In knockoff2/Discounter.scala
+    // In knockoff/Discounter.scala
     // See the Discounter package and imports
     
     trait   Discounter
@@ -71,7 +71,7 @@ Otherwise...
 #### Package And Imports
 
     // The Discounter package and imports
-    package knockoff2
+    package knockoff
     
     import scala.collection.mutable.ListBuffer
     import scala.util.parsing.input.Position
@@ -86,8 +86,8 @@ discounter is to mimic the usage of `Markdown.pl`.
 
 The `--html4tags` argument will just do nothing, but not be processed as a file.
 
-    // In knockoff2/DefaultDiscounter.scala
-    package knockoff2
+    // In knockoff/DefaultDiscounter.scala
+    package knockoff
     
     import scala.util.logging.ConsoleLogger
     
@@ -123,3 +123,18 @@ The `--html4tags` argument will just do nothing, but not be processed as a file.
       private def readText( fileName : String ) : String =
         io.Source.fromFile( fileName ).mkString(&quot;&quot;)
     }
+
+
+## Variations off of Markdown ##
+
+This has a couple of _very_ subtle adjustments to the base Markdown script:
+
+1. Tabs are passed through. Though why you're using tabs is beyond me, this keeps
+like diff tools honest.
+
+2. List items (`&lt;li&gt;`) only have a sub-paragraph (`&lt;p&gt;`) if you have complex
+content. (In the core script, if you space them widely, you get the sub `&lt;p&gt;`
+element, which made no sense to me.)
+
+3. If you have a code line, followed by another indented line, even if that line's
+empty, the empty line is part of the code block.
\ No newline at end of file</diff>
      <filename>src/main/markdown/30-Implementation/01-Discounter.markdown</filename>
    </modified>
    <modified>
      <diff>@@ -7,7 +7,7 @@ Block Elements
 inside of `Blocks`: namely `Span`s, but also, other blocks. In the markdown, blocks
 are usually seen as separated by whitespace lines.
 
-    // In knockoff2/Block.scala
+    // In knockoff/Block.scala
     // See the Block package and imports
 
     trait Block extends BlockSeq {
@@ -36,8 +36,8 @@ are usually seen as separated by whitespace lines.
 
 In many cases, the Block can not contain other blocks.
 
-    // In knockoff2/SimpleBlock.scala
-    package knockoff2
+    // In knockoff/SimpleBlock.scala
+    package knockoff
     
     trait SimpleBlock extends Block {
         override def theSeq : Seq[ Block ] = List( this )
@@ -45,8 +45,8 @@ In many cases, the Block can not contain other blocks.
 
 In some other cases, the block is a pretty complex thing:
 
-    // In knockoff2/ComplexBlock.scala
-    package knockoff2
+    // In knockoff/ComplexBlock.scala
+    package knockoff
     
     trait ComplexBlock extends Block {
         val children : Seq[ Block ]
@@ -59,8 +59,8 @@ In some other cases, the block is a pretty complex thing:
 There are moments when we need to capture a series of blocks as a `ComplexBlock`
 without any other real information.
 
-    // In knockoff2/GroupBlock.scala
-    package knockoff2
+    // In knockoff/GroupBlock.scala
+    package knockoff
     
     import scala.xml.{ Node, Group }
     import scala.util.parsing.input.{ NoPosition, Position }
@@ -88,8 +88,8 @@ main return type of the `KnockOff.parse` method.
 
 One of the shorthand filter expressions allows for you to indicate the &quot;BlockType&quot;.
 
-    // In knockoff2/BlockType.scala
-    package knockoff2
+    // In knockoff/BlockType.scala
+    package knockoff
     
     /**
      * Used to indicate the type of blocks you are interested in when filtering via
@@ -105,7 +105,7 @@ One of the shorthand filter expressions allows for you to indicate the &quot;BlockTyp
 
 This is used only as a short hand for query expressions.
 
-    // In knockoff2/BlockSeq.scala
+    // In knockoff/BlockSeq.scala
     // See the BlockSeq package and imports
     
     trait BlockSeq extends Seq[ Block ] {
@@ -149,7 +149,7 @@ contain any other useful metadata.
 Otherwise the paragraph is a simple `Block` type (does not contain other
 `Block`s).
 
-    // In knockoff2/Paragraph.scala
+    // In knockoff/Paragraph.scala
     // See the Paragraph package and imports
 
     class Paragraph(
@@ -187,7 +187,7 @@ The header element is a simple `Block` type, but can contain any kind of
 The `markdown` representation of the Header should always be the ATX-style
 headers - `# Header #`.
 
-    // In knockoff2/Header.scala
+    // In knockoff/Header.scala
     // See the Header package and imports
     
     class Header(
@@ -224,7 +224,7 @@ headers - `# Header #`.
 When a link is created with the definition like `[something][id]`, that `id` can
 be defined later on a string like `[id]: url &quot;optional title&quot;`.
 
-    // In knockoff2/LinkDefinition.scala
+    // In knockoff/LinkDefinition.scala
     // See the LinkDefinition package and imports
     
     class LinkDefinition(
@@ -259,7 +259,7 @@ be defined later on a string like `[id]: url &quot;optional title&quot;`.
 
 A block quote is really another markdown document, quoted.
 
-    // In knockoff2/Blockquote.scala
+    // In knockoff/Blockquote.scala
     // See the Blockquote package and imports
 
     class Blockquote(
@@ -294,7 +294,7 @@ This means that in order to inject actual HTML inside the final code, you'll hav
 write up an HTML code element. This could be seen as a later transformation, say,
 if you want to inject a series of line numbers via `&lt;span&gt;` elements.
 
-    // In knockoff2/CodeBlock.scala
+    // In knockoff/CodeBlock.scala
     // See the CodeBlock package and imports
     
     class   CodeBlock( val text : Text, val position : Position )
@@ -327,7 +327,7 @@ if you want to inject a series of line numbers via `&lt;span&gt;` elements.
 Represents a `&lt;hr/&gt;` injected into content. Note that this does not happen to do
 anything but replace a line of asterixes, underscores, or hyphens.
 
-    // In knockoff2/HorizontalRule.scala
+    // In knockoff/HorizontalRule.scala
     // See the HorizontalRule package and imports
     
     class HorizontalRule( val position : Position ) extends SimpleBlock {
@@ -382,8 +382,8 @@ In implementation terms, we don't have a single list.
 
 #### `ListItem`
 
-    // In knockoff2/ListItem.scala
-    package knockoff2
+    // In knockoff/ListItem.scala
+    package knockoff
     
     import scala.util.parsing.input.Position
     import scala.xml.Node
@@ -425,8 +425,8 @@ In implementation terms, we don't have a single list.
       
 ### `OrderedItem`
 
-    // In knockoff2/OrderedItem.scala
-    package knockoff2
+    // In knockoff/OrderedItem.scala
+    package knockoff
 
     import scala.util.parsing.input.Position
     
@@ -444,8 +444,8 @@ In implementation terms, we don't have a single list.
 
 ### `UnorderedItem`
 
-    // In knockoff2/UnorderedItem.scala
-    package knockoff2
+    // In knockoff/UnorderedItem.scala
+    package knockoff
     
     import scala.util.parsing.input.Position
         
@@ -469,8 +469,8 @@ The position of a list is a little spurious: the start of the list should be
 the position of the first item, however, it's elements may not contain the
 entire content; whitespace will be missing in complex cases.
 
-    // In knockoff2/MarkdownList.scala
-    package knockoff2
+    // In knockoff/MarkdownList.scala
+    package knockoff
     
     import scala.io.Source
     import scala.util.parsing.input.{ NoPosition, Position }
@@ -528,8 +528,8 @@ entire content; whitespace will be missing in complex cases.
 
 ## Block Specification ##
 
-    // In test knockoff2/BlockSuite.scala
-    package knockoff2
+    // In test knockoff/BlockSuite.scala
+    package knockoff
 
     import scala.util.parsing.input.NoPosition
     import org.scalatest._
@@ -575,7 +575,7 @@ entire content; whitespace will be missing in complex cases.
 #### Block - Package And Imports
 
     // The Block package and imports
-    package knockoff2
+    package knockoff
     
     import scala.xml.Node
     import scala.util.parsing.input.Position
@@ -583,7 +583,7 @@ entire content; whitespace will be missing in complex cases.
 #### BlockSeq - Package And Imports
 
     // The BlockSeq package and imports
-    package knockoff2
+    package knockoff
 
     import scala.xml.{ Node, Elem, Group }
 
@@ -592,7 +592,7 @@ entire content; whitespace will be missing in complex cases.
 #### `Paragraph` - Package And Imports
 
     // The Paragraph package and imports
-    package knockoff2
+    package knockoff
 
     import scala.xml.Elem
     import scala.util.parsing.input.Position
@@ -621,7 +621,7 @@ entire content; whitespace will be missing in complex cases.
 #### `Header` - Package And Imports
 
     // The Header package and imports
-    package knockoff2
+    package knockoff
 
     import scala.xml.Elem
     import scala.util.parsing.input.Position
@@ -653,7 +653,7 @@ entire content; whitespace will be missing in complex cases.
 #### `LinkDefinition` - Package And Imports
 
     // The LinkDefinition package and imports
-    package knockoff2
+    package knockoff
 
     import scala.xml.{ Node, Group }
     import scala.util.parsing.input.Position
@@ -685,7 +685,7 @@ entire content; whitespace will be missing in complex cases.
 #### `Blockquote` - Package And Imports
 
     // The Blockquote package and imports
-    package knockoff2
+    package knockoff
     
     import scala.io.Source
     import scala.xml.Elem
@@ -722,7 +722,7 @@ entire content; whitespace will be missing in complex cases.
 #### `CodeBlock` - Package and Imports
 
     // The CodeBlock package and imports
-    package knockoff2
+    package knockoff
 
     import scala.xml.{ Node, Unparsed }
     import scala.io.Source
@@ -752,7 +752,7 @@ entire content; whitespace will be missing in complex cases.
 #### `HorizontalRule` - Package and Imports
 
     // The HorizontalRule package and imports
-    package knockoff2
+    package knockoff
 
     import scala.xml.{ Node, Unparsed }
     import scala.io.Source
@@ -804,7 +804,7 @@ entire content; whitespace will be missing in complex cases.
 #### `MarkdownList` - Package and Imports
 
     // The MarkdownList package and imports
-    package knockoff2
+    package knockoff
 
     import scala.xml.{ Node, Unparsed }
     import scala.io.Source</diff>
      <filename>src/main/markdown/30-Implementation/02-Block_Elements.markdown</filename>
    </modified>
    <modified>
      <diff>@@ -8,8 +8,8 @@ Marks a string to become the basic building block of the Markdown tree.
 Each Span is also a sequence of other Spans - some elements, like a link definition,
 can have part of it's description be code.
 
-    // In knockoff2/Span.scala
-    package knockoff2
+    // In knockoff/Span.scala
+    package knockoff
     
     import scala.xml.Node
     
@@ -26,8 +26,8 @@ can have part of it's description be code.
 
 Each `Block` is composed of these.
 
-    // In knockoff2/SpanSeq.scala
-    package knockoff2
+    // In knockoff/SpanSeq.scala
+    package knockoff
     
     import scala.xml.Group
     
@@ -45,8 +45,8 @@ Each `Block` is composed of these.
 A simpler version is for the common case, where the span does not actually contain
 other spans.
 
-    // In knockoff2/SimpleSpan.scala
-    package knockoff2
+    // In knockoff/SimpleSpan.scala
+    package knockoff
     
     trait SimpleSpan extends Span {
       def theSeq = List( this )
@@ -54,8 +54,8 @@ other spans.
 
 The other, complex case is where a span contains a straight list of children.
 
-    // In knockoff2/ComplexSpan.scala
-    package knockoff2
+    // In knockoff/ComplexSpan.scala
+    package knockoff
     
     trait ComplexSpan extends Span {
       val children : Seq[ Span ]
@@ -66,8 +66,8 @@ The other, complex case is where a span contains a straight list of children.
 
 And a workaround to cases where we need just a container of spans.
 
-    // In knockoff2/GroupSpan.scala
-    package knockoff2
+    // In knockoff/GroupSpan.scala
+    package knockoff
     
     import scala.xml.Group
     
@@ -88,8 +88,8 @@ And a workaround to cases where we need just a container of spans.
 
 The most basic Span element that contains no other markup information.
 
-    // In knockoff2/Text.scala
-    package knockoff2
+    // In knockoff/Text.scala
+    package knockoff
     
     import scala.xml.{ Node, Text =&gt; XMLText }
     
@@ -118,8 +118,8 @@ The most basic Span element that contains no other markup information.
 
 These sequences are found inside of blocks, but still mean &quot;just pass it on&quot;.
 
-    // In knockoff2/HTMLSpan.scala
-    package knockoff2
+    // In knockoff/HTMLSpan.scala
+    package knockoff
     
     import scala.xml.{ Node, Unparsed }
     
@@ -137,8 +137,8 @@ These sequences are found inside of blocks, but still mean &quot;just pass it on&quot;.
 These are usually represented by inline `&lt;code&gt;` blocks in paragraph text. This is
 not to be confused with `CodeBlock` - a `CodeBlock` does not contain a `CodeSpan`.
 
-    // In knockoff2/CodeSpan.scala
-    package knockoff2
+    // In knockoff/CodeSpan.scala
+    package knockoff
     
     import scala.xml.Node
     
@@ -155,8 +155,8 @@ not to be confused with `CodeBlock` - a `CodeBlock` does not contain a `CodeSpan
 
 These emphasize other spans, usually with `&lt;strong&gt;` tags.
 
-    // In knockoff2/Strong.scala
-    package knockoff2
+    // In knockoff/Strong.scala
+    package knockoff
     
     import scala.xml.Node
 
@@ -173,8 +173,8 @@ These emphasize other spans, usually with `&lt;strong&gt;` tags.
 
 Wraps other spans with `&lt;em&gt;` tags.
 
-    // In knockoff2/Emphasis.scala
-    package knockoff2
+    // In knockoff/Emphasis.scala
+    package knockoff
 
     import scala.xml.Node
 
@@ -199,8 +199,8 @@ Links are kind of special spanning elements, because there are
 
 The direct link is is simply called a `Link`.
 
-    // In knockoff2/Link.scala
-    package knockoff2
+    // In knockoff/Link.scala
+    package knockoff
 
     import scala.xml.Node
 
@@ -232,8 +232,8 @@ The direct link is is simply called a `Link`.
 Indirect links are tied to `LinkDefinition` elements, which are a special `Block`
 type. (The link definitions can't be found in the middle of a paragraph.)
 
-    // In knockoff2/IndirectLink.scala
-    package knockoff2
+    // In knockoff/IndirectLink.scala
+    package knockoff
     
     class IndirectLink(
       children        : SpanSeq,
@@ -252,8 +252,8 @@ type. (The link definitions can't be found in the middle of a paragraph.)
 Image links are standard link references prefixed with an exclamation mark `!`. The
 image aspect is done via this trait:
 
-    // In knockoff2/ImageSpan.scala
-    package knockoff2
+    // In knockoff/ImageSpan.scala
+    package knockoff
     
     import scala.xml.Node
     
@@ -271,8 +271,8 @@ We then the actual classes using a mixin.
 
 #### `ImageLink`
 
-    // In knockoff2/ImageLink.scala
-    package knockoff2
+    // In knockoff/ImageLink.scala
+    package knockoff
     
     import scala.xml.Node
     
@@ -288,8 +288,8 @@ We then the actual classes using a mixin.
 
 #### `IndirectImageLink`
 
-    // In knockoff2/IndirectImageLink.scala
-    package knockoff2
+    // In knockoff/IndirectImageLink.scala
+    package knockoff
 
     import scala.xml.Node
     </diff>
      <filename>src/main/markdown/30-Implementation/03-Span_Elements.markdown</filename>
    </modified>
    <modified>
      <diff>@@ -11,8 +11,8 @@ For any `Discounter`, there should really only be one, configurable,
 `ElementFactory` instance. And for the things that need to fetch that instance,
 there is the `HasElementFactory` trait.
 
-    // In knockoff2/HasElementFactory.scala
-    package knockoff2
+    // In knockoff/HasElementFactory.scala
+    package knockoff
     
     trait HasElementFactory {
     
@@ -43,7 +43,7 @@ customizing the `ElementFactory` is pretty simple. You create a subtype of
 
 ### `ElementFactory`
 
-    // In knockoff2/ElementFactory.scala
+    // In knockoff/ElementFactory.scala
     // See the ElementFactory package and imports
     
     class ElementFactory {
@@ -137,7 +137,7 @@ I used heavy abbreviation in this class in order to draw focus to the types.
 #### `ElementFactory` - Package and Imports
 
     // The ElementFactory package and imports
-    package knockoff2
+    package knockoff
     
     import scala.io.Source
     import scala.util.parsing.input.Position
\ No newline at end of file</diff>
      <filename>src/main/markdown/30-Implementation/04-ElementFactory.markdown</filename>
    </modified>
    <modified>
      <diff>@@ -11,7 +11,7 @@ that there will be more and more problems, well. Hm.
 
 Notably, this remembers the position of each chunk in the input.
 
-    // In knockoff2/ChunkStreamFactory.scala
+    // In knockoff/ChunkStreamFactory.scala
     // See the ChunkStreamFactory package and imports
     
     trait ChunkStreamFactory extends Logged {
@@ -50,7 +50,7 @@ Notably, this remembers the position of each chunk in the input.
 #### Package And Imports
 
     // The ChunkStreamFactory package and imports
-    package knockoff2
+    package knockoff
 
     import scala.util.parsing.combinator.Parsers
     import scala.util.parsing.input.{ CharSequenceReader, Position, Reader }</diff>
      <filename>src/main/markdown/30-Implementation/10-Parsing/10-ChunkStreamFactory.markdown</filename>
    </modified>
    <modified>
      <diff>@@ -7,8 +7,8 @@ part separately from the expressions here.
 All of the methods return a `Chunk` parser type, even when grouping the parsers
 together. To group things together, the `foldedString` will combine
 
-    // In knockoff2/ChunkParsers.scala
-    package knockoff2
+    // In knockoff/ChunkParsers.scala
+    package knockoff
     
     import scala.util.parsing.combinator.RegexParsers
 
@@ -144,8 +144,8 @@ together. To group things together, the `foldedString` will combine
 
 ## `ChunkParsersSpec` ##
 
-    // In test knockoff2/ChunkParsersSpec.scala
-    package knockoff2
+    // In test knockoff/ChunkParsersSpec.scala
+    package knockoff
     
     import org.scalatest._
     import org.scalatest.matchers._</diff>
      <filename>src/main/markdown/30-Implementation/10-Parsing/11-ChunkParsers.markdown</filename>
    </modified>
    <modified>
      <diff>@@ -2,8 +2,8 @@
 
 This is more of a reference to the typing of chunks.
 
-    // In knockoff2/ChunkTypes.scala
-    package knockoff2
+    // In knockoff/ChunkTypes.scala
+    package knockoff
     
     import scala.collection.mutable.ListBuffer
     import scala.util.parsing.input.Position</diff>
      <filename>src/main/markdown/30-Implementation/10-Parsing/12-Chunk_Types.markdown</filename>
    </modified>
    <modified>
      <diff>@@ -25,8 +25,8 @@ pretty simple mapping function.
 Conversion itself is a pretty brute-force approach encapsulated in the
 `SpanConverter` class.
 
-    // In knockoff2/SpanConverterFactory.scala
-    package knockoff2
+    // In knockoff/SpanConverterFactory.scala
+    package knockoff
     
     trait SpanConverterFactory extends HasElementFactory {
      
@@ -43,8 +43,8 @@ string. But on certain elements, the element itself contains a Span, so this
 converter configures that matcher to kick off another parsing run on the substring
 of that span.
 
-    // In knockoff2/SpanConverter.scala
-    package knockoff2
+    // In knockoff/SpanConverter.scala
+    package knockoff
     
     class SpanConverter(
       val definitions    : Seq[ LinkDefinitionChunk ],
@@ -123,8 +123,8 @@ of that span.
 The primary result returned by a `SpanMatcher`. It's `index` will become an ordering
 attribute for determining the &quot;best&quot; match.
 
-    // In knockoff2/SpanMatch.scala
-    package knockoff2
+    // In knockoff/SpanMatch.scala
+    package knockoff
     
     case class SpanMatch(
       val index   : Int,
@@ -145,8 +145,8 @@ elements. Examples:
 
 Both are configured by the `EmphasisMatchers`.
 
-    // In knockoff2/EmphasisMatchers.scala
-    package knockoff2
+    // In knockoff/EmphasisMatchers.scala
+    package knockoff
     
     trait EmphasisMatchers { self : EqualDelimiterMatcher with SpanConverter =&gt;
      
@@ -183,8 +183,8 @@ Both are configured by the `EmphasisMatchers`.
 Like `Emphasis` elements, `Strong` elements use two underscores `__` or asterixes
 `**` to figure themselves out.
 
-    // In knockoff2/StrongMatchers.scala
-    package knockoff2
+    // In knockoff/StrongMatchers.scala
+    package knockoff
     
     trait StrongMatchers { self : EqualDelimiterMatcher with SpanConverter =&gt;
       
@@ -222,8 +222,8 @@ Like `Emphasis` elements, `Strong` elements use two underscores `__` or asterixe
 
 ## Strong and `em` at the same time ##
 
-    // In knockoff2/StrongAndEmMatchers.scala
-    package knockoff2
+    // In knockoff/StrongAndEmMatchers.scala
+    package knockoff
   
     trait StrongAndEmMatchers { self : EqualDelimiterMatcher with SpanConverter =&gt;
       
@@ -253,8 +253,8 @@ Two varations of code blocks:
 
 This is all done by balanced code matching via the `EqualDelimiterMatcher`.
 
-    // In knockoff2/CodeMatchers.scala
-    package knockoff2
+    // In knockoff/CodeMatchers.scala
+    package knockoff
     
     trait CodeMatchers { self : EqualDelimiterMatcher with SpanConverter =&gt;
      
@@ -323,8 +323,8 @@ Any sequences of HTML in content are matched by the `InlineHTMLMatcher`. Note th
 this uses a recursive method `hasMatchedClose` to deal with the situations where
 one span contains other spans - it's basically like parenthesis matching.
 
-    // In knockoff2/HTMLSpanMatcher.scala
-    package knockoff2
+    // In knockoff/HTMLSpanMatcher.scala
+    package knockoff
     
     trait HTMLMatchers { self : SpanConverter =&gt;
       
@@ -488,8 +488,8 @@ So, things like:
 
 ### `LinkMatcher`
 
-    // In knockoff2/LinkMatcher.scala
-    package knockoff2
+    // In knockoff/LinkMatcher.scala
+    package knockoff
     
     import scala.util.matching.Regex.Match
     
@@ -636,8 +636,8 @@ Many of the elements are delimited by the identical character sequence on either
 side of the text. This does the dirty work of finding those matches, whatever that
 character sequence may be.
 
-    // In knockoff2/EqualDelimiterMatcher.scala
-    package knockoff2
+    // In knockoff/EqualDelimiterMatcher.scala
+    package knockoff
 
     trait EqualDelimiterMatcher { self : SpanConverter with StringExtras =&gt;
       
@@ -731,8 +731,8 @@ a code block.
 
 ## Testing Specification via `SpanConverterSpec` ##
 
-    // In test knockoff2/SpanConverterSpec.scala
-    package knockoff2
+    // In test knockoff/SpanConverterSpec.scala
+    package knockoff
 
     import org.scalatest._
     import org.scalatest.matchers._</diff>
      <filename>src/main/markdown/30-Implementation/10-Parsing/20-Span_Conversion.markdown</filename>
    </modified>
    <modified>
      <diff>@@ -3,8 +3,8 @@
 Adds utilities to String for doing things like finding the next N indexes of a
 recurrence.
 
-    // In knockoff2/StringExtras.scala
-    package knockoff2
+    // In knockoff/StringExtras.scala
+    package knockoff
     
     import scala.collection.mutable.ListBuffer
     
@@ -121,8 +121,8 @@ recurrence.
 
 ### `StringExtrasSpec`
 
-    // In test knockoff2/StringExtrasSpec.scala
-    package knockoff2
+    // In test knockoff/StringExtrasSpec.scala
+    package knockoff
     
     import org.scalatest._
     import org.scalatest.matchers._</diff>
      <filename>src/main/markdown/30-Implementation/80-Utilities/01-String_Extras.markdown</filename>
    </modified>
    <modified>
      <diff>@@ -2,8 +2,8 @@
 
 Useful for testing, not racism.
 
-    // In knockoff2/ColoredLogger.scala
-    package knockoff2
+    // In knockoff/ColoredLogger.scala
+    package knockoff
     
     import scala.util.logging.Logged
     </diff>
      <filename>src/main/markdown/30-Implementation/80-Utilities/02-ColoredLogger.markdown</filename>
    </modified>
    <modified>
      <diff>@@ -1,4 +1,4 @@
-Subject: A test suite needs to be organized for knockoff2 to reflect the 
+Subject: A test suite needs to be organized for knockoff to reflect the 
  problems I experienced before when attempting to test.
 Tags: quick, testing
 </diff>
      <filename>tickets/done/0001.mail</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,5 @@
 Subject: Things I have To Do
 
-* Build an escape spec suite ... somewhere.
 * I'd like a &quot;release&quot; script that prepares a nice tag in git and then pushes things
   out for my website.
 * Call this release 0.5.0-1</diff>
      <filename>tickets/waiting/0003-To_Do.mail</filename>
    </modified>
  </modified>
  <removed type="array">
    <removed>
      <filename>src/main/markdown/10-Usage/01-Building_Via_SBT.markdown</filename>
    </removed>
    <removed>
      <filename>src/main/scala/com/tristanhunt/knockoff/BlockElements.scala</filename>
    </removed>
    <removed>
      <filename>src/main/scala/com/tristanhunt/knockoff/ConverterHelpers.scala</filename>
    </removed>
    <removed>
      <filename>src/main/scala/com/tristanhunt/knockoff/Converters.scala</filename>
    </removed>
    <removed>
      <filename>src/main/scala/com/tristanhunt/knockoff/Imports.scala</filename>
    </removed>
    <removed>
      <filename>src/main/scala/com/tristanhunt/knockoff/KnockOff.scala</filename>
    </removed>
    <removed>
      <filename>src/main/scala/com/tristanhunt/knockoff/MkBlockElements.scala</filename>
    </removed>
    <removed>
      <filename>src/main/scala/com/tristanhunt/knockoff/MkBlockParser.scala</filename>
    </removed>
    <removed>
      <filename>src/main/scala/com/tristanhunt/knockoff/SpanElements.scala</filename>
    </removed>
    <removed>
      <filename>src/main/scala/com/tristanhunt/knockoff/SpanParser.scala</filename>
    </removed>
    <removed>
      <filename>src/main/scala/com/tristanhunt/knockoff/other/FancyStrings.scala</filename>
    </removed>
    <removed>
      <filename>src/main/scala/knockoff2/Block.scala</filename>
    </removed>
    <removed>
      <filename>src/main/scala/knockoff2/BlockSeq.scala</filename>
    </removed>
    <removed>
      <filename>src/main/scala/knockoff2/BlockType.scala</filename>
    </removed>
    <removed>
      <filename>src/main/scala/knockoff2/Blockquote.scala</filename>
    </removed>
    <removed>
      <filename>src/main/scala/knockoff2/ChunkParsers.scala</filename>
    </removed>
    <removed>
      <filename>src/main/scala/knockoff2/ChunkStreamFactory.scala</filename>
    </removed>
    <removed>
      <filename>src/main/scala/knockoff2/ChunkTypes.scala</filename>
    </removed>
    <removed>
      <filename>src/main/scala/knockoff2/CodeBlock.scala</filename>
    </removed>
    <removed>
      <filename>src/main/scala/knockoff2/CodeMatchers.scala</filename>
    </removed>
    <removed>
      <filename>src/main/scala/knockoff2/CodeSpan.scala</filename>
    </removed>
    <removed>
      <filename>src/main/scala/knockoff2/ColoredLogger.scala</filename>
    </removed>
    <removed>
      <filename>src/main/scala/knockoff2/ComplexBlock.scala</filename>
    </removed>
    <removed>
      <filename>src/main/scala/knockoff2/ComplexSpan.scala</filename>
    </removed>
    <removed>
      <filename>src/main/scala/knockoff2/DefaultDiscounter.scala</filename>
    </removed>
    <removed>
      <filename>src/main/scala/knockoff2/Discounter.scala</filename>
    </removed>
    <removed>
      <filename>src/main/scala/knockoff2/ElementFactory.scala</filename>
    </removed>
    <removed>
      <filename>src/main/scala/knockoff2/Emphasis.scala</filename>
    </removed>
    <removed>
      <filename>src/main/scala/knockoff2/EmphasisMatchers.scala</filename>
    </removed>
    <removed>
      <filename>src/main/scala/knockoff2/EqualDelimiterMatcher.scala</filename>
    </removed>
    <removed>
      <filename>src/main/scala/knockoff2/GroupBlock.scala</filename>
    </removed>
    <removed>
      <filename>src/main/scala/knockoff2/GroupSpan.scala</filename>
    </removed>
    <removed>
      <filename>src/main/scala/knockoff2/HTMLSpan.scala</filename>
    </removed>
    <removed>
      <filename>src/main/scala/knockoff2/HTMLSpanMatcher.scala</filename>
    </removed>
    <removed>
      <filename>src/main/scala/knockoff2/HasElementFactory.scala</filename>
    </removed>
    <removed>
      <filename>src/main/scala/knockoff2/Header.scala</filename>
    </removed>
    <removed>
      <filename>src/main/scala/knockoff2/HorizontalRule.scala</filename>
    </removed>
    <removed>
      <filename>src/main/scala/knockoff2/ImageLink.scala</filename>
    </removed>
    <removed>
      <filename>src/main/scala/knockoff2/ImageSpan.scala</filename>
    </removed>
    <removed>
      <filename>src/main/scala/knockoff2/IndirectImageLink.scala</filename>
    </removed>
    <removed>
      <filename>src/main/scala/knockoff2/IndirectLink.scala</filename>
    </removed>
    <removed>
      <filename>src/main/scala/knockoff2/Link.scala</filename>
    </removed>
    <removed>
      <filename>src/main/scala/knockoff2/LinkDefinition.scala</filename>
    </removed>
    <removed>
      <filename>src/main/scala/knockoff2/LinkMatcher.scala</filename>
    </removed>
    <removed>
      <filename>src/main/scala/knockoff2/ListItem.scala</filename>
    </removed>
    <removed>
      <filename>src/main/scala/knockoff2/MarkdownList.scala</filename>
    </removed>
    <removed>
      <filename>src/main/scala/knockoff2/OrderedItem.scala</filename>
    </removed>
    <removed>
      <filename>src/main/scala/knockoff2/Paragraph.scala</filename>
    </removed>
    <removed>
      <filename>src/main/scala/knockoff2/SimpleBlock.scala</filename>
    </removed>
    <removed>
      <filename>src/main/scala/knockoff2/SimpleSpan.scala</filename>
    </removed>
    <removed>
      <filename>src/main/scala/knockoff2/Span.scala</filename>
    </removed>
    <removed>
      <filename>src/main/scala/knockoff2/SpanConverter.scala</filename>
    </removed>
    <removed>
      <filename>src/main/scala/knockoff2/SpanConverterFactory.scala</filename>
    </removed>
    <removed>
      <filename>src/main/scala/knockoff2/SpanMatch.scala</filename>
    </removed>
    <removed>
      <filename>src/main/scala/knockoff2/SpanSeq.scala</filename>
    </removed>
    <removed>
      <filename>src/main/scala/knockoff2/StringExtras.scala</filename>
    </removed>
    <removed>
      <filename>src/main/scala/knockoff2/Strong.scala</filename>
    </removed>
    <removed>
      <filename>src/main/scala/knockoff2/StrongAndEmMatchers.scala</filename>
    </removed>
    <removed>
      <filename>src/main/scala/knockoff2/StrongMatchers.scala</filename>
    </removed>
    <removed>
      <filename>src/main/scala/knockoff2/Text.scala</filename>
    </removed>
    <removed>
      <filename>src/main/scala/knockoff2/UnorderedItem.scala</filename>
    </removed>
    <removed>
      <filename>src/test/resources/Markdown Documentation - Basics.html</filename>
    </removed>
    <removed>
      <filename>src/test/resources/Markdown Documentation - Basics.text</filename>
    </removed>
    <removed>
      <filename>src/test/resources/Markdown Documentation - Syntax.html</filename>
    </removed>
    <removed>
      <filename>src/test/resources/Markdown Documentation - Syntax.text</filename>
    </removed>
    <removed>
      <filename>src/test/resources/Nested blockquotes.html</filename>
    </removed>
    <removed>
      <filename>src/test/resources/Nested blockquotes.text</filename>
    </removed>
    <removed>
      <filename>src/test/resources/UglyExample.txt</filename>
    </removed>
    <removed>
      <filename>src/test/scala/com/tristanhunt/knockoff/BlockTests.scala</filename>
    </removed>
    <removed>
      <filename>src/test/scala/com/tristanhunt/knockoff/ComplexListConversionTest.scala</filename>
    </removed>
    <removed>
      <filename>src/test/scala/com/tristanhunt/knockoff/InlineHTMLSplitterTest.scala</filename>
    </removed>
    <removed>
      <filename>src/test/scala/com/tristanhunt/knockoff/MarkdownSuiteListTests.scala</filename>
    </removed>
    <removed>
      <filename>src/test/scala/com/tristanhunt/knockoff/MarkdownTestSuite.scala</filename>
    </removed>
    <removed>
      <filename>src/test/scala/com/tristanhunt/knockoff/SpanTests.scala</filename>
    </removed>
    <removed>
      <filename>src/test/scala/com/tristanhunt/knockoff/UglyExampleTest.scala</filename>
    </removed>
    <removed>
      <filename>src/test/scala/knockoff2/BlockSuite.scala</filename>
    </removed>
    <removed>
      <filename>src/test/scala/knockoff2/ChunkParsersSpec.scala</filename>
    </removed>
    <removed>
      <filename>src/test/scala/knockoff2/SpanConverterSpec.scala</filename>
    </removed>
    <removed>
      <filename>src/test/scala/knockoff2/StringExtrasSpec.scala</filename>
    </removed>
  </removed>
  <parents type="array">
    <parent>
      <id>d9a2e0d3bc5ea35a0ff18914ad6596e308a20e0e</id>
    </parent>
  </parents>
  <author>
    <name>Tristan Juricek</name>
    <email>mr.tristan@gmail.com</email>
  </author>
  <url>http://github.com/tristanjuricek/knockoff/commit/e2ab1cce32b1d546b23dc9663ea419f4039f8363</url>
  <id>e2ab1cce32b1d546b23dc9663ea419f4039f8363</id>
  <committed-date>2009-10-11T05:38:30-07:00</committed-date>
  <authored-date>2009-10-11T05:38:30-07:00</authored-date>
  <message>Major revision is complete. Prepared most code for the first 0.5.0-1 release.</message>
  <tree>bed0c00fa60c2140f81adc3718b51770832ec4f4</tree>
  <committer>
    <name>Tristan Juricek</name>
    <email>mr.tristan@gmail.com</email>
  </committer>
</commit>
