anchor.diff:        Generics.Collections;
   
   type
  - TBlkTUZastavka = record  // zastavka na useku
  -  enabled:boolean;          // existuje v useku zastavka?
  -  IR_lichy:Integer;         // odkaz na zastavovaci IR v lichem smeru
  -  IR_sudy:Integer;          // odkaz na zastavovaci IR v sudem smeru
  -  soupravy:TStrings;        // typy souprav, pro ktere je zastavka
  -  max_delka:Integer;        // maximalni delka soupravy pro zastaveni v zastavce
  -  delay:TTime;              // cas cekani v zastavce
  - end;
  -
  - TBlkTUSettings = record
  -   zastavka:TBlkTUZastavka;
  -   navLid,navSid:Integer;
  -   rychlost:Integer;
  - end;
  -
  - TBlkTUStav = record      // stav tratoveho useku
  -  inTrat:Integer;           // tady je ulozeno id bloku trati, v jake se blok nachazi; pokud se nenachazi v trati -> -1
  -
  -  zast_stopped:boolean;     // jakmile zastavim soupravu v zastavce, nastavim sem true; pokud souprava jede, je zde false
  -  zast_run_time:TDateTime;  // tady je ulozen cas, kdy se ma souprava ze zastavky rozjet
  -  zast_rych:Integer;        // tady si pamatuji, jakou rychlost mela souprava puvodne (mela by to byt tratova, toto je tu pro rozsireni zastavek nejen do trati)
  -  zast_enabled:boolean;     // zastavku lze z panelu zapnout a vypnout (v zakladnim stavu je zapla)
  -  zast_passed:boolean;      // atdy je ulozeno true, pokud souprava zastavku jiz projela
  -
  -  bpInBlk:boolean;
  -  sprRychUpdateIter:Integer;
  + TBlkTUZastavka = record                                                        // zastavka na TU
  +  enabled:boolean;                                                                // existuje v useku zastavka?
  +  IR_lichy:Integer;                                                               // odkaz na zastavovaci IR v lichem smeru
  +  IR_sudy:Integer;                                                                // odkaz na zastavovaci IR v sudem smeru
  +  soupravy:TStrings;                                                              // typy souprav, pro ktere je zastavka
  +  max_delka:Integer;                                                              // maximalni delka soupravy pro zastaveni v zastavce
  +  delay:TTime;                                                                    // cas cekani v zastavce
  + end;
  +
  + TBlkTUSettings = record                                                        // nastaveni TU
  +   zastavka:TBlkTUZastavka;                                                       // odkaz na zastavku
  +   navLid,navSid:Integer;                                                         // odkaz na kryci navestidlo TU v lichem smeru a kryci navestidlo v sudem smeru
  +                                                                                  // obsahuje id bloku navestidla, pokud neni TU kryty v danem smeru, obsahuje -1
  +                                                                                  // vyuzivano pro autoblok
  +   rychlost:Integer;                                                              // rychlost v tratovem useku
  + end;
  +
  + TBlkTUStav = record                                                            // stav tratoveho useku
  +  inTrat:Integer;                                                                 // tady je ulozeno id bloku trati, v jake se blok nachazi; pokud se nenachazi v trati -> -1
  +
  +  zast_stopped:boolean;                                                           // jakmile zastavim soupravu v zastavce, nastavim sem true; pokud souprava jede, je zde false
  +  zast_run_time:TDateTime;                                                        // tady je ulozen cas, kdy se ma souprava ze zastavky rozjet
  +  zast_rych:Integer;                                                              // tady si pamatuji, jakou rychlost mela souprava puvodne (mela by to byt tratova, toto je tu pro rozsireni zastavek nejen do trati)
  +  zast_enabled:boolean;                                                           // zastavku lze z panelu zapnout a vypnout (v zakladnim stavu je zapla)
  +  zast_passed:boolean;                                                            // atdy je ulozeno true, pokud souprava zastavku jiz projela
  +
  +  bpInBlk:boolean;                                                                // jestli je v useku zavedena blokova podminka
  +                                                                                  // bpInBlk = kontroluji obsazeni bloku, pri uvolneni useku bez predani dale vyhlasit poruchu BP
  +  sprRychUpdateIter:Integer;                                                      // pocet zbyvajicich iteraci do nastaveni rychlost soupravy
    end;
   
   
    // technologicky blok Tratoveho useku
    TBlkTU = class(TBlkUsek)
     private const
  -   _def_tu_stav:TBlkTUStav = (
  +   _def_tu_stav:TBlkTUStav = (                                                  // zakladni stav TU
       inTrat: -1;
       zast_stopped : false;
       zast_enabled : true;
       sprRychUpdateIter : 0;
      );
   
  -   _def_tu_zastavka:TBlkTUZastavka = (
  +   _def_tu_zastavka:TBlkTUZastavka = (                                          // zakladni stav zastavky
       enabled : false;
       IR_lichy : -1;
       IR_sudy : -1;
  
positive.code: 
  end;//procedure
  
  procedure TBlkTU.SaveStatus(ini_stat:TMemIniFile;const section:string);
  begin
   inherited;
  
negative.code:  str.Free();
  end;//procedure
  
  // ulozi konfiguracni data do souboru
  procedure TBlkTU.SaveData(ini_tech:TMemIniFile;const section:string);
  var str:string;
      i:Integer;
  