DEFAULT_CITY_FILTER="Екатеринбург" был жёсткой CLI-константой, поэтому запуск лоадера
для региона 77 (Москва) или 50 (область) молча резал бы матч под несуществующий
город. Теперь default_city_filter_for_region() решает по региону (источник имени —
REGIONS[66].city_token из regions.py): 66 получает byte-for-byte прежний фильтр,
77/50 — без фильтра (объяснено комментарием у REGIONS_REQUIRING_CITY_FILTER).
Заодно закрыт реальный, а не декоративный риск: без city-фильтра canon-ключ адреса
(tradein_canon_addr, мигр. 144) не несёт населённый пункт, поэтому у области (50, без
одного доминирующего города) одноимённые улицы разных городов схлопывались бы в один
canon и матчер молча приписывал бы дом одного города дому другого. _MATCH_SQL теперь
считает canon_hits (число разных ГАР-домов на canon в выборке) и матчит только
однозначные canon — неоднозначные пропускаются, а не угадываются по max(flat_count).
С city-фильтром (регион 66) это ограничение не действует, поведение не меняется.
Раннбук дополнен шагами для 77/50 (какие папки архива распаковывать) и актуальным
источником URL дампа ФИАС (GetLastDownloadFileInfo, т.к. прямой URL меняется еженедельно).