<HTMLScraperConfig>

   <StateTransitions processedResultType="Record" begState="_None_">
      <HTMLEvent eventType="EndTag" tagType="form" fromState="_None_" toState="EndForm" />

      <HTMLEvent eventType="StartTag" tagType="table" fromState="EndForm" toState="InResultsTable" />
      <HTMLEvent eventType="StartTag" tagType="a" fromState="InResultsTable" toState="FirstLink" />
      <HTMLEvent eventType="HandleText" fromState="FirstLink" toState="FirstLink" outputTo="PatentNumData" append="true" />

      <HTMLEvent eventType="StartTag" tagType="a" fromState="FirstLink" toState="InLink" >
        <OutputAttribute attrName="href" outputTo="linkHref" />
      </HTMLEvent>
      <HTMLEvent eventType="HandleText" fromState="InLink" toState="InLink" outputTo="TitleData" append="true" />
      <HTMLEvent eventType="EndTag" tagType="a" fromState="InLink" toState="InResultsTable" processResult="true" />

      <HTMLEvent eventType="EndTag" tagType="table" fromState="InResultsTable" toState="_None_"  />

   </StateTransitions>

   <StateTransitions processedResultType="Page" begState="_None2_">

      <HTMLEvent eventType="StartTag" tagType="i" fromState="_None2_" toState="SearchingFrom" />
      <HTMLEvent eventType="SimpleTag" tagType="i" fromState="_None2_" toState="SearchingFrom" />

      <HTMLEvent eventType="EndTag"   tagType="i" fromState="SearchingFrom" toState="SearchingFromDone" />
      <HTMLEvent eventType="SimpleTag" tagType="i" fromState="SearchingFrom" toState="SearchingFromDone" >
        <InputAttribute attrName="endtag" attrVal="true" />
      </HTMLEvent>

      <HTMLEvent eventType="StartTag" tagType="b" fromState="SearchingFromDone" toState="ResultsFor" />
      <HTMLEvent eventType="SimpleTag" tagType="br" fromState="ResultsFor" toState="InQuery" />
      <HTMLEvent eventType="HandleText" fromState="InQuery" toState="InQuery" outputTo="QueryData" append="true" />
      <HTMLEvent eventType="EndTag" tagType="b" fromState="InQuery" toState="QueryDone"  />
      <HTMLEvent eventType="HandleText" fromState="QueryDone" toState="QueryDone" outputTo="TotalDocsData" append="true" />

      <HTMLEvent eventType="SimpleTag" tagType="br" fromState="QueryDone" toState="_None2_" />

   </StateTransitions>

   <OutputFormat>
      <RootTag tagName="Records" />
      <ProcessedResult processedResultType="Record" tagName="Record" >
        <ProcessedElement tagName="Link" charDataFrom="linkHref" />
        <ProcessedElement tagName="Title" charDataFrom="TitleData" />
        <ProcessedElement tagName="PatentNum" charDataFrom="PatentNumData" />
      </ProcessedResult>

      <ProcessedResult processedResultType="Page" tagName="Page" >
           <ProcessedElement tagName="Query"      charDataFrom="QueryData" />
           <ProcessedElement tagName="TotalDocs" charDataFrom="TotalDocsData" 
                                                 inPattern=": (\d*) patents."
                                                 outPattern="$1" />
      </ProcessedResult>
   </OutputFormat>

</HTMLScraperConfig>
