anchor.diff:      function autoDiffRange: Double;
       function BuildLegendJSON(aLegendFormat: TLegendFormat): string;
       function CreateUSLayer(aScenario: TScenario; const aTablePrefix: string; const aConnectString: string;
  -      const aDataEvent: array of TIMBEventEntry; aSourceProjection: TGIS_CSProjectedCoordinateSystem; const aDomain, aName: string): TUSLayer;
  +      const aDataEvent: array of TIMBEventEntry; aSourceProjection: TGIS_CSProjectedCoordinateSystem; const aDomain, aName: string): TLayerBase;
     end;
   
     TMetaLayer = TDictionary<Integer, TMetaLayerEntry>;
  
positive.code: procedure TUSScenario.ReadBasicData;
  var
    mlp: TPair<Integer, TMetaLayerEntry>;
    layer: TUSLayer;
    indicTableNames: TAllRowsSingleFieldResult;
    oraSession: TOraSession;
    metaLayer: TMetaLayer;
  
negative.code: procedure TUSLayer.handleTableChange(aSender: TSubscribeObject; const aAction, aObjectID: Integer);
  begin
    TMonitor.Enter(fUpdateQueueEvent);
    try
      begin
        try
          fUpdateQueue.Add(TUSUpdateQueueEntry.Create(aObjectID, aAction));
          fUpdateQueueEvent.SetEvent;
        except
          on e: Exception do
          begin
            Log.WriteLn('TUSLayer.handleChangeObject. objectid: ' + aObjectID.ToString + ', action: ' + aAction.ToString+': '+e.Message, llError);
          end
        end;
      end
    finally
      TMonitor.Exit(fUpdateQueueEvent);
    end;
  end;
  
  function TUSLayer.UpdateObject(aQuery: TOraQuery; const oid: TWDID; aObject: TLayerObject): TLayerObject;
  