anchor.diff:     Move(State^.SubMatches[0],result^.SubMatches[0],State^.Count*SizeOf(TFLREParallelNFAStateItem));
     end;
   {$endif}
  -  for Counter:=0 to longint(longword(longword(result^.UsedCheckBitmapSize+31) shr 5))-1 do begin
  -   result^.CheckBitmap[Counter]:=State^.CheckBitmap[Counter];
  -  end;
     dec(State^.ReferenceCounter);
    end;
   {$ifdef cpu386}
  
positive.code:   GetMem(result,SizeOf(TFLREParallelNFAState));
    FillChar(result^,SizeOf(TFLREParallelNFAState),#0);
    SetLength(result^.SubMatches,Instance.CountSubMatches);
    SetLength(result^.CheckBitmap,0);
    AllParallelNFAStates.Add(result);
   end;
   result^.ReferenceCounter:=1;
   result^.Count:=Count;
   result^.SubMatchesBitmap:=SubMatchesBitmap;
   result^.UsedCheckBitmapSize:=UsedCheckBitmapSize;
  end;
  
  function TFLREThreadLocalStorageInstance.ParallelNFAStateAcquire(const State:PFLREParallelNFAState):PFLREParallelNFAState; {$ifdef caninline}inline;{$endif}
  
negative.code:  end;
  end;
  
  function TFLREThreadLocalStorageInstance.ParallelNFAStateAllocate(const Count:longint;const SubMatchesBitmap:longword):PFLREParallelNFAState; {$ifdef caninline}inline;{$endif}
  begin
   if assigned(FreeParallelNFAStates) then begin
    result:=FreeParallelNFAStates;
  