Объясни, в чём заключается назначение блоков инициализации в Kotlin и в каком порядке они выполняются. Как они взаимодействуют с первичным и вторичными конструкторами? — ДейлиПреп