anchor.diff:  {$IFNDEF SUPPORTS_MONITOR}
     FRulesByYearLock := TCriticalSection.Create;
   {$ENDIF}
  +{$IFDEF FPC}
     FRulesByYear := TBucketList.Create();
  +{$ELSE}
  +  FRulesByYear := TDictionary<Word,TList>.Create;
  +{$ENDIF}
   end;
   
   destructor TCompiledPeriod.Destroy;
  +var L: TList;
  +    c: Boolean;
   begin
   {$IFNDEF SUPPORTS_MONITOR}
     FRulesByYearLock.Free;
  
positive.code:   try
  {$WARNINGS OFF}
      { Check if we have a cached list of matching rules for this date's year }
      if not FRulesByYear.Find(Pointer(LYear), Pointer(LCompiledList)) then
        LCompiledList := CompileRulesForYear(LYear);
  {$WARNINGS ON}
  
  
negative.code: {$IFNDEF SUPPORTS_MONITOR}
    SyncObjs,
  {$ENDIF}
  {$IFDEF FPC}
    Contnrs,
  {$ELSE}
    Generics.Collections,
  {$ENDIF}
    IniFiles;
  
  resourcestring
  