"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.cast_de_nrw_schule_svws_core_types_statkue_ZulaessigesFach = exports.ZulaessigesFach = void 0;
const JavaObject_1 = require("../../../java/lang/JavaObject");
const Fachgruppe_1 = require("../../../core/types/statkue/Fachgruppe");
const HashMap_1 = require("../../../java/util/HashMap");
const Schulform_1 = require("../../../core/types/statkue/Schulform");
const Schulgliederung_1 = require("../../../core/types/statkue/Schulgliederung");
const Arrays_1 = require("../../../java/util/Arrays");
const Vector_1 = require("../../../java/util/Vector");
class ZulaessigesFach extends JavaObject_1.JavaObject {
    /** the name of the enumeration value */
    __name;
    /** the ordinal value for the enumeration value */
    __ordinal;
    /** an array containing all values of this enumeration */
    static all_values_by_ordinal = [];
    /** an array containing all values of this enumeration indexed by their name*/
    static all_values_by_name = new Map();
    static A = new ZulaessigesFach("A", 0, "A", "Arabisch", Arrays_1.Arrays.asList("BK", "GE", "GY", "SB", "SG", "WB"), null, "A", null, 3, null, true, false, false, false, false, false, true, null, null);
    static AB = new ZulaessigesFach("AB", 1, "AB", "Arbeits- und Betriebswirtschaftslehre", Arrays_1.Arrays.asList("BK", "SB"), null, "AB", null, 2, null, false, false, false, false, false, false, true, null, null);
    static AG = new ZulaessigesFach("AG", 2, "AG", "Neigungs- und Projektgruppen", Arrays_1.Arrays.asList("BK", "SB"), null, "AG", null, null, null, false, false, false, false, false, false, true, null, null);
    static AH = new ZulaessigesFach("AH", 3, "AH", "Arbeitslehre - Schwerpunkt Hauswirtschaft", Arrays_1.Arrays.asList("GE", "GM", "H", "PS", "SK", "V"), Arrays_1.Arrays.asList("H"), "AH", null, 2, null, false, false, false, false, false, false, true, null, null);
    static AL = new ZulaessigesFach("AL", 4, "AL", "Arbeitslehre", Arrays_1.Arrays.asList("GE", "GM", "PS", "S", "SG", "SK"), null, "AL", null, 2, null, false, false, false, false, false, false, true, null, null);
    static AM = new ZulaessigesFach("AM", 5, "AM", "Unterricht in der Herkunftssprache - Arabisch", Arrays_1.Arrays.asList("G", "GE", "GM", "GY", "H", "PS", "R", "S", "SG", "SK", "SR", "V"), null, "AM", null, null, null, true, true, false, false, false, false, true, null, null);
    static AR = new ZulaessigesFach("AR", 6, "AR", "Alevitische Religionslehre nach den Grundsätzen des AABF", Arrays_1.Arrays.asList("G", "GE", "GM", "GY", "H", "PS", "R", "S", "SG", "SK", "SR", "V"), null, "AR", null, null, null, false, false, false, false, false, false, true, null, null);
    static AT = new ZulaessigesFach("AT", 7, "AT", "Arbeitslehre - Schwerpunkt Technik", Arrays_1.Arrays.asList("GE", "GM", "H", "PS", "SK", "V"), Arrays_1.Arrays.asList("H"), "AT", null, 2, null, false, false, false, false, false, false, true, null, null);
    static AV = new ZulaessigesFach("AV", 8, "AV", "Arbeitsvorbereitung", Arrays_1.Arrays.asList("BK", "SB"), null, "AV", null, null, null, false, false, false, false, false, false, true, null, null);
    static AW = new ZulaessigesFach("AW", 9, "AW", "Arbeitslehre - Schwerpunkt Wirtschaft", Arrays_1.Arrays.asList("GE", "GM", "H", "PS", "SK", "V"), Arrays_1.Arrays.asList("H"), "AW", null, 2, null, false, false, false, false, false, false, true, null, null);
    static AX = new ZulaessigesFach("AX", 10, "AX", "Arbeitslehre - Technik/Wirtschaft (nur Wahlpflichtunterricht)", Arrays_1.Arrays.asList("GE", "GM", "PS", "SK"), null, "AX", null, 2, null, false, false, false, false, false, false, true, null, null);
    static AY = new ZulaessigesFach("AY", 11, "AY", "Arbeitslehre - Hauswirtschaft/Wirtschaft (nur Wahlpflichtunterricht)", Arrays_1.Arrays.asList("GE", "GM", "PS", "SK"), null, "AY", null, 2, null, false, false, false, false, false, false, true, null, null);
    static BA = new ZulaessigesFach("BA", 12, "BA", "Berufs- und Arbeitspädagogik", Arrays_1.Arrays.asList("BK", "SB"), null, "BA", null, null, null, false, false, false, false, false, false, true, null, null);
    static BF = new ZulaessigesFach("BF", 13, "BF", "Bürowirtschaft", Arrays_1.Arrays.asList("BK", "SB"), null, "BF", null, null, null, false, false, false, false, false, false, true, null, null);
    static BG = new ZulaessigesFach("BG", 14, "BG", "Betrieb und Gesellschaft/Politik", Arrays_1.Arrays.asList("BK", "SB"), null, "BG", null, null, null, false, false, false, false, false, false, true, null, null);
    static BH = new ZulaessigesFach("BH", 15, "BH", "Herkunftssprache anstelle einer Pflichtfremdsprache - Bosnisch", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "R", "S", "SG", "SK", "SR"), Arrays_1.Arrays.asList("R"), "BH", null, null, null, true, true, false, true, false, false, true, null, null);
    static BI = new ZulaessigesFach("BI", 16, "BI", "Biologie", Arrays_1.Arrays.asList("BK", "GE", "GM", "GY", "H", "PS", "R", "S", "SB", "SG", "SK", "SR", "V", "WB"), null, "BI", 3, 10, null, false, false, false, false, false, false, true, null, null);
    static BK = new ZulaessigesFach("BK", 17, "BK", "Betriebsinformatik", Arrays_1.Arrays.asList("BK", "SB"), null, "BK", null, null, null, false, false, false, false, false, false, true, null, null);
    static BM = new ZulaessigesFach("BM", 18, "BM", "Unterricht in der Herkunftssprache - Bosnisch", Arrays_1.Arrays.asList("G", "GE", "GM", "GY", "H", "PS", "R", "S", "SG", "SK", "SR", "V"), null, "BM", null, null, null, true, true, false, false, false, false, true, null, null);
    static BN = new ZulaessigesFach("BN", 19, "BN", "Braille\'sche Punktschrift", Arrays_1.Arrays.asList("S"), null, "BN", null, null, null, false, false, false, false, false, false, true, null, null);
    static BP = new ZulaessigesFach("BP", 20, "BP", "Betriebspraxis", Arrays_1.Arrays.asList("BK", "SB"), null, "BP", null, null, null, false, false, false, false, false, false, true, null, null);
    static BR = new ZulaessigesFach("BR", 21, "BR", "Betriebslehre", Arrays_1.Arrays.asList("BK", "SB"), null, "BR", null, null, null, false, false, false, false, false, false, true, null, null);
    static BS = new ZulaessigesFach("BS", 22, "BS", "Betriebssoziologie / Arbeitsrecht", Arrays_1.Arrays.asList("BK", "SB"), null, "BS", null, null, null, false, false, false, false, false, false, true, null, null);
    static BV = new ZulaessigesFach("BV", 23, "BV", "Berufsvorbereitung", Arrays_1.Arrays.asList("GE", "PS"), null, "BV", null, null, null, false, false, false, false, false, false, true, null, null);
    static BW = new ZulaessigesFach("BW", 24, "BW", "Betriebswirtschaftslehre", Arrays_1.Arrays.asList("BK", "SB"), null, "BW", null, null, null, false, false, false, false, false, false, true, null, null);
    static BY = new ZulaessigesFach("BY", 25, "BY", "Betriebssysteme / Netzwerke", Arrays_1.Arrays.asList("BK", "SB"), null, "BY", null, null, null, false, false, false, false, false, false, true, null, null);
    static C = new ZulaessigesFach("C", 26, "C", "Chinesisch", Arrays_1.Arrays.asList("BK", "SB", "WB"), null, "C", 1, 3, null, true, false, false, false, false, false, true, null, null);
    static C0 = new ZulaessigesFach("C0", 27, "C0", "Chinesisch, regulärer Beginn in der Einführungsphase", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "SG"), null, "C", 1, 3, "EF", true, false, false, false, false, true, true, null, null);
    static C1 = new ZulaessigesFach("C1", 28, "C1", "Chinesisch, regulärer Beginn in Jahrgang 11", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "SG"), null, "C", 1, 3, "11", true, false, false, false, false, true, true, null, 2012);
    static C5 = new ZulaessigesFach("C5", 29, "C5", "Chinesisch, regulärer Beginn in Jahrgang 5", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "SG", "SK"), null, "C", 1, 3, "05", true, false, false, false, false, false, true, null, null);
    static C6 = new ZulaessigesFach("C6", 30, "C6", "Chinesisch, regulärer Beginn in Jahrgang 6", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "SG", "SK"), null, "C", 1, 3, "06", true, false, false, false, false, false, true, null, null);
    static C7 = new ZulaessigesFach("C7", 31, "C7", "Chinesisch, regulärer Beginn in Jahrgang 7", Arrays_1.Arrays.asList("GE", "GM", "GY", "SG", "SK"), null, "C", 1, 3, "07", true, false, false, false, false, false, true, null, null);
    static C8 = new ZulaessigesFach("C8", 32, "C8", "Chinesisch, regulärer Beginn in Jahrgang 8", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "SG", "SK"), null, "C", 1, 3, "08", true, false, false, false, false, false, true, null, null);
    static C9 = new ZulaessigesFach("C9", 33, "C9", "Chinesisch, regulärer Beginn in Jahrgang 9", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "SG", "SK"), null, "C", 1, 3, "09", true, false, false, false, false, false, true, null, null);
    static CH = new ZulaessigesFach("CH", 34, "CH", "Chemie", Arrays_1.Arrays.asList("BK", "GE", "GM", "GY", "H", "PS", "R", "S", "SB", "SG", "SK", "SR", "V", "WB"), null, "CH", 3, 10, null, false, false, false, false, false, false, true, null, null);
    static CM = new ZulaessigesFach("CM", 35, "CM", "Unterricht in der Herkunftssprache - Kroatisch", Arrays_1.Arrays.asList("G", "GE", "GM", "GY", "H", "PS", "R", "S", "SG", "SK", "SR", "V"), null, "CM", null, null, null, true, true, false, false, false, false, true, null, null);
    static CQ = new ZulaessigesFach("CQ", 36, "CQ", "Chinesisch, außerhalb des regulären Fachunterrichts", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "SG", "SK"), null, "CQ", null, null, null, true, false, true, false, false, false, true, null, null);
    static D = new ZulaessigesFach("D", 37, "D", "Deutsch", Arrays_1.Arrays.asList("BK", "G", "GE", "GM", "GY", "H", "PS", "R", "S", "SB", "SG", "SK", "SR", "V", "WB"), null, "D", 1, 1, null, false, false, false, false, false, false, true, null, null);
    static DB = new ZulaessigesFach("DB", 38, "DB", "Datenbanken", Arrays_1.Arrays.asList("BK", "SB"), null, "DB", null, null, null, false, false, false, false, false, false, true, null, null);
    static DH = new ZulaessigesFach("DH", 39, "DH", "Herkunftssprache anstelle einer Pflichtfremdsprache - Rumänisch", Arrays_1.Arrays.asList("GE", "GM", "GY", "H", "PS", "R", "S", "SG", "SK", "SR"), null, "DH", null, null, null, true, true, false, true, false, false, true, null, null);
    static DM = new ZulaessigesFach("DM", 40, "DM", "Didaktik u. Methodik der soz.päd. Praxis mit Übungen", Arrays_1.Arrays.asList("BK", "SB"), null, "DM", null, null, null, false, false, false, false, false, false, true, null, null);
    static DS = new ZulaessigesFach("DS", 41, "DS", "Darstellen und Gestalten", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "SK"), null, "DS", null, null, null, false, false, false, false, false, false, true, null, null);
    static DV = new ZulaessigesFach("DV", 42, "DV", "Datenverarbeitung", Arrays_1.Arrays.asList("BK", "SB"), null, "DV", null, null, null, false, false, false, false, false, false, true, null, null);
    static E = new ZulaessigesFach("E", 43, "E", "Englisch", Arrays_1.Arrays.asList("BK", "FW", "G", "GE", "GM", "GY", "H", "PS", "R", "S", "SB", "SG", "SK", "SR", "V", "WB"), null, "E", 1, 3, null, true, false, false, false, false, false, true, null, null);
    static EB = new ZulaessigesFach("EB", 44, "EB", "Erweitertes Bildungsangebot", Arrays_1.Arrays.asList("H", "SK", "V"), Arrays_1.Arrays.asList("H"), "EB", null, null, null, false, false, false, false, false, false, true, null, null);
    static EH = new ZulaessigesFach("EH", 45, "EH", "Herkunftssprache anstelle einer Pflichtfremdsprache - Serbisch", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "R", "S", "SG", "SK", "SR"), Arrays_1.Arrays.asList("R"), "EH", null, null, null, true, true, false, true, false, false, true, null, null);
    static EK = new ZulaessigesFach("EK", 46, "EK", "Erdkunde/ Geographie", Arrays_1.Arrays.asList("BK", "GE", "GM", "GY", "H", "PS", "R", "S", "SB", "SG", "SK", "SR", "V", "WB"), null, "EK", 2, 6, null, false, false, false, false, false, false, true, null, null);
    static EL = new ZulaessigesFach("EL", 47, "EL", "Ernährungslehre", Arrays_1.Arrays.asList("BK", "GE", "GY", "PS", "SB", "SG", "SK"), Arrays_1.Arrays.asList("GY"), "EL", null, 11, null, false, false, false, false, false, false, true, null, null);
    static EM = new ZulaessigesFach("EM", 48, "EM", "Unterricht in der Herkunftssprache - Serbisch", Arrays_1.Arrays.asList("G", "GE", "GM", "GY", "H", "PS", "R", "S", "SG", "SK", "SR", "V"), null, "EM", null, null, null, true, true, false, false, false, false, true, null, null);
    static EN = new ZulaessigesFach("EN", 49, "EN", "Evangelische Religionslehre (konfessionell kooperativ)", Arrays_1.Arrays.asList("BK", "G", "GE", "GM", "GY", "H", "PS", "R", "S", "SB", "SG", "SK", "SR", "V", "WB"), null, "ER", null, null, null, false, false, false, false, true, false, true, null, null);
    static ER = new ZulaessigesFach("ER", 50, "ER", "Evangelische Religionslehre", Arrays_1.Arrays.asList("BK", "G", "GE", "GM", "GY", "H", "PS", "R", "S", "SB", "SG", "SK", "SR", "V", "WB"), null, "ER", null, 8, null, false, false, false, false, false, false, true, null, null);
    static F = new ZulaessigesFach("F", 51, "F", "Französisch", Arrays_1.Arrays.asList("BK", "FW", "H", "S", "SB", "V", "WB"), Arrays_1.Arrays.asList("H"), "F", 1, 3, null, true, false, false, false, false, false, true, null, null);
    static F0 = new ZulaessigesFach("F0", 52, "F0", "Französisch, regulärer Beginn in der Einführungsphase", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "SG"), null, "F", 1, 3, "EF", true, false, false, false, false, true, true, null, null);
    static F1 = new ZulaessigesFach("F1", 53, "F1", "Französisch, regulärer Beginn in Jahrgang 11", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "SG"), null, "F", 1, 3, "11", true, false, false, false, false, true, true, null, 2012);
    static F5 = new ZulaessigesFach("F5", 54, "F5", "Französisch, regulärer Beginn in Jahrgang 5", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "R", "SG", "SK", "SR"), null, "F", 1, 3, "05", true, false, false, false, false, false, true, null, null);
    static F6 = new ZulaessigesFach("F6", 55, "F6", "Französisch, regulärer Beginn in Jahrgang 6", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "R", "SG", "SK", "SR"), null, "F", 1, 3, "06", true, false, false, false, false, false, true, null, null);
    static F7 = new ZulaessigesFach("F7", 56, "F7", "Französisch, regulärer Beginn in Jahrgang 7", Arrays_1.Arrays.asList("GE", "GM", "GY", "R", "SG", "SK"), null, "F", 1, 3, "07", true, false, false, false, false, false, true, null, null);
    static F8 = new ZulaessigesFach("F8", 57, "F8", "Französisch, regulärer Beginn in Jahrgang 8", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "R", "SG", "SK", "SR"), null, "F", 1, 3, "08", true, false, false, false, false, false, true, null, null);
    static F9 = new ZulaessigesFach("F9", 58, "F9", "Französisch, regulärer Beginn in Jahrgang 9", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "R", "SG", "SK", "SR"), null, "F", 1, 3, "09", true, false, false, false, false, false, true, null, null);
    static FB = new ZulaessigesFach("FB", 59, "FB", "Fächer des berufsbezogenen Bereichs", Arrays_1.Arrays.asList("BK", "SB"), null, "FB", null, null, null, false, false, false, false, false, false, true, null, null);
    static FK = new ZulaessigesFach("FK", 60, "FK", "Fremdsprachliche Kommunikation", Arrays_1.Arrays.asList("BK", "SB"), null, "FK", null, null, null, false, false, false, false, false, false, true, null, null);
    static FP = new ZulaessigesFach("FP", 61, "FP", "Fachpraxis", Arrays_1.Arrays.asList("BK", "SB"), null, "FP", null, null, null, false, false, false, false, false, false, true, null, null);
    static FQ = new ZulaessigesFach("FQ", 62, "FQ", "Französisch, außerhalb des regulären Fachunterrichts", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "R", "SG", "SK", "SR"), null, "FQ", null, null, null, true, false, true, false, false, false, true, null, null);
    static FU = new ZulaessigesFach("FU", 63, "FU", "Förderunterricht", Arrays_1.Arrays.asList("BK", "G", "PS", "SB", "V"), null, "FU", null, null, null, false, false, false, false, false, false, true, null, null);
    static G = new ZulaessigesFach("G", 64, "G", "Altgriechisch", Arrays_1.Arrays.asList("FW", "S", "WB"), null, "G", null, 3, null, true, false, false, false, false, false, true, null, null);
    static G0 = new ZulaessigesFach("G0", 65, "G0", "Altgriechisch, regulärer Beginn in der Einführungsphase", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "SG"), null, "G", null, 3, "EF", true, false, false, false, false, true, true, null, null);
    static G1 = new ZulaessigesFach("G1", 66, "G1", "Altgriechisch, regulärer Beginn in Jahrgang 11", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "SG"), null, "G", null, 3, "11", true, false, false, false, false, true, true, null, 2012);
    static G5 = new ZulaessigesFach("G5", 67, "G5", "Altgriechisch, regulärer Beginn in Jahrgang 5", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "SG", "SK"), null, "G", null, 3, "05", true, false, false, false, false, false, true, null, null);
    static G6 = new ZulaessigesFach("G6", 68, "G6", "Altgriechisch, regulärer Beginn in Jahrgang 6", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "SG", "SK"), null, "G", null, 3, "06", true, false, false, false, false, false, true, null, null);
    static G7 = new ZulaessigesFach("G7", 69, "G7", "Altgriechisch, regulärer Beginn in Jahrgang 7", Arrays_1.Arrays.asList("GE", "GM", "GY", "SG", "SK"), null, "G", null, 3, "07", true, false, false, false, false, false, true, null, null);
    static G8 = new ZulaessigesFach("G8", 70, "G8", "Altgriechisch, regulärer Beginn in Jahrgang 8", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "SG", "SK"), null, "G", null, 3, "08", true, false, false, false, false, false, true, null, null);
    static G9 = new ZulaessigesFach("G9", 71, "G9", "Altgriechisch, regulärer Beginn in Jahrgang 9", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "SG", "SK"), null, "G", null, 3, "09", true, false, false, false, false, false, true, null, null);
    static GA = new ZulaessigesFach("GA", 72, "GA", "Geräte- und Maschinenlehre", Arrays_1.Arrays.asList("BK", "SB"), null, "GA", null, null, null, false, false, false, false, false, false, true, null, null);
    static GB = new ZulaessigesFach("GB", 73, "GB", "Grundbildung", Arrays_1.Arrays.asList("BK", "SB"), null, "GB", null, null, null, false, false, false, false, false, false, true, null, null);
    static GE = new ZulaessigesFach("GE", 74, "GE", "Geschichte", Arrays_1.Arrays.asList("BK", "GE", "GM", "GY", "H", "PS", "R", "S", "SB", "SG", "SK", "SR", "V", "WB"), null, "GE", 2, 6, null, false, false, false, false, false, false, true, null, null);
    static GH = new ZulaessigesFach("GH", 75, "GH", "Herkunftssprache anstelle einer Pflichtfremdsprache - Neugriechisch", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "R", "S", "SG", "SK", "SR"), Arrays_1.Arrays.asList("R"), "GH", null, null, null, true, true, false, true, false, false, true, null, null);
    static GL = new ZulaessigesFach("GL", 76, "GL", "Gesellschaftslehre", Arrays_1.Arrays.asList("BK", "GE", "GM", "PS", "SB", "SK"), null, "GL", null, 6, null, false, false, false, false, false, false, true, null, null);
    static GM = new ZulaessigesFach("GM", 77, "GM", "Unterricht in der Herkunftssprache - Neugriechisch", Arrays_1.Arrays.asList("G", "GE", "GM", "GY", "H", "PS", "R", "S", "SG", "SK", "SR", "V"), null, "GM", null, null, null, true, true, false, false, false, false, true, null, null);
    static GO = new ZulaessigesFach("GO", 78, "GO", "Geologie (Oberstufenkolleg Bielefeld)", Arrays_1.Arrays.asList("WB"), null, "GO", null, null, null, false, false, false, false, false, false, true, null, null);
    static GP = new ZulaessigesFach("GP", 79, "GP", "Geschichte / Politik", Arrays_1.Arrays.asList("S"), null, "GP", null, 6, null, false, false, false, false, false, false, true, null, null);
    static GQ = new ZulaessigesFach("GQ", 80, "GQ", "Altgriechisch, außerhalb des regulären Fachunterrichts", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "SG", "SK"), null, "GQ", null, null, null, false, false, false, false, false, false, true, null, null);
    static GS = new ZulaessigesFach("GS", 81, "GS", "Gestaltungslehre", Arrays_1.Arrays.asList("BK", "SB"), null, "GS", null, null, null, false, false, false, false, false, false, true, null, null);
    static GU = new ZulaessigesFach("GU", 82, "GU", "Gesamtunterricht (nur für Förderschulkindergarten)", Arrays_1.Arrays.asList("S"), null, "GU", null, null, null, false, false, false, false, false, false, true, null, null);
    static GW = new ZulaessigesFach("GW", 83, "GW", "Geschichte und Sozialwissenschaft", Arrays_1.Arrays.asList("WB"), null, "GW", null, 6, null, false, false, false, false, false, false, true, null, null);
    static H = new ZulaessigesFach("H", 84, "H", "Hebräisch", Arrays_1.Arrays.asList("S", "WB"), null, "H", null, 3, null, true, false, false, false, false, false, true, null, null);
    static H0 = new ZulaessigesFach("H0", 85, "H0", "Hebräisch, regulärer Beginn in der Einführungsphase", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "SG"), null, "H", null, 3, "EF", true, false, false, false, false, true, true, null, null);
    static H1 = new ZulaessigesFach("H1", 86, "H1", "Hebräisch, regulärer Beginn in Jahrgang 11", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "SG"), null, "H", null, 3, "11", true, false, false, false, false, true, true, null, 2012);
    static H5 = new ZulaessigesFach("H5", 87, "H5", "Hebräisch, regulärer Beginn in Jahrgang 5", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "SG", "SK"), null, "H", null, 3, "05", true, false, false, false, false, false, true, null, null);
    static H6 = new ZulaessigesFach("H6", 88, "H6", "Hebräisch, regulärer Beginn in Jahrgang 6", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "SG", "SK"), null, "H", null, 3, "06", true, false, false, false, false, false, true, null, null);
    static H7 = new ZulaessigesFach("H7", 89, "H7", "Hebräisch, regulärer Beginn in Jahrgang 7", Arrays_1.Arrays.asList("GE", "GM", "GY", "SG", "SK"), null, "H", null, 3, "07", true, false, false, false, false, false, true, null, null);
    static H8 = new ZulaessigesFach("H8", 90, "H8", "Hebräisch, regulärer Beginn in Jahrgang 8", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "SG", "SK"), null, "H", null, 3, "08", true, false, false, false, false, false, true, null, null);
    static H9 = new ZulaessigesFach("H9", 91, "H9", "Hebräisch, regulärer Beginn in Jahrgang 9", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "SG", "SK"), null, "H", null, 3, "09", true, false, false, false, false, false, true, null, null);
    static HH = new ZulaessigesFach("HH", 92, "HH", "Herkunftssprache anstelle einer Pflichtfremdsprache - Kroatisch", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "R", "S", "SG", "SK", "SR"), Arrays_1.Arrays.asList("R"), "HH", null, null, null, true, true, false, true, false, false, true, null, null);
    static HQ = new ZulaessigesFach("HQ", 93, "HQ", "Hebräisch, außerhalb des regulären Fachunterrichts", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "SG", "SK"), null, "HQ", null, null, null, true, false, true, false, false, false, true, null, null);
    static HR = new ZulaessigesFach("HR", 94, "HR", "Jüdische Religionslehre", Arrays_1.Arrays.asList("BK", "G", "GE", "GM", "GY", "H", "PS", "R", "S", "SB", "SG", "SK", "SR", "V", "WB"), null, "HR", null, 8, null, false, false, false, false, false, false, true, null, null);
    static HU = new ZulaessigesFach("HU", 95, "HU", "Hausunterricht", Arrays_1.Arrays.asList("BK", "G", "GE", "GM", "GY", "H", "PS", "R", "S", "SB", "SG", "SK", "SR", "V", "WB"), null, "HU", null, null, null, false, false, false, false, false, false, true, null, null);
    static HW = new ZulaessigesFach("HW", 96, "HW", "Hauswirtschaft", Arrays_1.Arrays.asList("GE", "GM", "H", "PS", "R", "S", "SG", "SK", "SR", "WB"), null, "HW", null, null, null, false, false, false, false, false, false, true, null, null);
    static HY = new ZulaessigesFach("HY", 97, "HY", "Hygiene", Arrays_1.Arrays.asList("BK", "SB"), null, "HY", null, null, null, false, false, false, false, false, false, true, null, null);
    static I = new ZulaessigesFach("I", 98, "I", "Italienisch", Arrays_1.Arrays.asList("BK", "FW", "S", "SB", "WB"), Arrays_1.Arrays.asList("R"), "I", 1, 3, null, true, false, false, false, false, false, true, null, null);
    static I0 = new ZulaessigesFach("I0", 99, "I0", "Italienisch, regulärer Beginn in der Einführungsphase", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "SG"), null, "I", 1, 3, "EF", true, false, false, false, false, true, true, null, null);
    static I1 = new ZulaessigesFach("I1", 100, "I1", "Italienisch, regulärer Beginn in Jahrgang 11", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "SG"), null, "I", 1, 3, "11", true, false, false, false, false, true, true, null, 2012);
    static I5 = new ZulaessigesFach("I5", 101, "I5", "Italienisch, regulärer Beginn in Jahrgang 5", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "R", "SG", "SK", "SR"), null, "I", 1, 3, "05", true, false, false, false, false, false, true, null, null);
    static I6 = new ZulaessigesFach("I6", 102, "I6", "Italienisch, regulärer Beginn in Jahrgang 6", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "R", "SG", "SK", "SR"), null, "I", 1, 3, "06", true, false, false, false, false, false, true, null, null);
    static I7 = new ZulaessigesFach("I7", 103, "I7", "Italienisch, regulärer Beginn in Jahrgang 7", Arrays_1.Arrays.asList("GE", "GM", "GY", "R", "SG", "SK"), null, "I", 1, 3, "07", true, false, false, false, false, false, true, null, null);
    static I8 = new ZulaessigesFach("I8", 104, "I8", "Italienisch, regulärer Beginn in Jahrgang 8", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "R", "SG", "SK", "SR"), null, "I", 1, 3, "08", true, false, false, false, false, false, true, null, null);
    static I9 = new ZulaessigesFach("I9", 105, "I9", "Italienisch, regulärer Beginn in Jahrgang 9", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "R", "SG", "SK", "SR"), null, "I", 1, 3, "09", true, false, false, false, false, false, true, null, null);
    static IE = new ZulaessigesFach("IE", 106, "IE", "Individuelles Lernen (Ergänzungsstunden, Ganztag- und Betreuungsangebote)", Arrays_1.Arrays.asList("GE", "GM", "GY", "H", "PS", "R", "SG", "SK", "SR", "V"), null, "IE", null, null, null, false, false, false, false, false, false, true, null, null);
    static IF = new ZulaessigesFach("IF", 107, "IF", "Informatik", Arrays_1.Arrays.asList("BK", "GE", "GM", "GY", "H", "PS", "R", "S", "SB", "SG", "SK", "SR", "V", "WB"), null, "IF", 3, 11, null, false, false, false, false, false, false, true, null, null);
    static IH = new ZulaessigesFach("IH", 108, "IH", "Herkunftssprache anstelle einer Pflichtfremdsprache - Italienisch", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "R", "S", "SG", "SK", "SR"), Arrays_1.Arrays.asList("R"), "IH", null, null, null, true, true, false, true, false, false, true, null, null);
    static IK = new ZulaessigesFach("IK", 109, "IK", "Individuelles Lernen (dem Kernstundenkontingent entnommen)", Arrays_1.Arrays.asList("GE", "GM", "GY", "H", "PS", "R", "SG", "SK", "SR", "V"), null, "IK", null, null, null, false, false, false, false, false, false, true, null, null);
    static IL = new ZulaessigesFach("IL", 110, "IL", "Islamische Religionslehre", Arrays_1.Arrays.asList("BK", "G", "GE", "GM", "GY", "H", "PS", "R", "S", "SB", "SG", "SK", "SR", "V", "WB"), null, "IL", null, 8, null, false, false, false, false, false, false, true, null, null);
    static IM = new ZulaessigesFach("IM", 111, "IM", "Unterricht in der Herkunftssprache - Italienisch", Arrays_1.Arrays.asList("G", "GE", "GM", "GY", "H", "PS", "R", "S", "SG", "SK", "SR", "V"), null, "IM", null, null, null, true, true, false, false, false, false, true, null, null);
    static IN = new ZulaessigesFach("IN", 112, "IN", "Instrumentalpraktischer Grundkurs", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "SG"), null, "IN", null, 5, null, false, false, false, false, false, true, true, null, null);
    static IQ = new ZulaessigesFach("IQ", 113, "IQ", "Italienisch, außerhalb des regulären Fachunterrichts", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "R", "SG", "SK", "SR"), null, "I", null, null, null, false, false, false, false, false, false, true, null, null);
    static JH = new ZulaessigesFach("JH", 114, "JH", "Herkunftssprache anstelle einer Pflichtfremdsprache - Niederländisch", Arrays_1.Arrays.asList("GE", "GM", "GY", "H", "PS", "R", "S", "SG", "SK", "SR"), null, "N", null, null, null, true, true, false, true, false, false, true, null, null);
    static K = new ZulaessigesFach("K", 115, "K", "Japanisch", Arrays_1.Arrays.asList("BK", "SB", "WB"), null, "K", 1, 3, null, true, false, false, false, false, false, true, null, null);
    static K0 = new ZulaessigesFach("K0", 116, "K0", "Japanisch, regulärer Beginn in der Einführungsphase", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "SG"), null, "K", 1, 3, "EF", true, false, false, false, false, true, true, null, null);
    static K1 = new ZulaessigesFach("K1", 117, "K1", "Japanisch, regulärer Beginn in Jahrgang 11", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "SG"), null, "K", 1, 3, "11", true, false, false, false, false, true, true, null, 2012);
    static K5 = new ZulaessigesFach("K5", 118, "K5", "Japanisch, regulärer Beginn in Jahrgang 5", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "SG", "SK"), null, "K", 1, 3, "05", true, false, false, false, false, false, true, null, null);
    static K6 = new ZulaessigesFach("K6", 119, "K6", "Japanisch, regulärer Beginn in Jahrgang 6", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "SG", "SK"), null, "K", 1, 3, "06", true, false, false, false, false, false, true, null, null);
    static K7 = new ZulaessigesFach("K7", 120, "K7", "Japanisch, regulärer Beginn in Jahrgang 7", Arrays_1.Arrays.asList("GE", "GM", "GY", "SG", "SK"), null, "K", 1, 3, "07", true, false, false, false, false, false, true, null, null);
    static K8 = new ZulaessigesFach("K8", 121, "K8", "Japanisch, regulärer Beginn in Jahrgang 8", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "SG", "SK"), null, "K", 1, 3, "08", true, false, false, false, false, false, true, null, null);
    static K9 = new ZulaessigesFach("K9", 122, "K9", "Japanisch, regulärer Beginn in Jahrgang 9", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "SG", "SK"), null, "K", 1, 3, "09", true, false, false, false, false, false, true, null, null);
    static KN = new ZulaessigesFach("KN", 123, "KN", "Katholische Religionslehre (konfessionell kooperativ)", Arrays_1.Arrays.asList("BK", "G", "GE", "GM", "GY", "H", "PS", "R", "S", "SB", "SG", "SK", "SR", "V", "WB"), null, "KR", null, null, null, false, false, false, false, true, false, true, null, null);
    static KO = new ZulaessigesFach("KO", 124, "KO", "Kommunikation", Arrays_1.Arrays.asList("BK", "SB"), null, "KO", null, null, null, false, false, false, false, false, false, true, null, null);
    static KQ = new ZulaessigesFach("KQ", 125, "KQ", "Japanisch, außerhalb des regulären Fachunterrichts", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "SG", "SK"), null, "KQ", null, null, null, true, false, true, false, false, false, true, null, null);
    static KR = new ZulaessigesFach("KR", 126, "KR", "Katholische Religionslehre", Arrays_1.Arrays.asList("BK", "G", "GE", "GM", "GY", "H", "PS", "R", "S", "SB", "SG", "SK", "SR", "V", "WB"), null, "KR", null, 8, null, false, false, false, false, false, false, true, null, null);
    static KS = new ZulaessigesFach("KS", 127, "KS", "Kurzschrift", Arrays_1.Arrays.asList("BK", "SB"), null, "KS", null, null, null, false, false, false, false, false, false, true, null, null);
    static KU = new ZulaessigesFach("KU", 128, "KU", "Kunst", Arrays_1.Arrays.asList("BK", "G", "GE", "GM", "GY", "H", "PS", "R", "S", "SB", "SG", "SK", "SR", "V", "WB"), null, "KU", 1, 4, null, false, false, false, false, false, false, true, null, null);
    static L = new ZulaessigesFach("L", 129, "L", "Lateinisch", Arrays_1.Arrays.asList("BK", "FW", "H", "S", "SB", "WB"), null, "L", 1, 3, null, true, false, false, false, false, false, true, null, null);
    static L0 = new ZulaessigesFach("L0", 130, "L0", "Lateinisch, regulärer Beginn in der Einführungsphase", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "SG"), null, "L", 1, 3, "EF", true, false, false, false, false, true, true, null, null);
    static L1 = new ZulaessigesFach("L1", 131, "L1", "Lateinisch, regulärer Beginn in Jahrgang 11", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "SG"), null, "L", 1, 3, "11", true, false, false, false, false, true, true, null, 2012);
    static L5 = new ZulaessigesFach("L5", 132, "L5", "Lateinisch, regulärer Beginn in Jahrgang 5", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "R", "SG", "SK", "SR"), null, "L", 1, 3, "05", true, false, false, false, false, false, true, null, null);
    static L6 = new ZulaessigesFach("L6", 133, "L6", "Lateinisch, regulärer Beginn in Jahrgang 6", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "R", "SG", "SK", "SR"), null, "L", 1, 3, "06", true, false, false, false, false, false, true, null, null);
    static L7 = new ZulaessigesFach("L7", 134, "L7", "Lateinisch, regulärer Beginn in Jahrgang 7", Arrays_1.Arrays.asList("GE", "GM", "GY", "R", "SG", "SK"), null, "L", 1, 3, "07", true, false, false, false, false, false, true, null, null);
    static L8 = new ZulaessigesFach("L8", 135, "L8", "Lateinisch, regulärer Beginn in Jahrgang 8", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "R", "SG", "SK", "SR"), null, "L", 1, 3, "08", true, false, false, false, false, false, true, null, null);
    static L9 = new ZulaessigesFach("L9", 136, "L9", "Lateinisch, regulärer Beginn in Jahrgang 9", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "R", "SG", "SK", "SR"), null, "L", 1, 3, "09", true, false, false, false, false, false, true, null, null);
    static LH = new ZulaessigesFach("LH", 137, "LH", "Herkunftssprache anstelle einer Pflichtfremdsprache - Albanisch", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "R", "S", "SG", "SK", "SR"), Arrays_1.Arrays.asList("R"), "LH", null, null, null, true, true, false, true, false, false, true, null, null);
    static LI = new ZulaessigesFach("LI", 138, "LI", "Literatur", Arrays_1.Arrays.asList("BK", "GE", "GM", "GY", "PS", "SB", "SG", "WB"), null, "LI", null, 5, null, false, false, false, false, false, false, true, null, null);
    static LM = new ZulaessigesFach("LM", 139, "LM", "Unterricht in der Herkunftssprache - Albanisch", Arrays_1.Arrays.asList("G", "GE", "GM", "GY", "H", "PS", "R", "S", "SG", "SK", "SR", "V"), null, "LM", null, null, null, true, true, false, false, false, false, true, null, null);
    static LQ = new ZulaessigesFach("LQ", 140, "LQ", "Lateinisch, außerhalb des regulären Fachunterrichts", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "R", "SG", "SK", "SR"), null, "LQ", null, null, null, true, false, true, false, false, false, true, null, null);
    static M = new ZulaessigesFach("M", 141, "M", "Mathematik", Arrays_1.Arrays.asList("BK", "G", "GE", "GM", "GY", "H", "PS", "R", "S", "SB", "SG", "SK", "SR", "V", "WB"), null, "M", 3, 9, null, false, false, false, false, false, false, true, null, null);
    static MB = new ZulaessigesFach("MB", 142, "MB", "Religionsunterricht der mennonitischen Brüdergemeinden in NRW als Schulversuch", Arrays_1.Arrays.asList("G"), null, "MB", null, null, null, false, false, false, false, false, false, true, null, null);
    static MD = new ZulaessigesFach("MD", 143, "MD", "Medienerziehung", Arrays_1.Arrays.asList("BK", "SB"), null, "MD", null, null, null, false, false, false, false, false, false, true, null, null);
    static ME = new ZulaessigesFach("ME", 144, "ME", "Mechanik", Arrays_1.Arrays.asList("BK", "SB"), null, "ME", null, null, null, false, false, false, false, false, false, true, null, null);
    static MH = new ZulaessigesFach("MH", 145, "MH", "Herkunftssprache anstelle einer Pflichtfremdsprache - Mazedonisch", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "R", "S", "SG", "SK", "SR"), Arrays_1.Arrays.asList("R"), "MH", null, null, null, true, true, false, true, false, false, true, null, null);
    static MM = new ZulaessigesFach("MM", 146, "MM", "Unterricht in der Herkunftssprache - Mazedonisch", Arrays_1.Arrays.asList("G", "GE", "GM", "GY", "H", "PS", "R", "S", "SG", "SK", "SR", "V"), null, "MM", null, null, null, true, true, false, false, false, false, true, null, null);
    static MP = new ZulaessigesFach("MP", 147, "MP", "Meß- und Prüftechnik", Arrays_1.Arrays.asList("BK", "SB"), null, "MP", null, null, null, false, false, false, false, false, false, true, null, null);
    static MU = new ZulaessigesFach("MU", 148, "MU", "Musik", Arrays_1.Arrays.asList("BK", "G", "GE", "GM", "GY", "H", "PS", "R", "S", "SB", "SG", "SK", "SR", "V", "WB"), null, "MU", 1, 4, null, false, false, false, false, false, false, true, null, null);
    static MW = new ZulaessigesFach("MW", 149, "MW", "Methodik des wissenschaftl. orientierten Arbeitens", Arrays_1.Arrays.asList("BK", "SB"), null, "MW", null, null, null, false, false, false, false, false, false, true, null, null);
    static MX = new ZulaessigesFach("MX", 150, "MX", "Spezielle sonderpädagogische Maßnahme", Arrays_1.Arrays.asList("S", "SG"), null, "MX", null, null, null, false, false, false, false, false, false, true, null, null);
    static MY = new ZulaessigesFach("MY", 151, "MY", "Fächerübergreifender Unterricht in SI und SII (Berufspraxisstufe)", Arrays_1.Arrays.asList("S"), null, "MY", null, null, null, false, false, false, false, false, false, true, null, null);
    static N = new ZulaessigesFach("N", 152, "N", "Niederländisch", Arrays_1.Arrays.asList("BK", "H", "SB", "V", "WB"), Arrays_1.Arrays.asList("H"), "N", 1, 3, null, true, false, false, false, false, false, true, null, null);
    static N0 = new ZulaessigesFach("N0", 153, "N0", "Niederländisch, regulärer Beginn in der Einführungsphase", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "SG"), null, "N", 1, 3, "EF", true, false, false, false, false, true, true, null, null);
    static N1 = new ZulaessigesFach("N1", 154, "N1", "Niederländisch, regulärer Beginn in Jahrgang 11", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "SG"), null, "N", 1, 3, "11", true, false, false, false, false, true, true, null, 2012);
    static N5 = new ZulaessigesFach("N5", 155, "N5", "Niederländisch, regulärer Beginn in Jahrgang 5", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "R", "SG", "SK", "SR"), null, "N", 1, 3, "05", true, false, false, false, false, false, true, null, null);
    static N6 = new ZulaessigesFach("N6", 156, "N6", "Niederländisch, regulärer Beginn in Jahrgang 6", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "R", "SG", "SK", "SR"), null, "N", 1, 3, "06", true, false, false, false, false, false, true, null, null);
    static N7 = new ZulaessigesFach("N7", 157, "N7", "Niederländisch, regulärer Beginn in Jahrgang 7", Arrays_1.Arrays.asList("GE", "GM", "GY", "R", "SG", "SK"), null, "N", 1, 3, "07", true, false, false, false, false, false, true, null, null);
    static N8 = new ZulaessigesFach("N8", 158, "N8", "Niederländisch, regulärer Beginn in Jahrgang 8", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "R", "SG", "SK", "SR"), null, "N", 1, 3, "08", true, false, false, false, false, false, true, null, null);
    static N9 = new ZulaessigesFach("N9", 159, "N9", "Niederländisch, regulärer Beginn in Jahrgang 9", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "R", "SG", "SK", "SR"), null, "N", 1, 3, "09", true, false, false, false, false, false, true, null, null);
    static NH = new ZulaessigesFach("NH", 160, "NH", "Herkunftssprache anstelle einer Pflichtfremdsprache - Polnisch", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "R", "S", "SG", "SK", "SR"), Arrays_1.Arrays.asList("R"), "NH", null, null, null, true, true, false, true, false, false, true, null, null);
    static NM = new ZulaessigesFach("NM", 161, "NM", "Unterricht in der Herkunftssprache - Niederländisch", Arrays_1.Arrays.asList("BK", "G", "GE", "GM", "GY", "H", "PS", "R", "S", "SG", "SK", "SR", "V"), null, "NM", null, null, null, true, true, false, false, false, false, true, null, null);
    static NQ = new ZulaessigesFach("NQ", 162, "NQ", "Niederländisch, außerhalb des regulären Fachunterrichts", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "R", "SG", "SK", "SR"), null, "NQ", null, null, null, true, false, true, false, false, false, true, null, null);
    static NW = new ZulaessigesFach("NW", 163, "NW", "Naturwissenschaften", Arrays_1.Arrays.asList("BK", "GE", "GM", "PS", "S", "SB", "SG", "SK", "SR"), null, "NW", null, 10, null, false, false, false, false, false, false, true, null, null);
    static O = new ZulaessigesFach("O", 164, "O", "Portugiesisch", Arrays_1.Arrays.asList("WB"), Arrays_1.Arrays.asList("R"), "O", 1, 3, null, true, false, false, false, false, false, true, null, null);
    static O0 = new ZulaessigesFach("O0", 165, "O0", "Portugiesisch, regulärer Beginn in der Einführungsphase", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "SG"), null, "O", 1, 3, "EF", true, false, false, false, false, true, true, null, null);
    static O1 = new ZulaessigesFach("O1", 166, "O1", "Portugiesisch, regulärer Beginn in Jahrgang 11", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "SG"), null, "O", 1, 3, "11", true, false, false, false, false, true, true, null, 2012);
    static O5 = new ZulaessigesFach("O5", 167, "O5", "Portugiesisch, regulärer Beginn in Jahrgang 5", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "R", "SG", "SK", "SR"), null, "O", 1, 3, "05", true, false, false, false, false, false, true, null, null);
    static O6 = new ZulaessigesFach("O6", 168, "O6", "Portugiesisch, regulärer Beginn in Jahrgang 6", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "R", "SG", "SK", "SR"), null, "O", 1, 3, "06", true, false, false, false, false, false, true, null, null);
    static O7 = new ZulaessigesFach("O7", 169, "O7", "Portugiesisch, regulärer Beginn in Jahrgang 7", Arrays_1.Arrays.asList("GE", "GM", "GY", "R", "SG", "SK"), null, "O", 1, 3, "07", true, false, false, false, false, false, true, null, null);
    static O8 = new ZulaessigesFach("O8", 170, "O8", "Portugiesisch, regulärer Beginn in Jahrgang 8", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "R", "SG", "SK", "SR"), null, "O", 1, 3, "08", true, false, false, false, false, false, true, null, null);
    static O9 = new ZulaessigesFach("O9", 171, "O9", "Portugiesisch, regulärer Beginn in Jahrgang 9", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "R", "SG", "SK", "SR"), null, "O", 1, 3, "09", true, false, false, false, false, false, true, null, null);
    static OH = new ZulaessigesFach("OH", 172, "OH", "Herkunftssprache anstelle einer Pflichtfremdsprache - Portugiesisch", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "R", "S", "SG", "SK", "SR"), Arrays_1.Arrays.asList("R"), "OH", null, null, null, true, true, false, true, false, false, true, null, null);
    static OL = new ZulaessigesFach("OL", 173, "OL", "Organisationslehre/Büroorganisation", Arrays_1.Arrays.asList("BK", "SB"), null, "OL", null, null, null, false, false, false, false, false, false, true, null, null);
    static OM = new ZulaessigesFach("OM", 174, "OM", "Unterricht in der Herkunftssprache - Portugiesisch", Arrays_1.Arrays.asList("G", "GE", "GM", "GY", "H", "PS", "R", "S", "SG", "SK", "SR", "V"), null, "OM", null, null, null, true, true, false, false, false, false, true, null, null);
    static OQ = new ZulaessigesFach("OQ", 175, "OQ", "Portugiesisch, außerhalb des regulären Fachunterrichts", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "R", "SG", "SK", "SR"), null, "OQ", null, null, null, false, false, false, false, false, false, true, null, null);
    static OR = new ZulaessigesFach("OR", 176, "OR", "Orthodoxe Religionslehre", Arrays_1.Arrays.asList("BK", "G", "GE", "GM", "GY", "H", "PS", "R", "S", "SB", "SG", "SK", "SR", "V", "WB"), null, "OR", null, 8, null, false, false, false, false, false, false, true, null, null);
    static PA = new ZulaessigesFach("PA", 177, "PA", "Pädagogik/ Erziehungswissenschaft", Arrays_1.Arrays.asList("BK", "GE", "GM", "GY", "H", "PS", "R", "S", "SB", "SG", "SK", "SR", "WB"), null, "PA", 2, 6, null, false, false, false, false, false, false, true, null, null);
    static PH = new ZulaessigesFach("PH", 178, "PH", "Physik", Arrays_1.Arrays.asList("BK", "GE", "GM", "GY", "H", "PS", "R", "S", "SB", "SG", "SK", "SR", "V", "WB"), null, "PH", 3, 10, null, false, false, false, false, false, false, true, null, null);
    static PK = new ZulaessigesFach("PK", 179, "PK", "Politik", Arrays_1.Arrays.asList("BK", "GE", "GM", "GY", "H", "PS", "R", "S", "SB", "SG", "SK", "SR", "V", "WB"), null, "PK", null, 6, null, false, false, false, false, false, false, true, null, null);
    static PL = new ZulaessigesFach("PL", 180, "PL", "Philosophie", Arrays_1.Arrays.asList("BK", "GE", "GM", "GY", "PS", "S", "SB", "SG", "SK", "WB"), null, "PL", 2, 7, null, false, false, false, false, false, false, true, null, null);
    static PM = new ZulaessigesFach("PM", 181, "PM", "Unterricht in der Herkunftssprache - Polnisch", Arrays_1.Arrays.asList("G", "GE", "GM", "GY", "H", "PS", "R", "S", "SG", "SK", "SR", "V"), null, "PM", null, null, null, true, true, false, false, false, false, true, null, null);
    static PP = new ZulaessigesFach("PP", 182, "PP", "Praktische Philosophie", Arrays_1.Arrays.asList("BK", "GE", "GM", "GY", "H", "PS", "R", "S", "SB", "SG", "SK", "SR", "V", "WB"), null, "PP", null, null, null, false, false, false, false, false, false, true, null, null);
    static PS = new ZulaessigesFach("PS", 183, "PS", "Psychologie", Arrays_1.Arrays.asList("BK", "GE", "GM", "GY", "H", "PS", "R", "S", "SB", "SG", "SK", "SR", "WB"), null, "PS", 2, 6, null, false, false, false, false, false, false, true, null, null);
    static PU = new ZulaessigesFach("PU", 184, "PU", "Fachübergreifender Unterricht", Arrays_1.Arrays.asList("BK", "SB"), null, "PU", null, null, null, false, false, false, false, false, false, true, null, null);
    static PW = new ZulaessigesFach("PW", 185, "PW", "Personalwirtschaft und Soziologie/Politik", Arrays_1.Arrays.asList("BK", "SB"), null, "PW", null, null, null, false, false, false, false, false, false, true, null, null);
    static PX = new ZulaessigesFach("PX", 186, "PX", "Projektkurs (mit einem oder zwei Leitfächern)", Arrays_1.Arrays.asList("GE", "GY", "SG", "WB"), null, "PX", null, 14, null, false, false, false, false, false, false, true, null, null);
    static POE = new ZulaessigesFach("POE", 187, "PÖ", "Politik/Ökonomische Grundbildung", Arrays_1.Arrays.asList("R", "SR"), Arrays_1.Arrays.asList("R", "R", "R00", "R"), "PÖ", null, null, null, false, false, false, false, false, false, true, null, null);
    static QH = new ZulaessigesFach("QH", 188, "QH", "Herkunftssprache anstelle einer Pflichtfremdsprache - Farsi", Arrays_1.Arrays.asList("GE", "GM", "GY", "H", "PS", "R", "S", "SG", "SK", "SR"), null, "QH", null, null, null, true, true, false, true, false, false, true, null, null);
    static QM = new ZulaessigesFach("QM", 189, "QM", "Unterricht in der Herkunftssprache - Farsi", Arrays_1.Arrays.asList("BK", "G", "GE", "GM", "GY", "H", "PS", "R", "S", "SG", "SK", "SR", "V"), null, "QM", null, null, null, true, true, false, false, false, false, true, null, null);
    static R = new ZulaessigesFach("R", 190, "R", "Russisch", Arrays_1.Arrays.asList("BK", "FW", "H", "S", "SB", "WB"), Arrays_1.Arrays.asList("H"), "R", 1, 3, null, true, false, false, false, false, false, true, null, null);
    static R0 = new ZulaessigesFach("R0", 191, "R0", "Russisch, regulärer Beginn in der Einführungsphase", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "SG"), null, "R", 1, 3, "EF", true, false, false, false, false, true, true, null, null);
    static R1 = new ZulaessigesFach("R1", 192, "R1", "Russisch, regulärer Beginn in Jahrgang 11", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "SG"), null, "R", 1, 3, "11", true, false, false, false, false, true, true, null, 2012);
    static R5 = new ZulaessigesFach("R5", 193, "R5", "Russisch, regulärer Beginn in Jahrgang 5", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "R", "SG", "SK", "SR"), null, "R", 1, 3, "05", true, false, false, false, false, false, true, null, null);
    static R6 = new ZulaessigesFach("R6", 194, "R6", "Russisch, regulärer Beginn in Jahrgang 6", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "R", "SG", "SK", "SR"), null, "R", 1, 3, "06", true, false, false, false, false, false, true, null, null);
    static R7 = new ZulaessigesFach("R7", 195, "R7", "Russisch, regulärer Beginn in Jahrgang 7", Arrays_1.Arrays.asList("GE", "GM", "GY", "R", "SG", "SK"), null, "R", 1, 3, "07", true, false, false, false, false, false, true, null, null);
    static R8 = new ZulaessigesFach("R8", 196, "R8", "Russisch, regulärer Beginn in Jahrgang 8", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "R", "SG", "SK", "SR"), null, "R", 1, 3, "08", true, false, false, false, false, false, true, null, null);
    static R9 = new ZulaessigesFach("R9", 197, "R9", "Russisch, regulärer Beginn in Jahrgang 9", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "R", "SG", "SK", "SR"), null, "R", 1, 3, "09", true, false, false, false, false, false, true, null, null);
    static RE = new ZulaessigesFach("RE", 198, "RE", "Rechnungswesen", Arrays_1.Arrays.asList("BK", "SB"), null, "RE", null, null, null, false, false, false, false, false, false, true, null, null);
    static RH = new ZulaessigesFach("RH", 199, "RH", "Herkunftssprache anstelle einer Pflichtfremdsprache - Russisch", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "R", "S", "SG", "SK", "SR"), Arrays_1.Arrays.asList("R"), "RH", null, null, null, true, true, false, true, false, false, true, null, null);
    static RK = new ZulaessigesFach("RK", 200, "RK", "Rechtskunde", Arrays_1.Arrays.asList("GE", "GY", "SG", "SK", "WB"), null, "RK", 2, 6, null, false, false, false, false, false, false, true, null, null);
    static RM = new ZulaessigesFach("RM", 201, "RM", "Unterricht in der Herkunftssprache - Russisch", Arrays_1.Arrays.asList("G", "GE", "GM", "GY", "H", "PS", "R", "S", "SG", "SK", "SR", "V"), null, "RM", null, null, null, true, true, false, false, false, false, true, null, null);
    static RQ = new ZulaessigesFach("RQ", 202, "RQ", "Russisch, außerhalb des regulären Fachunterrichts", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "R", "SG", "SK", "SR"), null, "RQ", null, null, null, true, false, true, false, false, false, true, null, null);
    static RW = new ZulaessigesFach("RW", 203, "RW", "Recht und Verwaltung", Arrays_1.Arrays.asList("BK", "SB"), null, "RW", null, null, null, false, false, false, false, false, false, true, null, null);
    static S = new ZulaessigesFach("S", 204, "S", "Spanisch", Arrays_1.Arrays.asList("BK", "S", "SB", "WB"), Arrays_1.Arrays.asList("R"), "S", 1, 3, null, true, false, false, false, false, false, true, null, null);
    static S0 = new ZulaessigesFach("S0", 205, "S0", "Spanisch, regulärer Beginn in der Einführungsphase", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "SG"), null, "S", 1, 3, "EF", true, false, false, false, false, true, true, null, null);
    static S1 = new ZulaessigesFach("S1", 206, "S1", "Spanisch, regulärer Beginn in Jahrgang 11", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "SG"), null, "S", 1, 3, "11", true, false, false, false, false, true, true, null, 2012);
    static S3 = new ZulaessigesFach("S3", 207, "S3", "Sport für Jungen", Arrays_1.Arrays.asList("G", "GE", "GM", "GY", "H", "PS", "R", "S", "SG", "SK", "SR", "V"), null, "S3", null, 12, null, false, false, false, false, false, false, true, null, null);
    static S4 = new ZulaessigesFach("S4", 208, "S4", "Sport für Mädchen", Arrays_1.Arrays.asList("G", "GE", "GM", "GY", "H", "PS", "R", "S", "SG", "SK", "SR", "V"), null, "S4", null, 12, null, false, false, false, false, false, false, true, null, null);
    static S5 = new ZulaessigesFach("S5", 209, "S5", "Spanisch, regulärer Beginn in Jahrgang 5", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "R", "SG", "SK", "SR"), null, "S", 1, 3, "05", true, false, false, false, false, false, true, null, null);
    static S6 = new ZulaessigesFach("S6", 210, "S6", "Spanisch, regulärer Beginn in Jahrgang 6", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "R", "SG", "SK", "SR"), null, "S", 1, 3, "06", true, false, false, false, false, false, true, null, null);
    static S7 = new ZulaessigesFach("S7", 211, "S7", "Spanisch, regulärer Beginn in Jahrgang 7", Arrays_1.Arrays.asList("GE", "GM", "GY", "R", "SG", "SK"), null, "S", 1, 3, "07", true, false, false, false, false, false, true, null, null);
    static S8 = new ZulaessigesFach("S8", 212, "S8", "Spanisch, regulärer Beginn in Jahrgang 8", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "R", "SG", "SK", "SR"), null, "S", 1, 3, "08", true, false, false, false, false, false, true, null, null);
    static S9 = new ZulaessigesFach("S9", 213, "S9", "Spanisch, regulärer Beginn in Jahrgang 9", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "R", "SG", "SK", "SR"), null, "S", 1, 3, "09", true, false, false, false, false, false, true, null, null);
    static SE = new ZulaessigesFach("SE", 214, "SE", "Softwareentwicklung und -engineering", Arrays_1.Arrays.asList("BK", "SB"), null, "SE", null, null, null, false, false, false, false, false, false, true, null, null);
    static SG = new ZulaessigesFach("SG", 215, "SG", "sonderpädag. Förderung für Schüler/-innen mit sonderpädag. Förderbedarf", Arrays_1.Arrays.asList("BK", "G", "GE", "GM", "GY", "H", "PS", "R", "SB", "SG", "SK", "SR", "V"), null, "SG", null, null, null, false, false, false, false, false, false, true, null, null);
    static SH = new ZulaessigesFach("SH", 216, "SH", "Herkunftssprache anstelle einer Pflichtfremdsprache - Spanisch", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "R", "S", "SG", "SK", "SR"), Arrays_1.Arrays.asList("R"), "SH", null, null, null, true, true, false, true, false, false, true, null, null);
    static SI = new ZulaessigesFach("SI", 217, "SI", "Spiel", Arrays_1.Arrays.asList("BK", "S", "SB"), null, "SI", null, null, null, false, false, false, false, false, false, true, null, null);
    static SL = new ZulaessigesFach("SL", 218, "SL", "Soziologie", Arrays_1.Arrays.asList("BK", "SB", "WB"), null, "SL", null, 6, null, false, false, false, false, false, false, true, null, null);
    static SM = new ZulaessigesFach("SM", 219, "SM", "Unterricht in der Herkunftssprache - Spanisch", Arrays_1.Arrays.asList("G", "GE", "GM", "GY", "H", "PS", "R", "S", "SG", "SK", "SR", "V"), null, "SM", null, null, null, true, true, false, false, false, false, true, null, null);
    static SP = new ZulaessigesFach("SP", 220, "SP", "Sport", Arrays_1.Arrays.asList("BK", "G", "GE", "GM", "GY", "H", "PS", "R", "S", "SB", "SG", "SK", "SR", "V", "WB"), null, "SP", null, 12, null, false, false, false, false, false, false, true, null, null);
    static SQ = new ZulaessigesFach("SQ", 221, "SQ", "Spanisch, außerhalb des regulären Fachunterrichts", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "R", "SG", "SK", "SR"), null, "SQ", null, null, null, true, false, true, false, false, false, true, null, null);
    static SR = new ZulaessigesFach("SR", 222, "SR", "Sonstige Fremdsprachen", Arrays_1.Arrays.asList("BK", "FW", "GE", "GM", "GY", "H", "PS", "R", "S", "SB", "SG", "SK", "SR", "V", "WB"), null, "SR", null, null, null, true, false, false, false, false, false, true, null, null);
    static SU = new ZulaessigesFach("SU", 223, "SU", "Sachunterricht", Arrays_1.Arrays.asList("G", "PS", "S", "V"), null, "SU", null, null, null, false, false, false, false, false, false, true, null, null);
    static SW = new ZulaessigesFach("SW", 224, "SW", "Sozialwissenschaften", Arrays_1.Arrays.asList("BK", "GE", "GM", "GY", "H", "PS", "R", "S", "SB", "SG", "SK", "SR", "V", "WB"), null, "SW", 2, 6, null, false, false, false, false, false, false, true, null, null);
    static SZ = new ZulaessigesFach("SZ", 225, "SZ", "Sozialwissenschaften/Wirtschaft", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "SG", "SK", "WB"), null, "SZ", null, null, null, false, false, false, false, false, false, true, null, null);
    static T = new ZulaessigesFach("T", 226, "T", "Türkisch", Arrays_1.Arrays.asList("BK", "H", "SB", "WB"), Arrays_1.Arrays.asList("H"), "T", 1, 3, null, true, false, false, false, false, false, true, null, null);
    static T0 = new ZulaessigesFach("T0", 227, "T0", "Türkisch, regulärer Beginn in der Einführungsphase", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "SG"), null, "T", 1, 3, "EF", true, false, false, false, false, true, true, null, null);
    static T1 = new ZulaessigesFach("T1", 228, "T1", "Türkisch, regulärer Beginn in Jahrgang 11", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "SG"), null, "T", 1, 3, "11", true, false, false, false, false, true, true, null, 2012);
    static T5 = new ZulaessigesFach("T5", 229, "T5", "Türkisch, regulärer Beginn in Jahrgang 5", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "R", "SG", "SK", "SR"), null, "T", 1, 3, "05", true, false, false, false, false, false, true, null, null);
    static T6 = new ZulaessigesFach("T6", 230, "T6", "Türkisch, regulärer Beginn in Jahrgang 6", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "R", "SG", "SK", "SR"), null, "T", 1, 3, "06", true, false, false, false, false, false, true, null, null);
    static T7 = new ZulaessigesFach("T7", 231, "T7", "Türkisch, regulärer Beginn in Jahrgang 7", Arrays_1.Arrays.asList("GE", "GM", "GY", "R", "SG", "SK"), null, "T", 1, 3, "07", true, false, false, false, false, false, true, null, null);
    static T8 = new ZulaessigesFach("T8", 232, "T8", "Türkisch, regulärer Beginn in Jahrgang 8", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "R", "SG", "SK", "SR"), null, "T", 1, 3, "08", true, false, false, false, false, false, true, null, null);
    static T9 = new ZulaessigesFach("T9", 233, "T9", "Türkisch, regulärer Beginn in Jahrgang 9", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "R", "SG", "SK", "SR"), null, "T", 1, 3, "09", true, false, false, false, false, false, true, null, null);
    static TC = new ZulaessigesFach("TC", 234, "TC", "Technik", Arrays_1.Arrays.asList("GE", "GY", "PS", "R", "S", "SG", "SK", "SR", "WB"), Arrays_1.Arrays.asList("GY", "R", "R"), "TC", 3, 11, null, false, false, false, false, false, false, true, null, null);
    static TG = new ZulaessigesFach("TG", 235, "TG", "Technische Grundbildung", Arrays_1.Arrays.asList("BK", "SB"), null, "TG", null, null, null, false, false, false, false, false, false, true, null, null);
    static TH = new ZulaessigesFach("TH", 236, "TH", "Herkunftssprache anstelle einer Pflichtfremdsprache - Türkisch", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "R", "S", "SG", "SK", "SR"), Arrays_1.Arrays.asList("R"), "TH", null, null, null, true, true, false, true, false, false, true, null, null);
    static TI = new ZulaessigesFach("TI", 237, "TI", "Technische Informatik", Arrays_1.Arrays.asList("BK", "SB"), null, "TI", null, null, null, false, false, false, false, false, false, true, null, null);
    static TM = new ZulaessigesFach("TM", 238, "TM", "Unterricht in der Herkunftssprache - Türkisch", Arrays_1.Arrays.asList("G", "GE", "GM", "GY", "H", "PS", "R", "S", "SG", "SK", "SR", "V"), null, "TM", null, null, null, true, true, false, false, false, false, true, null, null);
    static TQ = new ZulaessigesFach("TQ", 239, "TQ", "Türkisch, außerhalb des regulären Fachunterrichts", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "R", "SG", "SK", "SR"), null, "T", null, null, null, true, false, false, false, false, false, true, null, null);
    static TV = new ZulaessigesFach("TV", 240, "TV", "Textverarbeitung", Arrays_1.Arrays.asList("BK", "SB"), null, "TV", null, null, null, false, false, false, false, false, false, true, null, null);
    static TX = new ZulaessigesFach("TX", 241, "TX", "Textilgestaltung", Arrays_1.Arrays.asList("GE", "GM", "GY", "H", "PS", "R", "S", "SG", "SK", "SR", "V"), null, "TX", null, null, null, false, false, false, false, false, false, true, null, null);
    static TZ = new ZulaessigesFach("TZ", 242, "TZ", "Technisches Zeichnen / Fachzeichnen", Arrays_1.Arrays.asList("BK", "SB"), null, "TZ", null, null, null, false, false, false, false, false, false, true, null, null);
    static UH = new ZulaessigesFach("UH", 243, "UH", "Herkunftssprache anstelle einer Pflichtfremdsprache - Russisch", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "R", "S", "SG", "SK", "SR"), Arrays_1.Arrays.asList("R"), "UH", null, null, null, true, true, false, true, false, false, true, null, null);
    static UM = new ZulaessigesFach("UM", 244, "UM", "Unterricht in der Herkunftssprache - Rumänisch", Arrays_1.Arrays.asList("BK", "G", "GE", "GM", "GY", "H", "PS", "R", "S", "SG", "SK", "SR", "V"), null, "UM", null, null, null, true, true, false, false, false, false, true, null, null);
    static UU = new ZulaessigesFach("UU", 245, "UU", "fächerübergreifender Unterricht (Sprache/Sachunt./Mathematik/Förderunt.)", Arrays_1.Arrays.asList("G", "PS", "S", "V"), null, "UU", null, null, null, false, false, false, false, false, false, true, null, null);
    static UW = new ZulaessigesFach("UW", 246, "UW", "Unterweisung", Arrays_1.Arrays.asList("GE", "GM", "PS", "SK"), null, "UW", null, null, null, false, false, false, false, false, false, true, null, null);
    static VE = new ZulaessigesFach("VE", 247, "VE", "Verwaltungskunde", Arrays_1.Arrays.asList("BK", "SB"), null, "VE", null, null, null, false, false, false, false, false, false, true, null, null);
    static VF = new ZulaessigesFach("VF", 248, "VF", "Fächer im genehmigten Schulversuch und sonstige Fächer", Arrays_1.Arrays.asList("G", "GE", "GM", "GY", "H", "PS", "R", "S", "SG", "SK", "SR", "V", "WB"), null, "VF", null, null, null, false, false, false, false, false, false, true, null, null);
    static VH = new ZulaessigesFach("VH", 249, "VH", "Herkunftssprache anstelle einer Pflichtfremdsprache - Bulgarisch", Arrays_1.Arrays.asList("GE", "GM", "GY", "H", "PS", "R", "S", "SG", "SK", "SR"), null, "VH", null, null, null, true, true, false, true, false, false, true, null, null);
    static VK = new ZulaessigesFach("VK", 250, "VK", "Verkaufskunde", Arrays_1.Arrays.asList("BK", "SB"), null, "VK", null, null, null, false, false, false, false, false, false, true, null, null);
    static VM = new ZulaessigesFach("VM", 251, "VM", "Unterricht in der Herkunftssprache - Bulgarisch", Arrays_1.Arrays.asList("BK", "G", "GE", "GM", "GY", "H", "PS", "R", "S", "SG", "SK", "SR", "V"), null, "VM", null, null, null, true, true, false, false, false, false, true, null, null);
    static VO = new ZulaessigesFach("VO", 252, "VO", "vokalpraktischer Grundkurs", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "SG"), null, "VO", null, 5, null, false, false, false, false, false, false, true, null, null);
    static VP = new ZulaessigesFach("VP", 253, "VP", "Volkswirtschaftslehre/Politik", Arrays_1.Arrays.asList("BK", "SB"), null, "VP", null, 6, null, false, false, false, false, false, false, true, null, null);
    static VT = new ZulaessigesFach("VT", 254, "VT", "Verfahrenstechnik", Arrays_1.Arrays.asList("BK", "SB"), null, "VT", null, null, null, false, false, false, false, false, false, true, null, null);
    static VW = new ZulaessigesFach("VW", 255, "VW", "Volkswirtschaftslehre", Arrays_1.Arrays.asList("BK", "SB", "WB"), null, "VW", null, 6, null, false, false, false, false, false, false, true, null, null);
    static VX = new ZulaessigesFach("VX", 256, "VX", "Vertiefungsfach", Arrays_1.Arrays.asList("GE", "GY", "SG", "WB"), null, "VX", null, 13, null, false, false, false, false, false, false, true, null, null);
    static W = new ZulaessigesFach("W", 257, "W", "Werken", Arrays_1.Arrays.asList("S"), null, "W", null, 4, null, false, false, false, false, false, false, true, null, null);
    static WG = new ZulaessigesFach("WG", 258, "WG", "Wirtschaftsgeographie", Arrays_1.Arrays.asList("BK", "SB"), null, "WG", null, null, null, false, false, false, false, false, false, true, null, null);
    static WI = new ZulaessigesFach("WI", 259, "WI", "Wirtschaftsinformatik/Organisationslehre", Arrays_1.Arrays.asList("BK", "SB"), null, "WI", null, null, null, false, false, false, false, false, false, true, null, null);
    static WP = new ZulaessigesFach("WP", 260, "WP", "Wirtschaft-Politik", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "R", "S", "SG", "SK", "SR", "V"), Arrays_1.Arrays.asList("R"), "WP", null, null, null, false, false, false, false, false, false, true, null, null);
    static WW = new ZulaessigesFach("WW", 261, "WW", "Wirtschaftslehre", Arrays_1.Arrays.asList("BK", "GE", "GM", "GY", "PS", "R", "S", "SB", "SG", "SK", "SR", "V"), Arrays_1.Arrays.asList("R"), "WW", null, 6, null, false, false, false, false, false, false, true, null, null);
    static XH = new ZulaessigesFach("XH", 262, "XH", "Herkunftssprache anstelle einer Pflichtfremdsprache - sonstige Sprache", Arrays_1.Arrays.asList("GE", "GM", "GY", "H", "PS", "R", "S", "SG", "SK", "SR"), null, "XH", null, null, null, true, true, false, true, false, false, true, null, null);
    static XM = new ZulaessigesFach("XM", 263, "XM", "Unterricht in der Herkunftssprache - sonstige Sprache", Arrays_1.Arrays.asList("G", "GE", "GM", "GY", "H", "PS", "R", "S", "SG", "SK", "SR", "V"), null, "XM", null, null, null, true, true, false, false, false, false, true, null, null);
    static XX = new ZulaessigesFach("XX", 264, "XX", "Sonstige Fächer ohne Fremdsprachen (kein Import nach ASDPC)", Arrays_1.Arrays.asList("FW"), null, "XX", null, null, null, false, false, false, false, false, false, false, null, null);
    static YH = new ZulaessigesFach("YH", 265, "YH", "Herkunftssprache anstelle einer Pflichtfremdsprache - Koreanisch", Arrays_1.Arrays.asList("GE", "GM", "GY", "H", "PS", "R", "S", "SG", "SK", "SR"), null, "YH", null, null, null, true, true, false, true, false, false, true, null, null);
    static YM = new ZulaessigesFach("YM", 266, "YM", "Unterricht in der Herkunftssprache - Koreanisch", Arrays_1.Arrays.asList("BK", "G", "GE", "GM", "GY", "H", "PS", "R", "S", "SG", "SK", "SR", "V"), null, "YM", null, null, null, true, true, false, false, false, false, true, null, null);
    static YR = new ZulaessigesFach("YR", 267, "YR", "orthodoxe Religionslehre (Syrisch)", Arrays_1.Arrays.asList("BK", "G", "GE", "GM", "GY", "H", "PS", "R", "S", "SB", "SG", "SK", "SR", "V", "WB"), null, "YR", null, 8, null, false, false, false, false, false, false, true, null, null);
    static Z = new ZulaessigesFach("Z", 268, "Z", "Neugriechisch", Arrays_1.Arrays.asList("BK", "SB", "WB"), Arrays_1.Arrays.asList("R"), "Z", 1, 3, null, true, false, false, false, false, false, true, null, null);
    static Z0 = new ZulaessigesFach("Z0", 269, "Z0", "Neugriechisch, regulärer Beginn in der Einführungsphase", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "SG"), null, "Z", 1, 3, "EF", true, false, false, false, false, true, true, null, null);
    static Z1 = new ZulaessigesFach("Z1", 270, "Z1", "Neugriechisch, regulärer Beginn in Jahrgang 11", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "SG"), null, "Z", 1, 3, "11", true, false, false, false, false, true, true, null, 2012);
    static Z5 = new ZulaessigesFach("Z5", 271, "Z5", "Neugriechisch, regulärer Beginn in Jahrgang 5", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "R", "SG", "SK", "SR"), null, "Z", 1, 3, "05", true, false, false, false, false, false, true, null, null);
    static Z6 = new ZulaessigesFach("Z6", 272, "Z6", "Neugriechisch, regulärer Beginn in Jahrgang 6", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "R", "SG", "SK", "SR"), null, "Z", 1, 3, "06", true, false, false, false, false, false, true, null, null);
    static Z7 = new ZulaessigesFach("Z7", 273, "Z7", "Neugriechisch, regulärer Beginn in Jahrgang 7", Arrays_1.Arrays.asList("GE", "GM", "GY", "R", "SG", "SK"), null, "Z", 1, 3, "07", true, false, false, false, false, false, true, null, null);
    static Z8 = new ZulaessigesFach("Z8", 274, "Z8", "Neugriechisch, regulärer Beginn in Jahrgang 8", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "R", "SG", "SK", "SR"), null, "Z", 1, 3, "08", true, false, false, false, false, false, true, null, null);
    static Z9 = new ZulaessigesFach("Z9", 275, "Z9", "Neugriechisch, regulärer Beginn in Jahrgang 9", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "R", "SG", "SK", "SR"), null, "Z", 1, 3, "09", true, false, false, false, false, false, true, null, null);
    static ZF = new ZulaessigesFach("ZF", 276, "ZF", "Zusätzliche Förderung", Arrays_1.Arrays.asList("G", "PS", "S", "V"), null, "ZF", null, null, null, false, false, false, false, false, false, true, null, null);
    static ZH = new ZulaessigesFach("ZH", 277, "ZH", "Herkunftssprache anstelle einer Pflichtfremdsprache - Kurdische Sprachen", Arrays_1.Arrays.asList("GE", "GM", "GY", "H", "PS", "R", "S", "SG", "SK", "SR"), null, "ZH", null, null, null, true, true, false, true, false, false, true, null, null);
    static ZM = new ZulaessigesFach("ZM", 278, "ZM", "Unterricht in der Herkunftssprache - Kurdische Sprachen (Sorani, Komanci, Zaza)", Arrays_1.Arrays.asList("BK", "G", "GE", "GM", "GY", "H", "PS", "R", "S", "SG", "SK", "SR", "V"), null, "ZM", null, null, null, true, true, false, false, false, false, true, null, null);
    static ZQ = new ZulaessigesFach("ZQ", 279, "ZQ", "Neugriechisch, außerhalb des regulären Fachunterrichts", Arrays_1.Arrays.asList("GE", "GM", "GY", "PS", "R", "SG", "SK", "SR"), null, "ZQ", null, null, null, true, false, true, false, false, false, true, null, null);
    static ZW = new ZulaessigesFach("ZW", 280, "ZW", "Zeichnen / Werken", Arrays_1.Arrays.asList("BK", "SB"), null, "ZW", null, 4, null, false, false, false, false, false, false, true, null, null);
    static _faecher = new HashMap_1.HashMap();
    static DEFAULT = ZulaessigesFach.VF;
    kuerzelASD;
    bezeichnung;
    kuerzel;
    aufgabenfeld;
    fachgruppeID;
    abJahrgang;
    istFremdsprache;
    istHKFS;
    istAusRegUFach;
    istErsatzPflichtFS;
    istKonfKoop;
    nurSII;
    exportASD;
    schulformenKuerzel;
    schulformen = null;
    gliederungenKuerzel;
    gliederungen = null;
    gueltigVon;
    gueltigBis;
    /**
     * Erzeugt ein zulässiges Fach in der Aufzählung.
     *
     * @param kuerzelASD           das eindeutige Kürzel des Faches, welches im Rahmen der amtlichen Schulstatistik
     *                             verwendet wird
     * @param bezeichnung          die texttuelle Beschreibung des Faches
     * @param schulformenKuerzel   die Kürzel der Schulformen, für welche das Fach gültig ist, sofern es für die Schulform nicht
     *                             auf einzelne Gliederungen eingeschränkt ist
     * @param gliederungenKuerzel  die Kürzel Schulgliederungen, bei den Schulformen, wo das Fach nur bei einzelnen
     *                             Schulgliederungen zulässig ist.
     * @param kuerzel              das atomare Kürzel des Faches (z.B. bei Fremdsprachen - für das Sprachenkürzel)
     *                             - Teil des Kürzels für die amtliche Schulstatistik
     * @param aufgabenfeld         das Aufgabenfeld, welchem das Fach ggf. zugeordnet ist (1, 2 oder 3)
     * @param fachgruppeID         die ID der zugeordneten Fachgruppe
     * @param abJahrgang           der ASD-Jahrgang, ab dem das Fach zulässig ist (z.B. bei Fremdsprachen)
     *                             - Teil des Kürzels für die amtliche Schulstatistik
     * @param istFremdsprache      gibt an, ob es sich um eine Fremdsprache handelt
     * @param istHKFS              gibt an, ob es sich um ein Fach der Herkuntftsprache handelt (Unterrichts in der
     *                             Herkunftssprache oder Herkunftssprache anstelle einer Pflichtfremdsprache)
     * @param istAusRegUFach       gibt an, ob das Fach außerhalb des regulären Fachunterichts unterrichtet wird
     * @param istErsatzPflichtFS   gibt an, ob es sich bei dem Fach um einen Ersatz für eine Pflichtfremdsprache
     *                             handelt (siehe auch istHKFS)
     * @param istKonfKoop          gibt an, ob das Religionsfach konfessionell kooperativ unterrichtet wird oder nicht
     *                             - Teil des Kürzels für die amtliche Schulstatistik
     * @param nurSII               gibt an, ob das Fach nur in der Sekundarstufe II unterrichtet wird
     * @param exportASD            gibt an, ob das Fach bei Export der amtlichen Schulstatistik berücksichtigt werden
     *                             soll oder nicht
     * @param gueltigVon           gibt an, in welchem Schuljahr das Fach einführt wurde
     *                             - ist kein Schuljahr bekannt, so wird null gesetzt
     * @param gueltigBis           gibt an, bis zu welchem Schuljahr das Fach gültig ist
     *                             - ist kein Schuljahr bekannt, so wird null gesetzt
     */
    constructor(name, ordinal, kuerzelASD, bezeichnung, schulformenKuerzel, gliederungenKuerzel, kuerzel, aufgabenfeld, fachgruppeID, abJahrgang, istFremdsprache, istHKFS, istAusRegUFach, istErsatzPflichtFS, istKonfKoop, nurSII, exportASD, gueltigVon, gueltigBis) {
        super();
        this.__name = name;
        this.__ordinal = ordinal;
        ZulaessigesFach.all_values_by_ordinal.push(this);
        ZulaessigesFach.all_values_by_name.set(name, this);
        this.kuerzelASD = kuerzelASD;
        this.bezeichnung = bezeichnung;
        this.schulformenKuerzel = schulformenKuerzel;
        this.gliederungenKuerzel = gliederungenKuerzel;
        this.kuerzel = kuerzel;
        this.aufgabenfeld = aufgabenfeld;
        this.fachgruppeID = fachgruppeID;
        this.abJahrgang = abJahrgang;
        this.istFremdsprache = istFremdsprache;
        this.istHKFS = istHKFS;
        this.istAusRegUFach = istAusRegUFach;
        this.istErsatzPflichtFS = istErsatzPflichtFS;
        this.istKonfKoop = istKonfKoop;
        this.nurSII = nurSII;
        this.exportASD = exportASD;
        this.gueltigVon = gueltigVon;
        this.gueltigBis = gueltigBis;
    }
    /**
     * Gibt eine Map von den Kürzels der Fächer auf die zugehörigen Fächer
     * zurück. Sollte diese noch nicht initialisiert sein, so wird sie initielisiert.
     *
     * @return die Map von den Kürzels der Fächer auf die zugehörigen Fächer
     */
    static getMapFaecherByKuerzel() {
        if (ZulaessigesFach._faecher.size() === 0)
            for (let s of ZulaessigesFach.values())
                ZulaessigesFach._faecher.put(s.kuerzelASD, s);
        return ZulaessigesFach._faecher;
    }
    /**
     * Prüft, ob die Schulform bei diesem Fach in irgendeiner Gliederung der
     * angegebenen Schulform zulässig ist.
     *
     * @param schulform    die Schulform
     *
     * @return true, falls das Fach in der Schulform zulässig ist, ansonsten false.
     */
    hasSchulform(schulform) {
        if (this.schulformenKuerzel !== null) {
            for (let sf of this.schulformenKuerzel) {
                if (JavaObject_1.JavaObject.equalsTranspiler(sf, (schulform.kuerzel)))
                    return true;
            }
        }
        if (this.gliederungenKuerzel !== null) {
            for (let glKuerzel of this.gliederungenKuerzel) {
                let gl = Schulgliederung_1.Schulgliederung.getByKuerzel(glKuerzel);
                if ((gl !== null) && (gl.hasSchulformByKuerzel(schulform.kuerzel)))
                    return true;
            }
        }
        return false;
    }
    /**
     * Bestimmt alle Fächer, die in irgendeiner Gliederung der angegebenen Schulform
     * zulässig sind.
     *
     * @param schulform    die Schulform
     *
     * @return die zulässigen Fächer in der angegebenen Schulform
     */
    static get(schulform) {
        let faecher = new Vector_1.Vector();
        if (schulform === null)
            return faecher;
        for (let fach of ZulaessigesFach.values())
            if (fach.hasSchulform(schulform))
                faecher.add(fach);
        return faecher;
    }
    /**
     * Gibt die Fachgruppe dieses Faches zurück.
     *
     * @return die Fachgruppe des Faches
     */
    getFachgruppe() {
        if (this.fachgruppeID === null)
            return null;
        return Fachgruppe_1.Fachgruppe.getByID(this.fachgruppeID.valueOf());
    }
    /**
     * Liefert alle Schulformen zurück, für welche das Fach gültig ist, sofern es für
     * die Schulform nicht auf einzelne Gliederungen eingeschränkt ist.
     *
     * @return eine Liste der Schulformen
     */
    getSchulformen() {
        if (this.schulformen === null) {
            this.schulformen = new Vector_1.Vector();
            if (this.schulformenKuerzel !== null) {
                for (let sfKuerzel of this.schulformenKuerzel) {
                    let schulform = Schulform_1.Schulform.getByKuerzel(sfKuerzel);
                    if (schulform !== null)
                        this.schulformen.add(schulform);
                }
            }
        }
        return this.schulformen;
    }
    /**
     * Liefert die Schulgliederungen zurück, wo das Fach bei der zugehörigen Schulformen
     * nur bei einzelnen Schulgliederungen zulässig ist.
     *
     * @return eine Liste der Schulgliederungen
     */
    getGliederungen() {
        if (this.gliederungen === null) {
            this.gliederungen = new Vector_1.Vector();
            if (this.gliederungenKuerzel !== null) {
                for (let sgKuerzel of this.gliederungenKuerzel) {
                    let gliederung = Schulgliederung_1.Schulgliederung.getByKuerzel(sgKuerzel);
                    if (gliederung !== null)
                        this.gliederungen.add(gliederung);
                }
            }
        }
        return this.gliederungen;
    }
    /**
     * Gibt das Fach zurück, welches dem übergebenen Kürzel zuzuordnet ist.
     * Ist der übergebene Wert ungültig, so wird {@link ZulaessigesFach#DEFAULT}
     * zurückgeben.
     *
     * @param kuerzel   das Statistik-Kürzel des Faches
     *
     * @return das zugehörige Fach oder {@link ZulaessigesFach#DEFAULT}
     */
    static getByKuerzelASD(kuerzel) {
        let result = ZulaessigesFach.getMapFaecherByKuerzel().get(kuerzel);
        return (result === null) ? ZulaessigesFach.DEFAULT : result;
    }
    /**
     * Returns the name of this enumeration value.
     *
     * @returns the name
     */
    name() {
        return this.__name;
    }
    /**
     * Returns the ordinal value of this enumeration value.
     *
     * @returns the ordinal value
     */
    ordinal() {
        return this.__ordinal;
    }
    /**
     * Returns the name of this enumeration value.
     *
     * @returns the name
     */
    toString() {
        return this.__name;
    }
    /**
     * Returns true if this and the other enumeration values are equal.
     *
     * @param other   the other enumeration value
     *
     * @returns true if they are equal and false otherwise
     */
    equals(other) {
        if (!(other instanceof ZulaessigesFach))
            return false;
        return this === other;
    }
    /**
     * Returns the ordinal value as hashcode, since the ordinal value is unique.
     *
     * @returns the ordinal value as hashcode
     */
    hashCode() {
        return this.__ordinal;
    }
    /**
     * Compares this enumeration value with the other enumeration value by their ordinal value.
     *
     * @param other   the other enumeration value
     *
     * @returns a negative, zero or postive value as this enumeration value is less than, equal to
     *          or greater than the other enumeration value
     */
    compareTo(other) {
        return this.__ordinal - other.__ordinal;
    }
    /**
     * Returns an array with enumeration values.
     *
     * @returns the array with enumeration values
     */
    static values() {
        return [...this.all_values_by_ordinal];
    }
    /**
     * Returns the enumeration value with the specified name.
     *
     * @param name   the name of the enumeration value
     *
     * @returns the enumeration values or null
     */
    static valueOf(name) {
        let tmp = this.all_values_by_name.get(name);
        return (!tmp) ? null : tmp;
    }
    isTranspiledInstanceOf(name) {
        return ['de.nrw.schule.svws.core.types.statkue.ZulaessigesFach'].includes(name);
    }
}
exports.ZulaessigesFach = ZulaessigesFach;
function cast_de_nrw_schule_svws_core_types_statkue_ZulaessigesFach(obj) {
    return obj;
}
exports.cast_de_nrw_schule_svws_core_types_statkue_ZulaessigesFach = cast_de_nrw_schule_svws_core_types_statkue_ZulaessigesFach;
//# sourceMappingURL=ZulaessigesFach.js.map