diff --git a/charts/dbildungs-iam-server/seeding/dev/03_service-provider.json b/charts/dbildungs-iam-server/seeding/dev/03_service-provider.json index 8253a9bbd..fb6cf3474 100644 --- a/charts/dbildungs-iam-server/seeding/dev/03_service-provider.json +++ b/charts/dbildungs-iam-server/seeding/dev/03_service-provider.json @@ -9,7 +9,9 @@ "kategorie": "EMAIL", "logoMimeType": "image/svg+xml", "logoBase64": "PHN2ZyBpZD0nRWJlbmVfMScgZGF0YS1uYW1lPSdFYmVuZSAxJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAzMDAuMyAyMjUuMic+PGRlZnM+PHN0eWxlPi5jbHMtMXtmaWxsOiMwMDMwNjQ7fTwvc3R5bGU+PC9kZWZzPjx0aXRsZT5lbWFpbC1ibGF1PC90aXRsZT48ZyBpZD0nRWJlbmVfMicgZGF0YS1uYW1lPSdFYmVuZSAyJz48ZyBpZD0nXzE2MDdfSWNvbnMnIGRhdGEtbmFtZT0nIDE2MDcgSWNvbnMnPjxwYXRoIGNsYXNzPSdjbHMtMScgZD0nTTI4MS4zLDU2LjJoMFYyNDMuOEgxOC43VjU2LjJabTAtMTguOEgxOC43QTE4Ljc4LDE4Ljc4LDAsMCwwLS4xLDU2LjJWMjQzLjhhMTguNzgsMTguNzgsMCwwLDAsMTguOCwxOC44SDI4MS40YTE4Ljc4LDE4Ljc4LDAsMCwwLDE4LjgtMTguOFY1Ni4yQTE4LjkzLDE4LjkzLDAsMCwwLDI4MS4zLDM3LjRaJyB0cmFuc2Zvcm09J3RyYW5zbGF0ZSgwLjEgLTM3LjQpJy8+PHBhdGggY2xhc3M9J2Nscy0xJyBkPSdNMTA5LjMsMTgzLjIsNTMsMjI1LjFhMTEuMzIsMTEuMzIsMCwwLDEtNi4yLDEuOSwxMC43NSwxMC43NSwwLDAsMS05LjktMTEuNSwxMC40LDEwLjQsMCwwLDEsMy43LTcuM2w1Ni4zLTQwLjlhMTAuNzMsMTAuNzMsMCwwLDEsMTUuMS45Yy4yLjIuMy40LjUuNmExMC40MiwxMC40MiwwLDAsMS0yLjQsMTQuNlonIHRyYW5zZm9ybT0ndHJhbnNsYXRlKDAuMSAtMzcuNCknLz48cGF0aCBjbGFzcz0nY2xzLTEnIGQ9J00yNjIuNiwyMjEuOWExMC42MiwxMC42MiwwLDAsMS0xNC42LDIuNGwtNTYuMy00MS4xYTEwLjUyLDEwLjUyLDAsMCwxLDEyLjQtMTdsNTYuMyw0MC45YTEwLjY2LDEwLjY2LDAsMCwxLDIuNCwxNC44WicgdHJhbnNmb3JtPSd0cmFuc2xhdGUoMC4xIC0zNy40KScvPjxwYXRoIGNsYXNzPSdjbHMtMScgZD0nTTE1Ni4yLDE2OC44YTExLjE5LDExLjE5LDAsMCwxLTEyLjQsMEw0MC42LDkzLjdBMTEuMjYsMTEuMjYsMCwxLDEsNTMsNzQuOWgwbDk3LDcxLjMsOTctNzEuM2ExMC41OCwxMC41OCwwLDAsMSwxNC41LDQuMiwxMC43LDEwLjcsMCwwLDEtMi4yLDEzLjFaJyB0cmFuc2Zvcm09J3RyYW5zbGF0ZSgwLjEgLTM3LjQpJy8+PC9nPjwvZz48L3N2Zz4=", - "providedOnSchulstrukturknoten": 0 + "providedOnSchulstrukturknoten": 0, + "keycloakGroup": "E-Mail-service", + "keycloakRole": "E-Mail-user" }, { "id": 1, @@ -19,7 +21,9 @@ "kategorie": "EMAIL", "logoMimeType": "image/svg+xml", "logoBase64": "PHN2ZyBpZD0nRWJlbmVfMScgZGF0YS1uYW1lPSdFYmVuZSAxJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAyNTguNSAyOTguNzcnPjxkZWZzPjxzdHlsZT4uY2xzLTF7ZmlsbDojMDAzMDY0O308L3N0eWxlPjwvZGVmcz48dGl0bGU+a2FsZW5kYXItYmxhdTwvdGl0bGU+PHBvbHlnb24gY2xhc3M9J2Nscy0xJyBwb2ludHM9JzE4NC42IDI0My40NyAyMDMuMSAyNDMuNDcgMjAzLjEgMTE0LjE3IDE2Ni4yIDExNC4xNyAxNjYuMiAxMzIuNjcgMTg0LjYgMTMyLjY3IDE4NC42IDI0My40NycvPjxwb2x5Z29uIGNsYXNzPSdjbHMtMScgcG9pbnRzPScxNDcuNyAxMTQuMTcgNTUuNCAxMTQuMTcgNTUuNCAxMzIuNjcgMTI5LjIgMTMyLjY3IDEyOS4yIDE2OS41NyA1NS40IDE2OS41NyA1NS40IDE4OC4wNyAxMjkuMiAxODguMDcgMTI5LjIgMjI0Ljk3IDU1LjQgMjI0Ljk3IDU1LjQgMjQzLjQ3IDE0Ny43IDI0My40NyAxNDcuNyAxMTQuMTcnLz48cGF0aCBjbGFzcz0nY2xzLTEnIGQ9J00yNzkuMywyNjIuNSwyNzkuMSw0OUExNi4xOCwxNi4xOCwwLDAsMCwyNjMsMzIuOEgyMzAuN1Y5LjhhOC4xNiw4LjE2LDAsMCwwLTE2LjItMiw2LjcsNi43LDAsMCwwLDAsMlYzMi45SDg1LjNWOS44QTguNjEsOC42MSwwLDAsMCw3Ny4yLjdhOC43OCw4Ljc4LDAsMCwwLTguMSw5LjJWMzNIMzYuOUExNi4wOSwxNi4wOSwwLDAsMCwyMC44LDQ5LjFoMFYyNjIuNkExOC4zNSwxOC4zNSwwLDAsMCwyNy43LDI3N3Y0LjFBMTguNDQsMTguNDQsMCwwLDAsNDYsMjk5LjRIMjUzLjlhMTguNDQsMTguNDQsMCwwLDAsMTguMy0xOC4zVjI3N0ExOS4wNSwxOS4wNSwwLDAsMCwyNzkuMywyNjIuNVpNMjE0LjUsNDMuMnYxNGE4LjEsOC4xLDAsMSwwLDE2LjIsMGgwdi0xNGExNi4xMSwxNi4xMSwwLDEsMS0yMiw1LjlBMTUsMTUsMCwwLDEsMjE0LjUsNDMuMlptLTE0NS4zLDB2MTRhOC4xMiw4LjEyLDAsMSwwLDE2LjIsMXYtMTVhMTYuMTcsMTYuMTcsMCwxLDEtMjIuMSw1LjlBMTUuMjEsMTUuMjEsMCwwLDEsNjkuMiw0My4yWk0zOS40LDk2LjRIMjYwLjhWMjYyLjZIMzkuNFpNMjUzLjksMjg3LjlINDYuMmMtNy45LDAtMTQuOC0zLjctMTcuMy0xMC4yQTE5LDE5LDAsMCwwLDM5LjUsMjgxSDI2MC45YTE3LjYyLDE3LjYyLDAsMCwwLDEwLjQtMy4zQzI2OC42LDI4NC4yLDI2MS44LDI4Ny45LDI1My45LDI4Ny45WicgdHJhbnNmb3JtPSd0cmFuc2xhdGUoLTIwLjggLTAuNjMpJy8+PC9zdmc+", - "providedOnSchulstrukturknoten": 0 + "providedOnSchulstrukturknoten": 0, + "keycloakGroup": "Kalender-service", + "keycloakRole": "Kalender-user" }, { "id": 2, @@ -29,7 +33,9 @@ "kategorie": "EMAIL", "logoMimeType": "image/svg+xml", "logoBase64": "PHN2ZyBpZD0nRWJlbmVfMScgZGF0YS1uYW1lPSdFYmVuZSAxJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAxNiAxNic+PGRlZnM+PHN0eWxlPi5jbHMtMXtmaWxsOiMwMDMwNjQ7fTwvc3R5bGU+PC9kZWZzPjx0aXRsZT5BZHJlc3NidWNoPC90aXRsZT48ZyBpZD0nRWJlbmVfMicgZGF0YS1uYW1lPSdFYmVuZSAyJz48ZyBpZD0nXzE2MDdfSWNvbnMnIGRhdGEtbmFtZT0nIDE2MDcgSWNvbnMnPjxwYXRoIGNsYXNzPSdjbHMtMScgZD0nTTE0LjUsOEgxNWExLDEsMCwwLDAsMS0xVjVIMTQuNVonLz48cGF0aCBjbGFzcz0nY2xzLTEnIGQ9J00xNC41LDFWNEgxNWExLDEsMCwwLDAsMS0xVjFaJy8+PHBhdGggY2xhc3M9J2Nscy0xJyBkPSdNMTQsOVYwSDFBMSwxLDAsMCwwLDAsMVYxNWExLDEsMCwwLDAsMSwxSDE0Wk04LDRBMiwyLDAsMSwxLDYsNiwyLDIsMCwwLDEsOCw0Wk0zLDE1SDJWMUgzWm04LTNINVYxMUEyLDIsMCwwLDEsNyw5SDlhMiwyLDAsMCwxLDIsMlonLz48cGF0aCBjbGFzcz0nY2xzLTEnIGQ9J00xNC41LDEySDE1YTEsMSwwLDAsMCwxLTFWOUgxNC41WicvPjwvZz48L2c+PC9zdmc+", - "providedOnSchulstrukturknoten": 0 + "providedOnSchulstrukturknoten": 0, + "keycloakGroup": "Adressbuch-service", + "keycloakRole": "Adressbuch-user" }, { "id": 3, @@ -39,7 +45,9 @@ "kategorie": "UNTERRICHT", "logoMimeType": "image/svg+xml", "logoBase64": "PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnIHN0YW5kYWxvbmU9J25vJz8+PHN2ZzpzdmcgeG1sbnM6ZGM9J2h0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvJyB4bWxuczpjYz0naHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjJyB4bWxuczpyZGY9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMnIHhtbG5zOnN2Zz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIGhlaWdodD0nMTU4LjMnIHdpZHRoPScxNTguMycgeG1sOnNwYWNlPSdwcmVzZXJ2ZScgdmlld0JveD0nMCAwIDE1OC4zIDE1OC4zMDAwMScgeT0nMHB4JyB4PScwcHgnIGlkPSdMYXllcl8xJyB2ZXJzaW9uPScxLjEnPjxzdmc6bWV0YWRhdGEgaWQ9J21ldGFkYXRhODcxJz48cmRmOlJERj48Y2M6V29yayByZGY6YWJvdXQ9Jyc+PGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+PGRjOnR5cGUgcmRmOnJlc291cmNlPSdodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvU3RpbGxJbWFnZScgLz48ZGM6dGl0bGU+PC9kYzp0aXRsZT48L2NjOldvcms+PC9yZGY6UkRGPjwvc3ZnOm1ldGFkYXRhPjxzdmc6ZGVmcyBpZD0nZGVmczg2OSc+PC9zdmc6ZGVmcz48c2NyaXB0PihmdW5jdGlvbiAoZSkgeyBpZiAobmF2aWdhdG9yKSB7IHZhciBsYW5ndWFnZSA9IGUubGFuZ3VhZ2UgKyAnLCcgKyBlLmxhbmd1YWdlLnNwbGl0KCctJylbMF0gKyAmcXVvdDssZW4tVVMsZW4mcXVvdDs7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuYXZpZ2F0b3IsICZxdW90O2xhbmd1YWdlJnF1b3Q7LCB7JnF1b3Q7dmFsdWUmcXVvdDs6IGxhbmd1YWdlfSk7IH0KfSkoeyZxdW90O2xhbmd1YWdlJnF1b3Q7OiZxdW90O2RlLURFJnF1b3Q7fSk8L3NjcmlwdD48c3ZnOnN0eWxlIGlkPSdzdHlsZTgzNCcgdHlwZT0ndGV4dC9jc3MnPiAuc3Qwe2ZpbGw6I0Y0NzkyMDt9IC5zdDF7ZmlsbDojNjAzMzUyO30gLnN0MntmaWxsOiNGRkZGRkY7fQo8L3N2ZzpzdHlsZT48c3ZnOnBhdGggY2xhc3M9J3N0MCcgZD0nTSA0My42LDAgQyAxOS42LDAgMCwxOS42IDAsNDMuNiB2IDcxLjEgYyAwLDI0IDE5LjYsNDMuNiA0My42LDQzLjYgaCA3MS4xIGMgMjQsMCA0My42LC0xOS42IDQzLjYsLTQzLjYgViAwIFonIGlkPSdwYXRoODM2JyBzdHlsZT0nZmlsbDojZjQ3OTIwJyAvPjxzdmc6cGF0aCBjbGFzcz0nc3QyJyBkPSdtIDExMi40LDExOS4zIGMgLTkuMywwLjEgLTE2LjMsLTUuNCAtMTkuNywtMTAuOSAtMC45LC0xLjQgLTEsLTMuMiAwLjUsLTQuNCAxLjMsLTEgMy4xLC0wLjkgNC4zLDAuNyAzLjEsNC4yIDguNCw4LjQgMTQuOSw4LjQgMTAuNSwtMC4xIDE0LjUsLTcuNSAxNC40LC0xNC4yIEMgMTI2LjcsODYuNyAxMTIuMSw4Ni42IDExMi4xLDg2LjYgOTkuNyw4NiA5Mi40LDc5LjMgOTIuMyw2OS4xIGMgLTAuMSwtOC42IDYuNSwtMTcuNyAxOS41LC0xNy44IDUuNywwIDExLjIsMi4zIDE0LjMsNS40IDEuMywxLjIgMS4zLDMuMiAwLDQuNCAtMS4yLDEuMSAtMywxLjIgLTQuOCwtMC4yIC0yLjYsLTIuMSAtNS42LC0zLjUgLTkuNSwtMy41IC0xMC42LDAuMSAtMTMuMiw3LjkgLTEzLjIsMTEuNyAwLjEsMTAuNiAxMy4yLDExLjUgMTMuMiwxMS41IDExLjMsMC42IDIxLjQsNS41IDIxLjUsMTguMyAwLjIsMTEuNCAtNy43LDIwLjMgLTIwLjksMjAuNCB6JyBpZD0ncGF0aDg0NCcgc3R5bGU9J2ZpbGw6I2ZmZmZmZicgLz48c3ZnOnBhdGggY2xhc3M9J3N0MicgZD0nbSAzOC41LDM2LjEgYyAwLC0yLjUgLTIsLTQuNCAtNC41LC00LjQgLTIuNSwwIC00LjQsMiAtNC40LDQuNSAwLDIuNSAyLDQuNCA0LjUsNC40IDIuNSwwIDQuNCwtMiA0LjQsLTQuNSB6JyBpZD0ncGF0aDg0Nicgc3R5bGU9J2ZpbGw6I2ZmZmZmZicgLz48c3ZnOnBhdGggY2xhc3M9J3N0MicgZD0nbSAzNCwxMTkuMiBjIC0xLjgsMCAtMy4yLC0xLjMgLTMuMiwtMi45IFYgNTQuMSBjIDAsLTEuNiAxLjUsLTIuOSAzLjIsLTIuOSAxLjcsMCAzLjIsMS4zIDMuMiwyLjkgdiA2Mi4xIGMgMC4xLDEuNyAtMS40LDMgLTMuMiwzIHonIGlkPSdwYXRoODQ4JyBzdHlsZT0nZmlsbDojZmZmZmZmJyAvPjxzdmc6cGF0aCBjbGFzcz0nc3QyJyBkPSdtIDg0LjEsMTE0LjEgYyAtMC40LC0xLjcgLTIuMiwtMi43IC0zLjksLTIuMyAtNi44LDEuOCAtMTIsMS40IC0xNS40LC0xIC0yLjIsLTEuNiAtNC45LC01IC01LjMsLTEyLjMgdiAtMC4yIGMgLTAuMSwtMS40IC0wLjEsLTIwLjYgMCwtNDAuNyBoIDIxLjIgYyAxLjgsMCAzLjIsLTEuNCAzLjIsLTMuMiAwLC0xLjggLTEuNCwtMy4yIC0zLjIsLTMuMiBIIDU5LjQgYyAwLC02LjIgMCwtMTIuMyAwLC0xNy43IDAsLTEuOCAtMS40LC0zLjIgLTMuMiwtMy4yIHYgMCBjIC0xLjgsMCAtMy4yLDEuNCAtMy4yLDMuMiAwLDYuNCAtMC4yLDYyLjYgMCw2NS4yIHYgMC4yIGMgMC41LDkuOCA0LjYsMTQuNyA3LjksMTcuMSAzLjEsMi4zIDcsMy40IDExLjUsMy40IDIuOCwwIDYsLTAuNCA5LjQsLTEuMyAxLjcsLTAuNiAyLjcsLTIuMyAyLjMsLTQgeicgaWQ9J3BhdGg4NTAnIHN0eWxlPSdmaWxsOiNmZmZmZmYnIC8+PC9zdmc6c3ZnPg==", - "providedOnSchulstrukturknoten": 0 + "providedOnSchulstrukturknoten": 0, + "keycloakGroup": "itslearning-service", + "keycloakRole": "itslearning-user" }, { "id": 4, @@ -49,7 +57,9 @@ "kategorie": "UNTERRICHT", "logoMimeType": "image/svg+xml", "logoBase64": "PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz48c3ZnIGlkPSdzdmc5NDQnIGNsaXAtcnVsZT0nZXZlbm9kZCcgZmlsbC1ydWxlPSdldmVub2RkJyBzdHJva2UtbGluZWNhcD0ncm91bmQnIHN0cm9rZS1saW5lam9pbj0ncm91bmQnIHN0cm9rZS1taXRlcmxpbWl0PScxLjUnIHZlcnNpb249JzEuMScgdmlld0JveD0nMCAwIDMwMCAzMDAnIHhtbDpzcGFjZT0ncHJlc2VydmUnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgeG1sbnM6Y2M9J2h0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL25zIycgeG1sbnM6ZGM9J2h0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvJyB4bWxuczpyZGY9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMnPjxtZXRhZGF0YSBpZD0nbWV0YWRhdGE5NDgnPjxyZGY6UkRGPjxjYzpXb3JrIHJkZjphYm91dD0nJz48ZGM6Zm9ybWF0PmltYWdlL3N2Zyt4bWw8L2RjOmZvcm1hdD48ZGM6dHlwZSByZGY6cmVzb3VyY2U9J2h0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlJy8+PGRjOnRpdGxlLz48L2NjOldvcms+PC9yZGY6UkRGPjwvbWV0YWRhdGE+PHJlY3QgaWQ9J3JlY3Q4MzQnIHg9Jy4xODEnIHk9Jy0uMzYzJyB3aWR0aD0nMjk5LjY0JyBoZWlnaHQ9JzMwMC42NycgZmlsbC1vcGFjaXR5PScwJy8+PHBhdGggaWQ9J3BhdGg4NDAnIGQ9J20xMDcuMzEgODEuODAyYy0wLTUuMzA2LTQuMzA4LTkuNjEzLTkuNjEzLTkuNjEzaC00OC4yNDdjLTUuMzA2LTAtOS42MTMgNC4zMDctOS42MTMgOS42MTN2MTkuMjI2Yy0wIDUuMzA1IDQuMzA3IDkuNjEzIDkuNjEzIDkuNjEzaDQ4LjI0N2M1LjMwNS0wIDkuNjEzLTQuMzA4IDkuNjEzLTkuNjEzdi0xOS4yMjZ6JyBmaWxsPSd1cmwoI19MaW5lYXIyKScgc3Ryb2tlPSd1cmwoI19MaW5lYXIzKScgc3Ryb2tlLXdpZHRoPSc0LjE3cHgnLz48cGF0aCBpZD0ncGF0aDg0MicgZD0nbTEwNy4zMSAxNDEuOGMtMC01LjMwNi00LjMwOC05LjYxMy05LjYxMy05LjYxM2gtNDguMjQ3Yy01LjMwNi0wLTkuNjEzIDQuMzA3LTkuNjEzIDkuNjEzdjE5LjIyNmMtMCA1LjMwNSA0LjMwNyA5LjYxMyA5LjYxMyA5LjYxM2g0OC4yNDdjNS4zMDUtMCA5LjYxMy00LjMwOCA5LjYxMy05LjYxM3YtMTkuMjI2eicgZmlsbD0nI2ZmZicgc3Ryb2tlPSd1cmwoI19MaW5lYXI0KScgc3Ryb2tlLXdpZHRoPSc0LjE3cHgnLz48cGF0aCBpZD0ncGF0aDg0NCcgZD0nbTEwNy4zMSAyMDEuOGMtMC01LjMwNi00LjMwOC05LjYxMy05LjYxMy05LjYxM2gtNDguMjQ3Yy01LjMwNi0wLTkuNjEzIDQuMzA3LTkuNjEzIDkuNjEzdjE5LjIyNmMtMCA1LjMwNSA0LjMwNyA5LjYxMyA5LjYxMyA5LjYxM2g0OC4yNDdjNS4zMDUtMCA5LjYxMy00LjMwOCA5LjYxMy05LjYxM3YtMTkuMjI2eicgZmlsbD0nI2Q0MDA0Yicgc3Ryb2tlPSd1cmwoI19MaW5lYXI1KScgc3Ryb2tlLXdpZHRoPSc0LjE3cHgnLz48cGF0aCBpZD0ncGF0aDg0NicgZD0nbTE1OS4yMiAxOTIuMTloLTMzLjEzYy0yLjM4Ny0wLTQuNjc2IDAuOTQ4LTYuMzY0IDIuNjM2cy0yLjYzNiAzLjk3Ny0yLjYzNiA2LjM2NHYyMC40NDljLTAgMi4zODggMC45NDggNC42NzcgMi42MzcgNi4zNjUgMS42ODggMS42ODggMy45NzggMi42MzYgNi4zNjUgMi42MzUgMTUuNzA5LTRlLTMgNDYuNDcxLTAuMDEzIDQ2LjQ3MS0wLjAxM2wtMTMuMzQzLTM4LjQzNnonIGZpbGw9J3VybCgjX0xpbmVhcjYpJyBzdHJva2U9J3VybCgjX0xpbmVhcjcpJyBzdHJva2Utd2lkdGg9JzQuMTdweCcvPjxwYXRoIGlkPSdwYXRoODQ4JyBkPSdtMTY0LjQgMTQ1Ljk2IDEzLjgxMyAyNC41MjZoMWUtM2MxLjY3IDAuMDQgMy4yODUtMC41OTYgNC40OC0xLjc2MyAxLjE5Ni0xLjE2NyAxLjg3LTIuNzY3IDEuODctNC40Mzh2LTIzLjFjLTAtMi4zODctMC45NDktNC42NzYtMi42MzYtNi4zNjQtMS42ODgtMS42ODgtMy45NzctMi42MzYtNi4zNjQtMi42MzZoLTQ5LjQ3M2MtMi4zODctMC00LjY3NiAwLjk0OC02LjM2NCAyLjYzNnMtMi42MzYgMy45NzctMi42MzYgNi4zNjR2MjAuNDQ3Yy0wIDIuMzg4IDAuOTQ5IDQuNjc4IDIuNjM4IDYuMzY2czMuOTc5IDIuNjM1IDYuMzY3IDIuNjM0YzguMzY1LTVlLTMgMTkuNTM3LTAuMDExIDE5LjUzNy0wLjAxMWwyLjY1My0yMS4xODInIGZpbGw9JyNmZmYnIHN0cm9rZT0ndXJsKCNfTGluZWFyOCknIHN0cm9rZS13aWR0aD0nNC4xN3B4Jy8+PHBhdGggaWQ9J3BhdGg4NTAnIGQ9J20xODQuNTYgODEuODAyYy0wLTUuMzA2LTQuMzA4LTkuNjEzLTkuNjEzLTkuNjEzaC00OC4yNDdjLTUuMzA2LTAtOS42MTMgNC4zMDctOS42MTMgOS42MTN2MTkuMjI2Yy0wIDUuMzA1IDQuMzA3IDkuNjEzIDkuNjEzIDkuNjEzaDQ4LjI0N2M1LjMwNS0wIDkuNjEzLTQuMzA4IDkuNjEzLTkuNjEzdi0xOS4yMjZ6JyBmaWxsPSd1cmwoI19MaW5lYXI5KScgc3Ryb2tlPSd1cmwoI19MaW5lYXIxMCknIHN0cm9rZS13aWR0aD0nNC4xN3B4Jy8+PHBhdGggaWQ9J3BhdGg4NTInIGQ9J20yNjIuNTYgMTQxLjhjLTAtNS4zMDYtNC4zMDgtOS42MTMtOS42MTMtOS42MTNoLTQ4LjI0N2MtNS4zMDYtMC05LjYxMyA0LjMwNy05LjYxMyA5LjYxM3YxOS4yMjZjLTAgNS4zMDUgNC4zMDcgOS42MTMgOS42MTMgOS42MTNoNDguMjQ3YzUuMzA1LTAgOS42MTMtNC4zMDggOS42MTMtOS42MTN2LTE5LjIyNnonIGZpbGw9JyNmZmYnIHN0cm9rZT0ndXJsKCNfTGluZWFyMTEpJyBzdHJva2Utd2lkdGg9JzQuMTdweCcvPjxwYXRoIGlkPSdwYXRoODU0JyBkPSdtMjYyLjU2IDgxLjgwMmMtMC01LjMwNi00LjMwOC05LjYxMy05LjYxMy05LjYxM2gtNDguMjQ3Yy01LjMwNi0wLTkuNjEzIDQuMzA3LTkuNjEzIDkuNjEzdjE5LjIyNmMtMCA1LjMwNSA0LjMwNyA5LjYxMyA5LjYxMyA5LjYxM2g0OC4yNDdjNS4zMDUtMCA5LjYxMy00LjMwOCA5LjYxMy05LjYxM3YtMTkuMjI2eicgZmlsbD0ndXJsKCNfTGluZWFyMTIpJyBzdHJva2U9J3VybCgjX0xpbmVhcjEyKScgc3Ryb2tlLW1pdGVybGltaXQ9JzEnIHN0cm9rZS13aWR0aD0nNC4xN3B4Jy8+PHBhdGggaWQ9J3BhdGg4NTYnIGQ9J20xNTMuNTggMjQyLjI0IDE2LjA5OSAzOC4zOTRzMi41MTEgNS4xODIgNC4xMjYgOC4xMjcnIGZpbGwtb3BhY2l0eT0nMCcgc3Ryb2tlPSd1cmwoI19MaW5lYXIxNCknIHN0cm9rZS1taXRlcmxpbWl0PScyJyBzdHJva2Utd2lkdGg9JzguMzNweCcvPjxwYXRoIGlkPSdwYXRoODU4JyBkPSdtMjg3Ljg4IDI1MC4yNS0yMi4xNTMtNTIuNzc0cy0xMC4zOTMtMTcuMDg4LTIyLjM4NC0wLjI1M2MtMCAwLTE0LjU0LTE5LjAxMS0yNy42NjctMC4yMDUtMCAwLTE2LjMzNS0xNC43Ni0yNS44ODIgMi4zOTlsLTE5LjEyMS00NS42MDJzLTEuNTI1LTUuMDUzLTYuNzc2LTYuNTQ4Yy04LjM1NC0yLjM3Ny0yMS41MzkgMC4zMjYtMTguMTgxIDE3LjAxM2w0NC4yNzQgMTA1LjU4LTEyLjg0MS0yMy41MDdzLTcuMDUzLTEzLjE3MS0yMy41Ny00LjExMycgZmlsbC1vcGFjaXR5PScwJyBzdHJva2U9J3VybCgjX0xpbmVhcjE0KScgc3Ryb2tlLW1pdGVybGltaXQ9JzInIHN0cm9rZS13aWR0aD0nOC4zM3B4Jy8+PGRlZnMgaWQ9J2RlZnM5NDInPjxsaW5lYXJHcmFkaWVudCBpZD0nX0xpbmVhcjInIHgyPScxJyBncmFkaWVudFRyYW5zZm9ybT0nbWF0cml4KDY3LjQ3MyAwIDAgMzguNDUyIDM5Ljg0IDcyLjE4OSknIGdyYWRpZW50VW5pdHM9J3VzZXJTcGFjZU9uVXNlJz48c3RvcCBpZD0nc3RvcDg2Nycgc3RvcC1jb2xvcj0nIzAwMzA2NCcgb2Zmc2V0PScwJy8+PHN0b3AgaWQ9J3N0b3A4NjknIHN0b3AtY29sb3I9JyMwMDMwNjQnIG9mZnNldD0nMScvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPSdfTGluZWFyMycgeDI9JzEnIGdyYWRpZW50VHJhbnNmb3JtPSdtYXRyaXgoNjcuNDczIDAgMCAzOC40NTIgMzkuODQgOTEuNDE1KScgZ3JhZGllbnRVbml0cz0ndXNlclNwYWNlT25Vc2UnPjxzdG9wIGlkPSdzdG9wODcyJyBzdG9wLWNvbG9yPScjMDAzMDY0JyBvZmZzZXQ9JzAnLz48c3RvcCBpZD0nc3RvcDg3NCcgc3RvcC1jb2xvcj0nIzAwMzA2NCcgb2Zmc2V0PScxJy8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9J19MaW5lYXI0JyB4Mj0nMScgZ3JhZGllbnRUcmFuc2Zvcm09J21hdHJpeCg2Ny40NzMgMCAwIDM4LjQ1MiAzOS44NCAxNTEuNDIpJyBncmFkaWVudFVuaXRzPSd1c2VyU3BhY2VPblVzZSc+PHN0b3AgaWQ9J3N0b3A4NzcnIHN0b3AtY29sb3I9JyMwMDMwNjQnIG9mZnNldD0nMCcvPjxzdG9wIGlkPSdzdG9wODc5JyBzdG9wLWNvbG9yPScjMDAzMDY0JyBvZmZzZXQ9JzEnLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD0nX0xpbmVhcjUnIHgyPScxJyBncmFkaWVudFRyYW5zZm9ybT0nbWF0cml4KDY3LjQ3MyAwIDAgMzguNDUyIDM5Ljg0IDIxMS40MiknIGdyYWRpZW50VW5pdHM9J3VzZXJTcGFjZU9uVXNlJz48c3RvcCBpZD0nc3RvcDg4Micgc3RvcC1jb2xvcj0nIzAwMzA2NCcgb2Zmc2V0PScwJy8+PHN0b3AgaWQ9J3N0b3A4ODQnIHN0b3AtY29sb3I9JyMwMDMwNjQnIG9mZnNldD0nMScvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPSdfTGluZWFyNicgeDI9JzEnIGdyYWRpZW50VHJhbnNmb3JtPSdtYXRyaXgoNjcuNDczIDAgMCAzOC40NTIgNDcuMzQgNzIuMTg5KScgZ3JhZGllbnRVbml0cz0ndXNlclNwYWNlT25Vc2UnPjxzdG9wIGlkPSdzdG9wODg3JyBzdG9wLWNvbG9yPScjZDQwMDRiJyBvZmZzZXQ9JzAnLz48c3RvcCBpZD0nc3RvcDg4OScgc3RvcC1jb2xvcj0nI2Q0MDA0Yicgb2Zmc2V0PScxJy8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9J19MaW5lYXI3JyB4Mj0nMScgZ3JhZGllbnRUcmFuc2Zvcm09J21hdHJpeCg1NS40NzMgMCAwIDM4LjQ1MiAxMTcuMDkgMjExLjQyKScgZ3JhZGllbnRVbml0cz0ndXNlclNwYWNlT25Vc2UnPjxzdG9wIGlkPSdzdG9wODkyJyBzdG9wLWNvbG9yPScjMDAzMDY0JyBvZmZzZXQ9JzAnLz48c3RvcCBpZD0nc3RvcDg5NCcgc3RvcC1jb2xvcj0nIzAwMzA2NCcgb2Zmc2V0PScxJy8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9J19MaW5lYXI4JyB4Mj0nMScgZ3JhZGllbnRUcmFuc2Zvcm09J21hdHJpeCg2Ny40NzMgMCAwIDM4LjQ1MiAxMTcuMDkgMTUxLjQyKScgZ3JhZGllbnRVbml0cz0ndXNlclNwYWNlT25Vc2UnPjxzdG9wIGlkPSdzdG9wODk3JyBzdG9wLWNvbG9yPScjMDAzMDY0JyBvZmZzZXQ9JzAnLz48c3RvcCBpZD0nc3RvcDg5OScgc3RvcC1jb2xvcj0nIzAwMzA2NCcgb2Zmc2V0PScxJy8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9J19MaW5lYXI5JyB4Mj0nMScgZ3JhZGllbnRUcmFuc2Zvcm09J21hdHJpeCg2Ny40NzMgMCAwIDM4LjQ1MiAxMTcuMDkgNzIuMTg5KScgZ3JhZGllbnRVbml0cz0ndXNlclNwYWNlT25Vc2UnPjxzdG9wIGlkPSdzdG9wOTAyJyBzdG9wLWNvbG9yPScjMDAzMDY0JyBvZmZzZXQ9JzAnLz48c3RvcCBpZD0nc3RvcDkwNCcgc3RvcC1jb2xvcj0nIzAwMzA2NCcgb2Zmc2V0PScxJy8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9J19MaW5lYXIxMCcgeDI9JzEnIGdyYWRpZW50VHJhbnNmb3JtPSdtYXRyaXgoNjcuNDczIDAgMCAzOC40NTIgMTE3LjA5IDkxLjQxNSknIGdyYWRpZW50VW5pdHM9J3VzZXJTcGFjZU9uVXNlJz48c3RvcCBpZD0nc3RvcDkwNycgc3RvcC1jb2xvcj0nIzAwMzA2NCcgb2Zmc2V0PScwJy8+PHN0b3AgaWQ9J3N0b3A5MDknIHN0b3AtY29sb3I9JyMwMDMwNjQnIG9mZnNldD0nMScvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPSdfTGluZWFyMTEnIHgyPScxJyBncmFkaWVudFRyYW5zZm9ybT0nbWF0cml4KDY3LjQ3MyAwIDAgMzguNDUyIDE5NS4wOSAxNTEuNDIpJyBncmFkaWVudFVuaXRzPSd1c2VyU3BhY2VPblVzZSc+PHN0b3AgaWQ9J3N0b3A5MTInIHN0b3AtY29sb3I9JyMwMDMwNjQnIG9mZnNldD0nMCcvPjxzdG9wIGlkPSdzdG9wOTE0JyBzdG9wLWNvbG9yPScjMDAzMDY0JyBvZmZzZXQ9JzEnLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD0nX0xpbmVhcjEyJyB4Mj0nMScgZ3JhZGllbnRUcmFuc2Zvcm09J21hdHJpeCg2Ny40NzMgMCAwIDM4LjQ1MiAxOTUuMDkgOTEuNDE1KScgZ3JhZGllbnRVbml0cz0ndXNlclNwYWNlT25Vc2UnPjxzdG9wIGlkPSdzdG9wOTE3JyBzdG9wLWNvbG9yPScjMDAzMDY0JyBvZmZzZXQ9JzAnLz48c3RvcCBpZD0nc3RvcDkxOScgc3RvcC1jb2xvcj0nIzAwMzA2NCcgb2Zmc2V0PScxJy8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9J19MaW5lYXIxNCcgeDI9JzEnIGdyYWRpZW50VHJhbnNmb3JtPSdtYXRyaXgoMTUwIDAgMCAxNzguNjUgMTQ1LjE4IDIzNS44NCknIGdyYWRpZW50VW5pdHM9J3VzZXJTcGFjZU9uVXNlJz48c3RvcCBpZD0nc3RvcDkyNycgb2Zmc2V0PScwJy8+PHN0b3AgaWQ9J3N0b3A5MjknIG9mZnNldD0nMScvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjwvc3ZnPg==", - "providedOnSchulstrukturknoten": 0 + "providedOnSchulstrukturknoten": 0, + "keycloakGroup": "OP.SH-service", + "keycloakRole": "OP.SH-user" }, { "id": 5, @@ -58,7 +68,9 @@ "kategorie": "VERWALTUNG", "logoMimeType": "image/svg+xml", "logoBase64": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDI3LjkuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IldvcnQtX3gyRl9CaWxkbWFya2VfU2NodWxwb3J0YWxfU0hfUkdCIgoJIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IiB2aWV3Qm94PSIwIDAgMTE5LjA2IDExOS4wNiIKCSBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAxMTkuMDYgMTE5LjA2OyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Cgkuc3Qwe2ZpbGw6I0ZGRkZGRjt9Cgkuc3Qxe2ZpbGw6dXJsKCNTVkdJRF8xXyk7fQo8L3N0eWxlPgo8Zz4KCTxjaXJjbGUgY2xhc3M9InN0MCIgY3g9IjU5LjcxIiBjeT0iNTkuNTMiIHI9IjUzLjc4Ii8+Cgk8bGluZWFyR3JhZGllbnQgaWQ9IlNWR0lEXzFfIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9Ii00NC41NTc2IiB5MT0iNjUuNDk3NCIgeDI9IjkzLjQ5MzIiIHkyPSI2NS40OTc0Ij4KCQk8c3RvcCAgb2Zmc2V0PSIwLjUxMTYiIHN0eWxlPSJzdG9wLWNvbG9yOiMxRUFFOUMiLz4KCQk8c3RvcCAgb2Zmc2V0PSIwLjY1NzciIHN0eWxlPSJzdG9wLWNvbG9yOiMxRUFFOUMiLz4KCQk8c3RvcCAgb2Zmc2V0PSIwLjY2MzkiIHN0eWxlPSJzdG9wLWNvbG9yOiMxRUFFOUMiLz4KCQk8c3RvcCAgb2Zmc2V0PSIxIiBzdHlsZT0ic3RvcC1jb2xvcjojMDAxRTQ5Ii8+CgkJPHN0b3AgIG9mZnNldD0iMSIgc3R5bGU9InN0b3AtY29sb3I6IzAwMUU0OSIvPgoJCTxzdG9wICBvZmZzZXQ9IjEiIHN0eWxlPSJzdG9wLWNvbG9yOiMwMDMwNjQiLz4KCQk8c3RvcCAgb2Zmc2V0PSIxIiBzdHlsZT0ic3RvcC1jb2xvcjojMDAzMDY0Ii8+Cgk8L2xpbmVhckdyYWRpZW50PgoJPHBhdGggY2xhc3M9InN0MSIgZD0iTTU4LjksMTA3LjUxVjYxLjY1bC0xNS4zNC0xMi4zaDMwLjY5Vjg5LjVjMTEuNTItNS42NywxOS40Ny0xNy41NCwxOS40Ny0zMS4yMgoJCWMwLTE5LjE4LTE1LjYtMzQuNzgtMzQuNzgtMzQuNzhzLTM0Ljc4LDE1LjYtMzQuNzgsMzQuNzhjMCwxMy42OSw3Ljg4LDI1LjM3LDE5LjQsMzEuMDUiLz4KPC9nPgo8L3N2Zz4=", - "providedOnSchulstrukturknoten": 0 + "providedOnSchulstrukturknoten": 0, + "keycloakGroup": "Schulportal-Administration-service", + "keycloakRole": "Schulportal-Administration-user" }, { "id": 6, @@ -68,7 +80,9 @@ "kategorie": "VERWALTUNG", "logoMimeType": "image/svg+xml", "logoBase64": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDI0LjAuMSwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkViZW5lXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCAxMDUuMiA5OS4yMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNDQyLjIgOTkuMjE7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KCS5zdDB7ZmlsbDojRDYwRDRDO30KCS5zdDF7ZmlsbDojMDAzMDYzO30KPC9zdHlsZT4KPGc+Cgk8Zz4KCQk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNNzMuNzEsNzAuNzdsLTEuNjMtMTguNDZjOC4yOC0xLjkyLDE0LjQ1LTkuMzMsMTQuNDUtMTguMTljMC0xMC4zMi04LjM3LTE4LjY5LTE4LjY5LTE4LjY5CgkJCWMtMTAuMzIsMC0xOC42OSw4LjM3LTE4LjY5LDE4LjY5YzAsMi44NiwwLjY2LDUuNTUsMS44LDcuOTdsLTgsNi4yN2MxLjA4LDEuMDYsMi4wMywyLjI0LDIuODUsMy41Mmw3LjU2LTUuOTMKCQkJYzMuMzgsNC4xMiw4LjQ4LDYuNzcsMTQuMiw2Ljg1bDEuNjIsMTguMzZjLTMuODEsMS4yOC02LjU3LDQuODgtNi41Nyw5LjEyYzAsNS4zMiw0LjMxLDkuNjMsOS42Myw5LjYzCgkJCWM1LjMyLDAsOS42My00LjMxLDkuNjMtOS42M0M4MS44OCw3NS40NSw3OC4zMyw3MS40Nyw3My43MSw3MC43N3ogTTcyLjI1LDg1LjM3Yy0yLjgxLDAtNS4xLTIuMjktNS4xLTUuMQoJCQljMC0yLjgxLDIuMjktNS4xLDUuMS01LjFjMi44MSwwLDUuMSwyLjI5LDUuMSw1LjFDNzcuMzUsODMuMDgsNzUuMDYsODUuMzcsNzIuMjUsODUuMzd6Ii8+CgkJPHBhdGggY2xhc3M9InN0MSIgZD0iTTYwLjU4LDc0LjE0TDQ0LjksNjguNWMwLjU2LTEuNzEsMC44Ny0zLjUyLDAuODctNS40MmMwLTkuNTgtNy43Ny0xNy4zNS0xNy4zNS0xNy4zNVMxMS4wOCw1My41LDExLjA4LDYzLjA4CgkJCXM3Ljc3LDE3LjM1LDE3LjM1LDE3LjM1YzYuMDYsMCwxMS4zOS0zLjEyLDE0LjQ5LTcuODNsMTYuMjgsNS44NkM1OS40MSw3Ni45Miw1OS44OCw3NS40Niw2MC41OCw3NC4xNHogTTI4LjQzLDcwLjg3CgkJCWMtNC4yOSwwLTcuNzgtMy40OS03Ljc4LTcuNzhjMC00LjI5LDMuNDktNy43OCw3Ljc4LTcuNzhzNy43OCwzLjQ5LDcuNzgsNy43OEMzNi4yMiw2Ny4zNywzMi43Miw3MC44NywyOC40Myw3MC44N3oiLz4KCTwvZz4KPC9nPgo8L3N2Zz4K", - "providedOnSchulstrukturknoten": 0 + "providedOnSchulstrukturknoten": 0, + "keycloakGroup": "School-SH-service", + "keycloakRole": "School-SH-user" }, { "id": 7, @@ -78,7 +92,9 @@ "kategorie": "VERWALTUNG", "logoMimeType": "image/svg+xml", "logoBase64": "PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0ndXRmLTgnPz48IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMjQuMS4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAtLT48c3ZnIHZlcnNpb249JzEuMScgaWQ9J0ViZW5lXzEnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgeG1sbnM6eGxpbms9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsnIHg9JzBweCcgeT0nMHB4JyB2aWV3Qm94PScwIDAgNTM0IDEwOScgc3R5bGU9J2VuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNTM0IDEwOTsnIHhtbDpzcGFjZT0ncHJlc2VydmUnPjxzdHlsZSB0eXBlPSd0ZXh0L2Nzcyc+IC5zdDB7ZmlsbDojRkY2MDMzO30gLnN0MXtmaWxsOiNGRkZGRkY7fSAuc3Qye2VuYWJsZS1iYWNrZ3JvdW5kOm5ldyA7fQo8L3N0eWxlPjxwYXRoIGNsYXNzPSdzdDAnIGQ9J000NzkuNSwxMDloLTQyNUMyNC40LDEwOSwwLDg0LjYsMCw1NC41bDAsMEMwLDI0LjQsMjQuNCwwLDU0LjUsMGg0MjVDNTA5LjYsMCw1MzQsMjQuNCw1MzQsNTQuNWwwLDAgQzUzNCw4NC42LDUwOS42LDEwOSw0NzkuNSwxMDl6Jy8+PGc+PHBhdGggY2xhc3M9J3N0MScgZD0nTTc3LjcsNzEuNGgwLjJsMTEtMzcuOWg1LjRsMTEsMzcuOWgwLjJsMTAuNy0zNy45aDQuN2wtMTMsNDQuMWgtNS4yTDkxLjYsMzkuN2gtMC4yTDgwLjMsNzcuNmgtNS4yTDYyLDMzLjUgaDQuN0w3Ny43LDcxLjR6Jy8+PHBhdGggY2xhc3M9J3N0MScgZD0nTTE0OS43LDYyLjJjMCwwLjMsMCwwLjYsMCwxczAsMC43LTAuMSwxaC0yNC4yYzAsMS40LDAuMywyLjksMC45LDQuMWMwLjUsMS4zLDEuMywyLjQsMi4zLDMuMyBjMSwxLDIuMSwxLjcsMy4zLDIuM2MxLjMsMC41LDIuNywwLjksNC4yLDAuOWMyLjIsMCw0LjEtMC41LDUuOC0xLjZjMS42LTEsMi44LTIuMiwzLjctMy41bDMuMiwyLjVjLTEuNywyLjItMy43LDMuOC01LjgsNC43IGMtMi4xLDEtNC40LDEuNC02LjcsMS40Yy0yLjIsMC00LjItMC4zLTYtMS4xYy0xLjgtMC44LTMuNC0xLjgtNC44LTMuMmMtMS4zLTEuNC0yLjQtMy0zLjEtNC45Yy0wLjgtMS45LTEuMS0zLjktMS4xLTYuMSBzMC4zLTQuMywxLjEtNi4xYzAuOC0xLjksMS43LTMuNSwzLjEtNC45czIuOS0yLjQsNC42LTMuMnMzLjgtMS4xLDUuOC0xLjFjMi4zLDAsNC4zLDAuMyw2LDEuMWMxLjcsMC44LDMuMiwxLjgsNC40LDMuMSBjMS4xLDEuMywyLjEsMi45LDIuNiw0LjZDMTQ5LjQsNTguMywxNDkuNyw2MC4yLDE0OS43LDYyLjJ6IE0xNDUuNCw2MC44Yy0wLjItMi43LTEtNS4xLTIuNi02LjhjLTEuNy0xLjgtNC0yLjctNy0yLjcgYy0xLjQsMC0yLjcsMC4zLTMuOSwwLjhzLTIuMywxLjItMy4yLDIuMWMtMSwwLjktMS43LDEuOS0yLjIsMy4xYy0wLjUsMS4xLTAuOSwyLjQtMSwzLjZoMTkuOVY2MC44eicvPjxwYXRoIGNsYXNzPSdzdDEnIGQ9J00xNjEsNzIuN3Y1aC00LjNWMzAuNmg0LjN2MjNoMC4yYzEuMi0xLjksMi45LTMuMyw0LjktNC4zczQtMS41LDYuMi0xLjVjMi4zLDAsNC40LDAuNCw2LjIsMS4yIGMxLjgsMC44LDMuNCwxLjksNC43LDMuMmMxLjMsMS40LDIuNCwzLDMuMSw0LjlzMS4xLDMuOCwxLjEsNnMtMC4zLDQuMi0xLjEsNmMtMC43LDEuOS0xLjcsMy41LTMuMSw0LjljLTEuMywxLjQtMi45LDIuNC00LjcsMy4yIGMtMS44LDAuOC0zLjksMS4yLTYuMiwxLjJjLTIuMSwwLTQuMi0wLjQtNi4yLTEuNHMtMy43LTIuNC00LjktNC4zTDE2MSw3Mi43TDE2MSw3Mi43eiBNMTgyLjgsNjNjMC0xLjYtMC4zLTMuMS0wLjgtNC42IHMtMS4yLTIuNy0yLjItMy44Yy0xLTEtMi4xLTEuOS0zLjUtMi41cy0zLTEtNC43LTFjLTEuNiwwLTMuMSwwLjMtNC40LDAuOWMtMS40LDAuNi0yLjUsMS40LTMuNiwyLjVjLTEsMS0xLjcsMi4zLTIuNCwzLjggYy0wLjYsMS41LTAuOSwzLTAuOSw0LjZjMCwxLjcsMC4zLDMuMiwwLjksNC42YzAuNSwxLjQsMS4zLDIuNywyLjQsMy43YzEsMSwyLjIsMS44LDMuNiwyLjRzMi45LDAuOSw0LjQsMC45IGMxLjcsMCwzLjMtMC4zLDQuNy0wLjljMS40LTAuNiwyLjUtMS40LDMuNS0yLjVjMS0xLDEuNy0yLjMsMi4yLTMuOEMxODIuNiw2Ni4yLDE4Mi44LDY0LjcsMTgyLjgsNjN6Jy8+PHBhdGggY2xhc3M9J3N0MScgZD0nTTIyOS41LDY4LjRjLTAuOSwyLjEtMi4xLDMuOS0zLjcsNS40Yy0xLjcsMS41LTMuNSwyLjctNS44LDMuNXMtNC44LDEuMi03LjUsMS4yYy0yLjgsMC01LjMtMC40LTcuNi0xLjIgYy0yLjMtMC44LTQuMi0yLTUuNy0zLjVzLTIuOC0zLjMtMy42LTUuNGMtMC44LTIuMS0xLjItNC40LTEuMi03VjM1aDEwLjJ2MjUuNmMwLDEuMSwwLjIsMi4zLDAuNCwzLjNzMC44LDIsMS40LDIuOCBzMS41LDEuNSwyLjQsMS45YzEsMC41LDIuMywwLjcsMy43LDAuN2MxLjUsMCwyLjctMC4zLDMuNy0wLjdjMS0wLjQsMS44LTEuMSwyLjUtMS45YzAuNi0wLjgsMS0xLjcsMS40LTIuOGMwLjMtMSwwLjQtMi4yLDAuNC0zLjMgVjM1aDEwLjJ2MjYuNEMyMzAuOCw2NCwyMzAuNCw2Ni4zLDIyOS41LDY4LjR6Jy8+PHBhdGggY2xhc3M9J3N0MScgZD0nTTI1Ni4yLDc3LjVWNjEuMmMwLTAuOC0wLjEtMS43LTAuMi0yLjRjLTAuMi0wLjgtMC4zLTEuNC0wLjctMmMtMC4zLTAuNi0wLjgtMS0xLjMtMS40IGMtMC42LTAuMy0xLjMtMC41LTIuMi0wLjVjLTAuOSwwLTEuNywwLjItMi4zLDAuNXMtMS4yLDAuOC0xLjcsMS40Yy0wLjQsMC42LTAuOCwxLjMtMSwyLjFjLTAuMywwLjgtMC4zLDEuNi0wLjMsMi40djE2LjFoLTkuOSBWNDcuNWg5LjV2NC4yaDAuMmMwLjMtMC42LDAuOC0xLjMsMS40LTEuOXMxLjItMS4xLDItMS42YzAuOC0wLjQsMS43LTAuOCwyLjUtMWMxLTAuMywxLjktMC40LDMtMC40YzIsMCwzLjcsMC4zLDUuMSwxIHMyLjUsMS43LDMuNCwyLjhjMC45LDEuMSwxLjUsMi40LDEuOCwzLjljMC40LDEuNSwwLjUsMywwLjUsNC40djE4LjVMMjU2LjIsNzcuNUwyNTYuMiw3Ny41eicvPjxwYXRoIGNsYXNzPSdzdDEnIGQ9J00yODMuNiw1NXYxMS40YzAsMS40LDAuMywyLjQsMC44LDMuMXMxLjUsMSwyLjksMWMwLjUsMCwxLDAsMS41LTAuMmMwLjUtMC4xLDEtMC4yLDEuMy0wLjNsMC4yLDcuMiBjLTAuNywwLjMtMS42LDAuNC0yLjUsMC42Yy0xLDAuMi0yLjEsMC4zLTMuMSwwLjNjLTIsMC0zLjctMC4zLTUuMS0wLjhjLTEuMy0wLjUtMi40LTEuMi0zLjItMi4ycy0xLjQtMi0xLjctMy40IGMtMC4zLTEuMy0wLjUtMi43LTAuNS00LjRWNTQuN2gtNC44di03LjRoNC43di03LjloOS43djcuOWg3djcuNGgtN1Y1NUgyODMuNnonLz48cGF0aCBjbGFzcz0nc3QxJyBkPSdNMzA1LjksMzguMWMwLDAuOC0wLjIsMS41LTAuNCwyLjJjLTAuMywwLjctMC43LDEuMi0xLjIsMS43cy0xLDAuOS0xLjgsMS4xYy0wLjcsMC4zLTEuNCwwLjQtMi4yLDAuNCBjLTEuNywwLTMtMC41LTQtMS42cy0xLjctMi40LTEuNy0zLjhjMC0wLjcsMC4yLTEuNCwwLjQtMi4xYzAuMy0wLjcsMC43LTEuMiwxLjItMS43czEuMS0wLjksMS44LTEuMWMwLjctMC4zLDEuNC0wLjQsMi4yLTAuNCBzMS41LDAuMiwyLjIsMC40YzAuNywwLjMsMS4zLDAuNywxLjgsMS4xYzAuNSwwLjUsMC45LDEsMS4yLDEuN0MzMDUuOCwzNi43LDMwNS45LDM3LjMsMzA1LjksMzguMXogTTI5NS40LDc3LjVWNDcuNmg5Ljl2MjkuOCBMMjk1LjQsNzcuNUwyOTUuNCw3Ny41eicvPjxwYXRoIGNsYXNzPSdzdDEnIGQ9J00zMzAuNiw1Ni40Yy0wLjgtMC44LTEuNy0xLjQtMi44LTEuOWMtMS0wLjUtMi4yLTAuOC0zLjQtMC44Yy0xLDAtMS43LDAuMi0yLjUsMC41cy0xLjEsMS0xLjEsMS44IHMwLjQsMS41LDEuMywxLjhjMC45LDAuMywyLjMsMC44LDQuMiwxLjJjMS4xLDAuMywyLjMsMC42LDMuNCwxYzEuMSwwLjQsMi4yLDEsMy4xLDEuN3MxLjcsMS43LDIuMiwyLjZjMC41LDEsMC44LDIuMywwLjgsMy44IGMwLDEuOS0wLjQsMy41LTEuMSw0LjhjLTAuOCwxLjMtMS43LDIuNC0zLDMuMWMtMS4yLDAuOC0yLjYsMS40LTQuMSwxLjdzLTMuMSwwLjUtNC41LDAuNWMtMi40LDAtNC45LTAuNC03LjItMS4xIGMtMi40LTAuOC00LjMtMS45LTUuOC0zLjVsNS41LTUuOGMwLjksMSwxLjksMS43LDMuMiwyLjRjMS4zLDAuNiwyLjYsMSw0LjEsMWMwLjgsMCwxLjYtMC4yLDIuNC0wLjVjMC44LTAuNCwxLjEtMSwxLjEtMiBzLTAuNS0xLjctMS41LTJjLTEtMC40LTIuNC0wLjktNC41LTEuNGMtMS0wLjMtMi4xLTAuNS0zLjEtMWMtMS0wLjQtMi0xLTIuOC0xLjdzLTEuNS0xLjUtMi0yLjVzLTAuOC0yLjItMC44LTMuNiBjMC0xLjgsMC40LTMuMywxLjEtNC42YzAuOC0xLjIsMS43LTIuMywzLTMuMWMxLjItMC44LDIuNS0xLjQsNC0xLjdjMS41LTAuNCwyLjktMC41LDQuNC0wLjVjMi4zLDAsNC40LDAuMyw2LjUsMSBjMi4yLDAuNywzLjksMS43LDUuNCwzLjFMMzMwLjYsNTYuNHonLz48L2c+PGcgY2xhc3M9J3N0Mic+PHBhdGggY2xhc3M9J3N0MScgZD0nTTM2Mi41LDYxLjljLTAuNC0wLjgtMS4xLTEuNS0yLTIuMWMtMC45LTAuNS0xLjktMC44LTMtMC44Yy0wLjUsMC0xLDAuMS0xLjYsMC4ycy0xLDAuMy0xLjQsMC42IGMtMC40LDAuMy0wLjcsMC42LTEsMWMtMC4yLDAuNC0wLjQsMC45LTAuNCwxLjRjMCwxLDAuNCwxLjcsMS4yLDIuMmMwLjgsMC41LDIsMC45LDMuNywxLjNjMi40LDAuNSw0LjIsMS4yLDUuMywyLjIgYzEuMSwwLjksMS43LDIuMiwxLjcsMy44YzAsMS4yLTAuMiwyLjEtMC43LDIuOWMtMC41LDAuOC0xLDEuNS0xLjgsMmMtMC43LDAuNS0xLjUsMC45LTIuNSwxLjFzLTEuOCwwLjMtMi44LDAuMyBjLTEuNSwwLTMtMC4zLTQuNS0xYy0xLjUtMC42LTIuNi0xLjYtMy42LTNsMi40LTEuN2MwLjUsMC45LDEuMywxLjcsMi4zLDIuM2MxLDAuNiwyLjEsMC45LDMuNCwwLjljMC42LDAsMS4yLTAuMSwxLjgtMC4yIGMwLjYtMC4xLDEuMS0wLjMsMS41LTAuNmMwLjQtMC4zLDAuOC0wLjcsMS0xLjFjMC4zLTAuNSwwLjQtMSwwLjQtMS43YzAtMS4xLTAuNS0xLjktMS41LTIuNGMtMS0wLjUtMi41LTEtNC41LTEuNSBjLTAuNi0wLjEtMS4zLTAuMy0xLjktMC41Yy0wLjctMC4yLTEuMy0wLjUtMS45LTFjLTAuNi0wLjQtMS4xLTEtMS40LTEuNmMtMC40LTAuNi0wLjYtMS40LTAuNi0yLjRjMC0xLDAuMi0xLjksMC42LTIuNyBjMC40LTAuNywxLTEuNCwxLjYtMS44YzAuNy0wLjUsMS41LTAuOCwyLjMtMS4xYzAuOS0wLjIsMS44LTAuMywyLjctMC4zYzEuNCwwLDIuOCwwLjMsNC4xLDFjMS4zLDAuNiwyLjMsMS41LDMsMi43TDM2Mi41LDYxLjl6JyAvPjxwYXRoIGNsYXNzPSdzdDEnIGQ9J00zODAuMyw1OS42aC01Ljh2MTEuOWMwLDAuOCwwLjEsMS40LDAuMiwxLjljMC4xLDAuNSwwLjQsMC45LDAuNiwxLjJjMC4zLDAuMywwLjYsMC41LDEsMC42IGMwLjQsMC4xLDAuOCwwLjIsMS4yLDAuMmMwLjQsMCwwLjgtMC4xLDEuMy0wLjJjMC41LTAuMSwwLjktMC4zLDEuMy0wLjVsMC4xLDIuNmMtMC41LDAuMi0xLjEsMC40LTEuNiwwLjUgYy0wLjYsMC4xLTEuMiwwLjItMS45LDAuMmMtMC42LDAtMS4xLTAuMS0xLjctMC4yYy0wLjYtMC4xLTEuMi0wLjQtMS43LTAuOHMtMS0xLTEuMy0xLjdjLTAuMy0wLjctMC41LTEuNi0wLjUtMi43VjU5LjZoLTQuMnYtMi41IGg0LjJ2LTUuOGgzdjUuOGg1LjhWNTkuNnonLz48cGF0aCBjbGFzcz0nc3QxJyBkPSdNMzk3LjcsNjQuM2MwLTEuOC0wLjUtMy4xLTEuNC00Yy0wLjktMC45LTIuMy0xLjMtNC4xLTEuM2MtMS4yLDAtMi40LDAuMi0zLjQsMC43Yy0xLDAuNC0xLjksMS0yLjcsMS43IGwtMS43LTJjMC44LTAuOCwyLTEuNSwzLjMtMi4xYzEuNC0wLjYsMi45LTAuOCw0LjctMC44YzEuMSwwLDIuMSwwLjIsMy4xLDAuNWMxLDAuMywxLjgsMC44LDIuNSwxLjRjMC43LDAuNiwxLjMsMS40LDEuNywyLjMgYzAuNCwwLjksMC42LDIsMC42LDMuM3Y4LjljMCwwLjgsMCwxLjYsMC4xLDIuNGMwLjEsMC44LDAuMSwxLjYsMC4zLDIuMWgtMi43Yy0wLjEtMC41LTAuMi0xLTAuMi0xLjZjLTAuMS0wLjYtMC4xLTEuMS0wLjEtMS43IGgtMC4xYy0wLjksMS40LTIsMi4zLTMuMiwyLjlzLTIuNiwwLjktNC4zLDAuOWMtMC44LDAtMS42LTAuMS0yLjQtMC4zcy0xLjYtMC42LTIuMy0xLjFjLTAuNy0wLjUtMS4zLTEuMS0xLjctMS45IGMtMC41LTAuOC0wLjctMS43LTAuNy0yLjljMC0xLjYsMC40LTIuOCwxLjItMy43czEuOS0xLjYsMy4yLTJjMS4zLTAuNSwyLjktMC43LDQuNi0wLjljMS43LTAuMSwzLjUtMC4yLDUuNC0wLjJWNjQuM3ogTTM5Ni45LDY3LjNjLTEuMiwwLTIuNCwwLjEtMy43LDAuMmMtMS4yLDAuMS0yLjQsMC4zLTMuNCwwLjZjLTEsMC4zLTEuOCwwLjctMi41LDEuM2MtMC42LDAuNi0xLDEuNC0xLDIuM2MwLDAuNywwLjEsMS4zLDAuNCwxLjggczAuNiwwLjksMS4xLDEuMmMwLjUsMC4zLDEsMC41LDEuNSwwLjdjMC42LDAuMSwxLjEsMC4yLDEuNywwLjJjMSwwLDItMC4yLDIuOC0wLjVjMC44LTAuNCwxLjUtMC45LDItMS41YzAuNi0wLjYsMS0xLjMsMS4zLTIuMiBjMC4zLTAuOCwwLjQtMS43LDAuNC0yLjZ2LTEuNUgzOTYuOXonLz48cGF0aCBjbGFzcz0nc3QxJyBkPSdNNDA4LjEsNTkuNWMwLTAuOS0wLjEtMS43LTAuMS0yLjRoMi44YzAuMSwwLjYsMC4xLDEuMiwwLjEsMS44YzAsMC43LDAsMS4yLDAsMS43aDAuMSBjMC42LTEuMiwxLjUtMi4yLDIuNi0yLjljMS4yLTAuNywyLjUtMS4xLDMuOS0xLjFjMC40LDAsMC43LDAsMSwwYzAuMywwLDAuNiwwLjEsMC45LDAuMmwtMC40LDIuOGMtMC4yLTAuMS0wLjUtMC4xLTAuOS0wLjIgcy0wLjgtMC4xLTEuMi0wLjFjLTAuOCwwLTEuNSwwLjEtMi4zLDAuNGMtMC43LDAuMy0xLjQsMC43LTEuOSwxLjRjLTAuNSwwLjYtMSwxLjQtMS4zLDIuNGMtMC4zLDEtMC41LDIuMS0wLjUsMy41djEwLjVoLTNWNjEuNiBDNDA4LjIsNjEsNDA4LjIsNjAuMyw0MDguMSw1OS41eicvPjxwYXRoIGNsYXNzPSdzdDEnIGQ9J000MzIuNSw1OS42aC01Ljh2MTEuOWMwLDAuOCwwLjEsMS40LDAuMiwxLjljMC4xLDAuNSwwLjQsMC45LDAuNiwxLjJjMC4zLDAuMywwLjYsMC41LDEsMC42IGMwLjQsMC4xLDAuOCwwLjIsMS4yLDAuMmMwLjQsMCwwLjgtMC4xLDEuMy0wLjJjMC41LTAuMSwwLjktMC4zLDEuMy0wLjVsMC4xLDIuNmMtMC41LDAuMi0xLjEsMC40LTEuNiwwLjUgYy0wLjYsMC4xLTEuMiwwLjItMS45LDAuMmMtMC42LDAtMS4xLTAuMS0xLjctMC4yYy0wLjYtMC4xLTEuMi0wLjQtMS43LTAuOHMtMS0xLTEuMy0xLjdjLTAuMy0wLjctMC41LTEuNi0wLjUtMi43VjU5LjZoLTQuMnYtMi41IGg0LjJ2LTUuOGgzdjUuOGg1LjhWNTkuNnonLz48cGF0aCBjbGFzcz0nc3QxJyBkPSdNNDU1LjgsNjYuN2MwLDAuMiwwLDAuNCwwLDAuN2MwLDAuMiwwLDAuNSwwLDAuN2gtMTYuOWMwLDEsMC4yLDIsMC42LDIuOWMwLjQsMC45LDAuOSwxLjcsMS42LDIuNCBjMC43LDAuNywxLjUsMS4yLDIuNCwxLjZzMS45LDAuNiwyLjksMC42YzEuNSwwLDIuOS0wLjQsNC0xLjFjMS4xLTAuNywyLTEuNSwyLjYtMi41bDIuMiwxLjdjLTEuMiwxLjUtMi42LDIuNi00LDMuMyBjLTEuNSwwLjctMywxLTQuNywxYy0xLjUsMC0yLjktMC4zLTQuMi0wLjhjLTEuMy0wLjUtMi40LTEuMy0zLjMtMi4yYy0wLjktMS0xLjctMi4xLTIuMi0zLjRjLTAuNS0xLjMtMC44LTIuNy0wLjgtNC4zIHMwLjMtMywwLjgtNC4zczEuMi0yLjQsMi4yLTMuNHMyLTEuNywzLjMtMi4yYzEuMi0wLjUsMi42LTAuOCw0LjEtMC44YzEuNiwwLDMsMC4zLDQuMiwwLjhzMi4yLDEuMywzLjEsMi4yYzAuOCwwLjksMS40LDIsMS45LDMuMiBDNDU1LjUsNjQsNDU1LjgsNjUuMyw0NTUuOCw2Ni43eiBNNDUyLjcsNjUuN2MtMC4xLTEuOS0wLjctMy41LTEuOS00LjhjLTEuMS0xLjMtMi44LTEuOS00LjktMS45Yy0xLDAtMS45LDAuMi0yLjcsMC41IGMtMC44LDAuNC0xLjYsMC45LTIuMiwxLjVjLTAuNiwwLjYtMS4xLDEuMy0xLjUsMi4xYy0wLjQsMC44LTAuNiwxLjYtMC43LDIuNUg0NTIuN3onLz48cGF0aCBjbGFzcz0nc3QxJyBkPSdNNDY0LjgsNTcuMWMwLjEsMC42LDAuMSwxLjIsMC4xLDEuOGMwLDAuNywwLDEuMiwwLDEuN2gwLjFjMC42LTEuMiwxLjUtMi4yLDIuOC0yLjljMS4zLTAuNywyLjctMS4xLDQuMS0xLjEgYzIuNiwwLDQuNSwwLjgsNS44LDIuM2MxLjMsMS41LDEuOSwzLjYsMS45LDYuMXYxMi41aC0zVjY2LjJjMC0xLjEtMC4xLTItMC4zLTIuOWMtMC4yLTAuOS0wLjUtMS42LTAuOS0yLjIgYy0wLjQtMC42LTEtMS4xLTEuNy0xLjVjLTAuNy0wLjMtMS42LTAuNS0yLjctMC41Yy0wLjgsMC0xLjUsMC4yLTIuMywwLjVjLTAuNywwLjMtMS40LDAuOC0yLDEuNWMtMC42LDAuNy0xLDEuNS0xLjQsMi41IGMtMC4zLDEtMC41LDIuMi0wLjUsMy42djEwLjVoLTNWNjEuNmMwLTAuNiwwLTEuMywwLTIuMWMwLTAuOS0wLjEtMS43LTAuMS0yLjRINDY0Ljh6Jy8+PC9nPjwvc3ZnPg==", - "providedOnSchulstrukturknoten": 0 + "providedOnSchulstrukturknoten": 0, + "keycloakGroup": "WebUntis-service", + "keycloakRole": "WebUntis-user" }, { "id": 8, @@ -88,7 +104,9 @@ "kategorie": "HINWEISE", "logoMimeType": "image/svg+xml", "logoBase64": "PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnIHN0YW5kYWxvbmU9J25vJz8+PCEtLSBDcmVhdGVkIHdpdGggSW5rc2NhcGUgKGh0dHA6Ly93d3cuaW5rc2NhcGUub3JnLykgLS0+PHN2ZyB4bWxuczpkYz0naHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8nIHhtbG5zOmNjPSdodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMnIHhtbG5zOnJkZj0naHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIycgeG1sbnM6c3ZnPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB4bWxuczp4bGluaz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluaycgeG1sbnM6c29kaXBvZGk9J2h0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkJyB4bWxuczppbmtzY2FwZT0naHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZScgdmVyc2lvbj0nMS4xJyBpZD0nc3ZnMicgd2lkdGg9Jzk2JyBoZWlnaHQ9JzExNi4xNicgdmlld0JveD0nMCAwIDk2IDExNi4xNicgc29kaXBvZGk6ZG9jbmFtZT0nYW5sZWl0dW5nLnN2ZycgaW5rc2NhcGU6dmVyc2lvbj0nMC45Mi4zICgyNDA1NTQ2LCAyMDE4LTAzLTExKSc+PG1ldGFkYXRhIGlkPSdtZXRhZGF0YTgnPjxyZGY6UkRGPjxjYzpXb3JrIHJkZjphYm91dD0nJz48ZGM6Zm9ybWF0PmltYWdlL3N2Zyt4bWw8L2RjOmZvcm1hdD48ZGM6dHlwZSByZGY6cmVzb3VyY2U9J2h0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlJyAvPjxkYzp0aXRsZT48L2RjOnRpdGxlPjwvY2M6V29yaz48L3JkZjpSREY+PC9tZXRhZGF0YT48ZGVmcyBpZD0nZGVmczYnIC8+PHNvZGlwb2RpOm5hbWVkdmlldyBwYWdlY29sb3I9JyNmZmZmZmYnIGJvcmRlcmNvbG9yPScjNjY2NjY2JyBib3JkZXJvcGFjaXR5PScxJyBvYmplY3R0b2xlcmFuY2U9JzEwJyBncmlkdG9sZXJhbmNlPScxMCcgZ3VpZGV0b2xlcmFuY2U9JzEwJyBpbmtzY2FwZTpwYWdlb3BhY2l0eT0nMCcgaW5rc2NhcGU6cGFnZXNoYWRvdz0nMicgaW5rc2NhcGU6d2luZG93LXdpZHRoPSc2NDAnIGlua3NjYXBlOndpbmRvdy1oZWlnaHQ9JzQ4MCcgaWQ9J25hbWVkdmlldzQnIHNob3dncmlkPSdmYWxzZScgaW5rc2NhcGU6em9vbT0nMi4wMzE2ODA0JyBpbmtzY2FwZTpjeD0nNDgnIGlua3NjYXBlOmN5PSc1OC4wODAwMDInIGlua3NjYXBlOndpbmRvdy14PScwJyBpbmtzY2FwZTp3aW5kb3cteT0nMCcgaW5rc2NhcGU6d2luZG93LW1heGltaXplZD0nMCcgaW5rc2NhcGU6Y3VycmVudC1sYXllcj0nc3ZnMicgLz48aW1hZ2Ugd2lkdGg9Jzk2JyBoZWlnaHQ9JzExNi4xNicgcHJlc2VydmVBc3BlY3RSYXRpbz0nbm9uZScgeGxpbms6aHJlZj0nZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFTd0FBQUZyQ0FZQUFBQnJJTFNoQUFBQUJtSkxSMFFBQUFBd0FHU1g5L3V1QUFBQUNYQkkKV1hNQUFDNGpBQUF1SXdGNHBUOTJBQUFBQjNSSlRVVUg0d3dDRHpzbm9SbjdhQUFBSUFCSlJFRlVlTnJ0blhlWVZkVzVoOThaaGlyUwpSSW9vWWtGRk1TSmdBVUdrMlh2VWFDUWFva1pqMUZoaU5Ja2FvMWVOR2t1TUppWWFXMnpYaHIxZ0IwU3NhS0ppUVJRQkFVR2FnUFM1CmYzeHJMc013Yzg3ZSsreDlkdnU5ejNNZW1KbHpkbGxucmQ5ZTYxdGZxYURYaWVTTTlzQ213SlpBSzJBeU1BUDRBaUhLUjNQWEJ6c0IKMndLZkFsKzcvcmhDelZNL1ZUbTYxdzJBazRIamdSL1UrZHQ4NENIZ0Z1QXRkUXNSTVNPQW53QjcxL08zcDRDN2dmdlZUT3RUa1pNWgoxczdBalVEL0l1OWJDbHdHWEs2dUlTS2dMWEFOTU5MRGUrOERmdWtlcHNMUmlFNjlzMzZQdTdpblZnOFA3MjBNREhVeno1ZlZQVVNJCmJBaU1BZzd6K1A0ZGdUMkJoNEZsYXI1OENGWUxON1hlenVmbjluUTJoUS9VUlVSSTNBQWM0Zk16bTdsWjJaTnFQcU15NC9kM0pyQjcKd005ZUJuUlVGeEVoc0I4UTFQWnlNbkNBbWpEN2d0VUJPTDJFejI4QkhLY3VJa3FrQ2pnRmFGVGlnMWRrWExBR1kxdkdwWENNdW9nbwprUjJBZlVzOFJoLzNBSlZnWmZqZWhvWndqRzN4WnF3WG9pRjZBVTFLUEVaYjRDQTFaWFlGcXhuK0RlMzEwU1NrNDRqOHNuVkl4MUUvCnpMQmdOY0oyQ0V1bEN0aEkzVVNVUUl1UWp0TlVUWm50SmVHYWhCMUg1QlAxUXdtV0VFS0NKWVFRRWl3aGhKQmdDU0VrV0VJSUljRVMKUWdnSmxoQkNnaVdFRUJJc0lZU1FZQWtoSkZoQ0NDSEJFa0lJQ1pZUVFvSWxoQkFTTENHRWtHQUpJU1JZUWdnaHdSSkNDQW1XRUVLQwpKWVFRRWl3aGhKQmdDU0VrV0VJSUljSHl6eEpnWlVqSFdxUnVJa3BnYVVqSCtWNU5hWldOZzdJUnNBblFQSUgzMVJ4b0U5S3hkZ0srClVsY1JBZGtxcE9OMEJYWk42RDNPQlJZQTg2SStVUVc5VHZUei91MkFQWUNCUUUrZ2ovcWpFTGxuTGpBVkdBZU1CVjRBRnNZcFdIMkIKVTREOWdjNzZmb1FRQlhnSEdBM2NBTXdLODhDTjZOUzcwTjliQXhjRDE3dVoxWWI2TG9RUVJkakVyY0lPZHpPdDk4TTZjQ0dqKzA3QQprOEQ1UUR0OUIwSUluMndKM0E3Y0JyU0tVckNHQUM4QkE5VG1Rb2dTcUFCR0FzOFFnam1wUHNIYUUzaFlzeW9oUklqMEIxNEVPb1lwCldOc0NEeENlUzRBUVF0VFFBL2dYMEN6b0Flb2EzZS9CYkZkQ0NCRUYyd0RMTVBlSGttWll2d0QyVVhzS0lTTG1kOENPcFFoV0IrQTMKYWtjaFJCbG9BZnkrRk1FYUFYUlRPd29oeXNRUndHNUJCR3NEOStFczhRRXdPNFRqTEFNbUFvdlZ2MFFBSmdOdmgzU3NTYTVmWjRWRwptQm5LdDJCMUIvcGxxQ0d1Qm9hNnpsSXFqWUVyZ1VPQUdScC93Z2RQWWY2TW8wTTYzZ3RZdE1tWURMWFJidmpjTWF6RS9DT3l3dW1ZCkxlNGJKelpoUEFXYVlrNjBld0h2YWh3S0Q5d09IQWhNbzdTTUtMVnBpcVU2MmcrNE5TUHR0QVVXd3VOTHNJWmw1T1pQQm01MC8yK0oKZWRpR1FWV3Q2ZjMrd09zYWo2SUFkd0VuMUJsallWQnpuS1hBU2NBdEdXaXJwbGhpQlYrTmtJWHNDK2NBLzZ6MWMzVkU1NW1OQlhSKwpvbkVwNnVGSjRQZ0krMTl0Zmc0OGtZRTI2K0JYc0xaTStRM2ZBMXhieHZQTmNrdFBJV3J6R1hCc21jOTVBdUhZYXVOa0k3K0MxU0xGCk56c0h5eVpSYnA0SHJ0TVlGWFZtK1l0aTZQL241VTJ3VnFmNFpxOEdwc2QwN2l1d0xJdENQTzZXZzNId0NQQjBpdHZPMS9JNXpVVW8KcGhDdjRYRU9jTGZHYXU1WkExeEZlZXhXRFhFcHNDb1BqWjFtd1hvSVMzd2ZKemNEOHpWbWM4MFk0TFdZcjJFQ0FZT0pKVmpsWVNHVwpCaWR1cGdOdmFNem1tbEc2RGdsV01iNEMza3ZJdFl6V21NMHRLN0hRclNTZ0dWYUMrWmprYkJhOHFIR2JXejRHUGt6SXRVd25XN0dHCm1SS3NpUW02bHVtb0ttOWUrWW95RkEvMXlOd0VpYWNFcTU0dkp5bXNCajdYMk0wbFNkdHcrVWFDbFV3cUVuUXRhNEFWR3J1NVpJMnUKUjRJVmhtQlZFRTYyQnJBQXpXSlVhK3ptRWk4UHpyRDZZUlAxdy9RSzFzb2lmMStCT1hhV3lncmdpeUx2cWNJcVpJdjg0V1hqWjA1SQo1L0lTMGRFNDZ3MmVWc0hxNFVGb3d0am0vUTV6eWlzMkErdW1zWnRMdW5oNFQxZzUxTjcwMEErM3pIcURaMVd3SUp6WXJzY283azIvCkxlRWxhUlBwWW5OZzR5THZlUVA0dE1UelRNV1NTQmFpTFFFcjBVaXdvbWRyRDlQZi93TDNsWENPVmNBTkh0N1hYK00ydDNRRHRpL3kKbm5uQVgwczh6NDF1dGwrSVRZQk5KVmpKZmJJTjhpQTQ1d0F6QTU3ak44RDdIdDUzb01adGJta0NEUEFvT0VFektqd0RYT1BoZlFmbApvY0hUS2xqTmdCOTVlTjlNWUY4c3Q3WWYvb0czZkZjN0FuMDBiblBOa2NDR0h0NzNVK0JsbjhkK0FVc0tXR3ozcndsd2pBUXIyUnlDCk55UGpmNERCN2dtM3JNaDd2d0ZPQkU3eGVBMW40czN0UVdTWG5keERzUmh6M0N6b01vb24rbHVNNVhvN0JHL09xWWRqdHRUTVUwR3YKRXhlUTNtMzVQd0cvOWZIK1ljQnh3QTlZVzZoaXBadUpqUWJ1OExHRTNBNUxLOUpPWXpiM3ZJMlZ5dk9hazJvSExDZDdQOHhZWHVGZQpjMTJmdWdkNHgvTVl0dmZ1bk5LMmV3b2ZacFcwQzlaQ1lIY3NDTlV2SGR3TWN5bkJVdHZlNzNGWkt2TEJXY0QxQVQ3WDNvbE9JNnhlCmdGL09BUDZTNG5iekpWaVZLZThrcllIYjhPWUZYTi95YjFaQXNUcE9ZaVhxY0FVK1MxWTU1cnJsWWhDeDZvVmxHODBObFJtNGgzNVkKNXM5eU1hak01eFBwb0JsV2s3QkxtYzdYQlV2UjNVcUNsVDVHVXA3ODdudTZwV0J6alU5UkR6MHczNy8yRVorbkkzQXZaZ3ZMRlpVWgp1cGNUc1JMaFVjVlREY1hTTW5mU3VCUUZHSWlsSzk0cW91TnZoVlhLMlRPUGpWdVpzZnY1S2VhK3NIdkl4NzBBZU5ZOTJZUW94Z0FzCmxDWnNPK2VSN3JpNWphNm96T0E5RFhQaWNoV3dRUWdkWkN4bTJGUzhvUEJEVjJjK2VBem9YZUt4K21MMnFnZmNjWE5MWlVidnF6VncKTHBZeTlpb3M5dENMTjNLVnN6OGNEYnp1N0FRRE5QWkVDUnlNZWF6ZjYyWkdiVDErcmcwd0hIZ1FxelIrckpveS9YNVlYbG1OZWJ5LwpqTVVIVG1OZEo3K05NRS9odms2Z1pLY1NVVEhGTGVzK2RIMnlkbTYzWmtCM3pGMWhzSHZRWmgxZmZsaDVXZVkwd2p5QmQ5WjRFVEd6CkpUbklXNlVsb1JCQ2dxVW1FRUpJc0lRUVFvSWxoSkJnQ1NHRUJFc0lJY0lUTE5YVUUwTEVoYTlzRTFWWXRzSldxSHF4RUtLOE5BSW0KK1JXczRlNkRhOVIrUW9neTBoakwrT3RMc09hcjNZUVFhVUJHZHlHRUJFc0lJU1JZUWdnSmxoQkNTTENFRUNJa0dzcUhWYUdteVQwVgpoT2Zxb3Y0a2FpWklxOE1Tck81WXhZOCtXQmwzK1dYbG14b2ZtWW5BR0N4RHBsK0dZOWt6ZHl5MW80cE0wQXpMOWpzT2VJVUFSWXhyCkJPc2c0Ri9BeG1wVFVRK0xnRE94TW1wZWFBbmNoRlhJRnFJdTV6clIraW53dWQ4cFdqL2dVWW1WS0VBcjREYmd4eDdlMndpNFdtSWwKaWpBQWVCaWY5Uk1xZ2Q4aTQ3dnd4Z1VVdDBmdEFKeWlwaEllMkFtZjFZQnFabGhDZUdFVHpCNVZpTjVxSnVHRFhmMEtWbE8xbWZCSQpFNkJ6a2Zkc29HWVNQdGpRejVzcjBXNmc4RTQxeFhmNzFKK0VIM3oxRjltdWhCQ3BRWUlsaEpCZ0NTR0VCRXNJSWNFU1FnZ0psaEJDCmhFU1Zta0NrbUdVb0UwUVVWR00rZDRtYjBFaXdSTnFZQUx3QnZBL00waW9oRWxaajhhTTdBSDJ4ckJ1TkpWaENlT2NkNEsvQWZjQUsKTlVkWkdRS01CRVpJc0lRb3p1M0FyNEY1YW9wWWVNbTkzZ0t1aTNOV0s4RVNTZWVmd01scWhrUndnNXZkL2oydUM5RDZYeVNaMTRDegoxQXlKNG1iZ2NnbVdFT3V5RlBnTlBrdVppN0p3T2ZDWkJFdUl0WXgzTDVFOGxnQi9rV0FKc1pabjFBU0o1bFZndmdSTENQZ2U4N1VTCnllVkw0QXNKbGhEbXVDamJWYkpaREN5UVlBbWh2cW52U0oxQ0NKRjI1RGdxc2tJRjBObzloS3ZWSEw1b2pCblFWMHF3aENnUHpZRW4KZ1BacEdIZ0pveTFXSDNDTUJFdUk4czJ3ZWdNdDFCU0JSU3Z4eUlZbHNzUXlOVUZnVnFmaElqWERpb2NWYm5BdHhrSWMxckEyYWRxVwpXSEhKSnFqSXJSQVNySmo0RXZnRWVCbEwwL0VCNW11MHZNNnlwZ2xtUE40Q1M1NDJETmdPMkVwTktDUllJbXFlQUo0Q0hnSG1lSng5CkxRWm1BT09BNjkyTTYzRDNHb3JLd1FzSmxnaVpCNEc3Z0NkRE9OWjN3SjN1MVIvYjBUbFZUU3p5aG96dTRUTVZTeWQ3VkVoaVZaZngKd0MrQlBZQm4xZHhDZ2lXQzhyOUFQK0NPTXB4clBIQVljQjZLdXhOYUVnb2Z6TUJzVFgvMitQNW13R1pBQjlhM1J5MEh2Z0dtdTZWZwpJWllCVjJFRkdpNENCcUt5VjBLQ3RSNEwzSURLNnd5dGtadlZUQWJlQlI3R1d3YkdnNEhkZ1YyQkhaMWdOZFMrSDJLN2lSTXdnMzBoCjcrMFgzZXNnWUJDMnc3Z0owQTVZVmVlOTFlN1ZDdWlxSVNDeUxGaWpnWnN3TzAyZWE4SlZ1cG5RWEkvdlB3SDRpUk1UTDdUQmJGUjcKdUo4bkFJOWlSUUMrTC9DNUo5d0xKMGl0V044aHNFYXdXZ0xiWXNiN0F6UVVSTllFNjE3Z3hDSURScXhMZnl5VmJOOFNqN083ZXgzdApsbjVQZVBqTUl2ZHFpTm5BNTI1bWRqRnd2cjR1a1lhWmdoZm11VTR0c2ZMT3J6RW4wYjRoSHJNWE1BcTRoUEJzVmN1QlAyQk9yVUprClFyRGVJYVlxR1NubEt1QnF6R3M5YkJvQkYySTdrbUVkZjRXYlFRdVJpU1dobnI3ZXVRWTQyK043cDJJaE9sOWp0cVlPbUYxcEJ3K2YKUGRKOWYwY1RUdW4ycWZycVJGWUVTNTNaRytkNkVLc0ZtTWY2MCs1QjhEVnJkd0FybkdodGc4VVEvZ0xZdU1DeERnT3VBTTRKNGRxYgo2ZXNUV1ZrU0xsRlRGYVcvV3dvVzRnRXNaOU9aMkk3clZOWjFWNmpHak9Gak1idlNUbGlsM1RVRmpuazJjR2dJMXkvL0xaR1pHWmFYCjkzVUhCZ0JkaURiall5VVdSUHdrNWxxUkZPRy91TURmdndjdUFLNzFlZHlaYnBZMUR2T2ViK2g3dUFSNGp0STJSV1pwT0lpc0NGWXgKTnNGMnhMcVU4ZHFmQTM2WWtObmZFY0R3QnY2MkdqZ0dlS3lFNDkrRFpYQzRoL296TmV3SS9KelNxdkYrcGVFZ3NySWs5REpndTVUNQoybnNEblJMUWhrMHBiTGY2ZllsaVZjTmpGTTdRY0RMbTJSNzN3MHVJeEF2VzNCaXV2WUxDdHAxeTBRZllyY0FzOE1vUXozVVhjRnNECmYrdUJoZndJSWNFcXdqaGdVcG12ZlJ5Mnd4WTNleGRZQ2w0ZHdmbXVvZUhjNWZzZzQ3bklNR0V0QTc3Q0FtLzN3V0xVb2twb1g0RTUKVHM3RFBMNlhKNkFOaHpidys5Y3d1MTdZZklUdE5oNVh6OStHWWZHREM5VzFoUVNyTUo4RGY4dForelhIZGtmcjQra0lsNnd2TnlCWQozVEYvS2dtVzBKSlFyTWZtRFlqK1N1Qy9FWjczQTJ6WHNDNU5zYW83UW1pR0pkYWpjUU9pUDVkb2JYcnozYXRsUFgvcmtPSFo3QkJzCmsrTlRONE5kcEM0b3dTcUZOcGlOcVRyQ2EyN2taakFMRXRCK2F4cTQxOVZFVzlSek9RM2I3Nm96MkUvYlljSForOVQ2M1FTc2l0Qk0KRFdNSmxsK2FBcGRpQ2VxcUloNDBWVzZ3M29VbEUwd2lUVERqZDFTRHFTVU5sL3JLNHF6NXFqcGlCWllmN0VycXQrVUpDVlpCK21HQgp2K1ZrUzZ5VTFqY3h0bDlsQTB2Q1Zsak85cWl5WExSenM5bjZtSmJCZnRxUW45dGVUcndYYXlqbmc3Q003bjFpV282MWk3bjl2cVQrCmlqWE5XSnZlT0FxNll6YWQrdHBrZWdiN2FVTzdyYXRJaHZPd1NKbGdUWWlwRThkdGRQME9jK2VvajhFUm5uZXZCbjcvUVVabkc4ODEKOFB2UnFNU1psb1FCR0k5bEt6Z0VpKzliMllBNHJzYXlBaXpHak9lMXFRYmFBaHZWK3JrdUZiVm1OcmVSREUvMzE3RHlXblhaQmRnVApHQlB5K1hwZ3h1YUdIaHhaRkt3cnNBRDdZMnY5N25Fczg2cVFZUG1tR3ZnalZwdXZjeEhCbWtuRGFWRGFBTzA5Q05hVUJDMEZucVQrCkFnNHRzQ0tuNDBLKzF2TXdHMWw5akNLYnU0VHpnUkhZUnN1bTdrR2xxdGNTckpKWlNHbGUxZ3RJaHJ1Q0g5NEVYc2MySHVxeVA1WmgKNGNhUXpuVVVjSHdEZjV2a1pycFpaclNHYkw2UnAzdnBySFF6eTRhNHhpMlZTNlVQaGQwNGJrYU9sRUtDSlR6d2pKdHAxVWNUNEc0cwpYMVZRRHNac051MGIrUHNVNEg1OURVSkxRdTlzaFdWc2FGbUc2NTVQL0Q1WXRmbk9MZjFlcFg2SHpwWnVCdFFQdUJ3TExmSEMxbGp4CjJ2T0t2Ty9jQkxXRkVJa1hyQzB4SStqV1piejI0Y0NQU2M2Mjlqdll4a09oUWhUSFkvRnd6MklwWXNaUWY0bXU0VmhoaVFPQnJrWE8KZXhQd2lMcXlrR0I1Wjg4eWl4V1lLMEZINElzRXRlZlYyQzdwV1FYZXN4bHdFclpGUDlPOXBtSTdpWjNkMzd0U3YyTm9YUjdDS3ZBSQpJY0h5UWVNWXJyMlM5WDI1a3NEWm1DSCtOMFhlMThJdG83ZkNxZzM1NVFIZ0JNemJXNGhjRUpiUi9WbGdScG12ZlFKVzdpdUpuT2RtCldTc2lPdjYxd0k5UURKM1FEQ3NRMDRCOXFkL2pPd3FxTVNmSkpHZld2QjU0RzRzQUdCclNNZDhDL2tRME5xdlZHZzRpTDRJRkZzZjIKZ1pwMEhjWmhMZ243WStYa2R5TllrWWdwMk83aUtDeWZmUlIwME5jbHNpSlkxV3Fxd0N6RmpPUFBZTFVVajNNejBYYkFocGo5cjdyVwpFbjJWbXprdXdFcldQd0M4UWZRUkFKdnBxeElTTEZIREVpZEFZOTNQMjJBN3E2MXJMY2Vxbk1CTklycGNXZzJoOG1BaU00TFZWVTBWCk9wL2kzWUcwSEdpM1VTUWVyN3VFMjZxcE1rOXJOWUhJaW1EMVltMmVLcEZORGxVVGlLd0kxdWJBSDlSY21lV1hsTThsUllqQStIRnIKT0IzTFZmNXZZQ0lOT3kxV0lDTjlHcWpBc3FJZVNQMEpDSVZJdFdDQnhjQ05kSUkxdjRFWldpTW5iaC82T0c1UDREUjlIUVY1RUhqUgp4L3Qzd0p4TVc3Qit4dE5WV0dtMlhXbTRYSmdRcVJlc21zL3NVdVE5dlgwS1ZtOUt5eGVWQjc3eEtWZ2QzZXhKaU13UVZRSy9iajdmCjMwWmZSVkU2QldoVExjMkZCTXNEQi9sOGZ5dDlGVVh4VS91eEVaWjJSczZnUW9MbGdWMnd4SEw5c2VSK1RXdTlOc0FxbjdSMFB4K0kKSmVJVHhaZk5GN20yN2VxK3UrYTFYazFkbSs0S1BJcDIvVVFHcVlydzJLZGljWFB6Z0xsMW52NHRzVkNWVlc0Z0NtLzhFVXRiTTkrMQphZTN2cjlyOTNGVkxiQ0hCQ2taTDkxSm9UM2kwY2E4dDFCUkNTMEloMHR1WDI2a1pBcE1LOTVZcWZVOGlJNnpBTXJIS3J5d1lIMG13CmhDZ2Z5N0VraVVKTFFpR0VrR0FKSVlRRVM2U2FhcXhVbWtnMlpmK09KRmdpaVRRRzJxb1pFazFyWXNpUko4RVNTYVFac0llYUlkSDAKd0RLQ1NMQ0V3SDg4cWlndmUyUGhZQklzSWJDUXJmM1VESW1rUGZDVE9FNHN3UkpKcFFud1p5eTBTeVNMaTdFU2RSSXNJV3F4UGZBawpDdVpPRWhkaU5RQmlRWUlsa3M0Z3JQcTFncjNqcFJLNHhMMWl2UWdoa3M1dzRGWDNaTytpNWlncmJZRmhXSHJ1QytPK0dNVVNpclN3CkdYQWpjQUdXb1BCZExOZWFpSVlXbU92Q1BpUW9aNTBFUzZTTlRzQXBhb2I4cmt1RkVFS0NKWVFRRWl3aGhBUkxDQ0VrV0VJSUljRVMKUWtpd2hCQWlvWUxWV00wZ1BOS0k0aWxGMUorRUg1cjRGYXdGYWpQaGtlK0I2VVhlODYyYVNmakFWMytwQko1WG13bVB2QWU4WCtROQpFNENGYWlyaGtaZjlDdFoxS0NaTEZHY1o4Q2NQNy9zY3kyTWxSREZlQU83MDg0RkdkT285RzVpRTVXZnVxRFlVOVRBWk9BTjR6T1A3Cnh3QVZXUENzRXZDSitoNSt6d0lqL2M3R0sraDFZczMvcTRBUndJNzROSVNKekxJVStBeDRIUGdtd09kM3hGTERLSmVWcUdFVzhCWXcKT3NpSGF3dVdFRUlrR3ZsaENTRWtXRUlJSWNFU1FraXdoQkJDZ2lXRUVCSXNJWVFFU3dnaEVrcnRxam10Z2FPQTVtb1dVWXVGbUZmeQpiRFdGU0lwZzdRVmNDK3lzSmhIMU1BbTRHcmhkVFJHSXBzQW13SEwzODBxZ3UvdjlwMEIxclJYUFRHQzFtcXhod2RvQmVBTEZmSW1HCjZRSGNCaXpCeXNhTGRXbUNGUjdkR2VnS2JJZlZUK3dDYk9UR1ZzdGFRclFhYUlmbEY1dm5CS3ZDL1cwSkZoSzFFUGdTbU9aZUU5M1AKaTJzSlh5NEY2d3lKbGZESVdSSXNBRFlHT21NVmtmc0JQM0FpMVp6aUNRN3Jzb0hIOTMzdmhHb3lWdlY2SXZBRzhIV2VsdXRWd0NIcQpmOElqVzdtQitYRU83MzFub0Njd0FCam9acDNscExsNzlYV3ZHajRGWGdYR0EvOXhZcFpwd2RwQTQxQjRwQld3Wlk0RWF5ZmdBS0EvCnNDZXdZUUt2Y1J2M09za3RGNS9Dc2lFOGpka2VNeWRZTXZBSnI2d0dWdVJBbEk4Q0RnVjJkY3UvdE5BUytKRjduWU5saDMwSXVBK3oKaTJWQ3NNVDZMSE1EczVXYUlqZDBCNDdCa3NwMXk4RDlkSGF2ZllHTGdMdUJlNEVQMDN4VGNoeGRsNi9jRStrd1lBandOL0pwcjhrVApmWUYvdXRuSUh6TWlWblhwQ3Z3T3MzRmQ1NWE2bW1HbG1KY3g1OGdIc0szakd0NEIyZ0RIWXBrenRVR1JIWWE2NzNWa2p1NjVFamdUCk9NMDlqTzhCM2t6VERWVFE2OFFGbUpkNzN2Z091QXQ0Qmt2WHV0TERad1lCdzRDZkFwdm1zTTJXT3RGK0ljWDNzSlVidEwvQS9LRHkKekVKZ0ZQQUh0N29vQiszY0dIb0VXS1VsWVdGV3Vxbi9LZGcyOVduWXJzcEtqNTkvRmJnUTg3MDVFbmdGczNlSjVOUEtMWXZHdXUrOQprWnFFMXU3aE94NjRtT2pEOHBvQS93THVCeTRQT2tYTUE5T0JCNEg5bk5qOEF5dEhWY3J4SGdMMkFmWUk0WGdpK3VYZnk4QmxtQ0ZhCnJFc1hOOHQ2RlRQU1IwRVZGdHAxS09iVmZ5N2V5c2F0ZDVBc013WjRDYmdWbUJIQjhWZGdqbnFuWUtFWkp3QUhBb05SeWZZazBObk4KcWs1VFUzaGlGOHhFOGpjbllITkRPbTVUekY3Mnd6cS9QOC85ZTc3WEEyWFJoclVBOHp0NXdhMlQ0MkNJVzZjZlRiWktYS1hKaHJVMwp0aU8yZlFLdXBScFloTmxzSnRmenR3cHNKNjhWeVhIa2ZzOEp5dWdTajlNY2M2YzR0TUI3TGdNdXlOc002eDIzTkJ0SGFSNitXN2tuCmNndmdEdUQxQU1kNHliMXV4c0k0am5jQ1ZxR0hlRm00Q1BnOTVhK3Z1UnF6a1U3R1hBaW1ZZGtYdnNWaUFkZGdkZmtxNmdnV1FIdlcKeGlLMnd4eFd0M0ZDOWdNbnZPVk0vZFFMUzRwd0tmQS9KWWpWUFVYRUN2ZGQ0VVcwMGo3RCtnWjRFZk9qbVlqUEtySzFhSXZab2taaQpJUmp0M2UrL2MwdStXNEhuZ0RrbGZISGRnWjloWHRScHRhTWtmWWJWQmZncjVrZFhydjQzMlMyajNnVStjSDF3Q1FGMndBclFHZ3NMCjZ1Rm03d05jZnlwWHBmYkhnSlB4RjJUZENQZzM1b3pybFN2Y0VqNXpndlVXOENSd2kzdUNCYVdubS9tYzVHSHBNQTI0MHoxMTNuWlAKeTZDZDd6ZzM4SGNqWFpreWtpeFl1Mk51S3QwalBzOW5icm4wQWxZUmUxWk05OXZlZlJlSFlDbWl0b3o0ZkIrNmZ1c2x1SG9qOStBNApKc0I1cnFTQVRTdE5nalViZU5UTmRFYVZjSnhtYm9xNkgzQ0VXL3I1NVhFblhFOVFXbXFQQWU0YURuUkxVUWxXTUk1MnMreW9ncE9YCnVRZms4Njd2elVuWS9YY0dEbkxtaDZNak5QVXN4RGFZN2kvd25tN0F3MWpxbmFEOENmaHRXZ1hyVGJjT2ZwN1NiRlBiQWlNd1kreXUKSVYzYlIyN3dQZ0M4VnNKeE5zZWNVZzhuMmQ3MFNSU3NzN0JzdVZFd0M5c3hHNDNsbmtvRC9kMEQ4R2NSTGhsL0RWeFR6Kys3WTM2TgpZY3h5TDhWc2tha1FyRVdZMzlRZHppNndJT0J4V2ppQk9nSGJzdTBZNGZXKzc2NzNJZmR6RUJxN1plb0lONTFPbXEwcmFZSjFJWEJKCkJNZWQ1Z2JrS01ybkFSNDJYZDEzZFNxV3d5eHNyZ1BPcnZYejFwaXRLOHhkMmN0WmE1QlBuR0F0ZCt2a1VXN2dUeS9oV051NEtmSkkKOTJXVjA2dDVxcHR4UGVoRUxHZzZsbzNjUFJ3UDlDRVp1WmlTSWxpTnNJMlFuMGJ3M2QyQzdlNStTemJvNEdhaEl3Zy9uT3hhTEkxTgpSN2RrN2h2QjlhOWowMHFDWU0xeUErQitONTBNeW9hWVIvTmhibmFTQk1mTkp6QWZsTEdVNXJnNkFQaUoremRPdjZJa0NGWVZsaXJsClJ5RWU4M3RzUit0Q2JPY3ZpMnpxeE9VMHdyVngvUjNML3RBL3dtdi9mOUdLVTdCZWNhcjhMS1hsNk5rUk9OaXQyM2RQYUdmNTJBM3kKQnpIdis2QjB4REpnSHVMdU9XK0NGY1hNNmlYTXEzc2MrV0NJRy96RFUzYmRsd0VYbEZ1d2xyZ1p4MzJZRVROb0ZzUktONU02SG5NTgo2SkNTUmwrTU9hSSs3SmFOOHdNZXB3S0xpZHpQTFh1NzVFU3d3clJaTGNXTXVuOXpNNnc4MFJRNDNRbDFtdHhxTGltSFlDM0hkdE51CmN6T3FMMHNRcVcyeGVLUWZZYmFwTkh2cWYrMkU2elkzQXd1YTlXRmpiR1BoRjI2MkdXV1cxRGdGNjF6Z3FwQ085UTd3Y3pKZXNNRUQKdlRBNzFPQ1VYTzlGVVFyV1Y1aUQ1KzJVWnB0cWh4bnpSbUErSmxrTEtsN2psc1gzdUdWSktidFN1Mkk3b25zU3pjNVFYSUoxQ0xZWgpFMFpvMDErd0VKREZDTER3cGF1eGNuOUo1dS9BNlZFSTFpdFl4WTZIZ0M5S09FNXZiSmZzSUd5WExBOTg0ZHJ0S1N6VlIxRGFPSUVmClJyaCtYWEVJMWs1T3lGdUdjTzJub2VyVkRURVN1SW55eGl0NlpheGJSU3dMUzdBV1k3c3NUMk1PbmtFcjB6WnlTNzdEM1dEYktLZWQKWjdrVC9pZXdIYkdGSlJ4ckVHWm9QUkVybDU0bXdkb2NTeTVYNm5YUGNtYUVNWWhDREhPaXRVMkNydWt6dDJLWUJlSFpnTzdESE5TQwpVSUdGcGZ3VUMxUHBqb3BqTk1XU0ErNkRiVVUvaTRXZWZJajM3S2cxdk9wZWM0RWJVdFlPMTRZZ1ZtODVVOElVNlZGUlhzQTJzeDdBCjRoUGpacmI3N3Y0L1hqTXNZUWppWk5jZXkyNTREMmI4L0QxbVZGY2xuM1haQWpPb3YrNldpc2NRekFFd2JmNUY1N2laZGltODYyWlcKRWl2dmZPUWVsSzhrNEZyT3BzN0dTRmd6cktZKzNyc3o1Z055TEpiblIzaWptV3UzNFZqb3lPMXUrZTNWZjZoNWl1NTFJSlpxcEJUKwo0MllMWDZucitHWUc1b1E5MnYwYkIyZGhMbERyVU03WnpIRE14alVHODF5VldBVm5NOHlIYUt4cnorTXpkRyt0c1IyaFVuYUQzM096CkJJbFZjRFlodnV5bmR3TFgxL2VIY3ZveHpRRG1rUzVIdFRRd0R6Tk1ab1VyS2MxKzhqYm1VRHRYWFNNdzNiRVVTdHZGY080WHNCUTIKOVZMT0dkWkgyRmI3OW02cUp6K1k0Q3gxczlYK1dHNnY4Um01cnlGWVpzdFNIb29uU0t4S1lndk02QjZIV0gzZ05HSlpFZ1NyaGttWQovV3AvTitqV3FJLzRZandXUjNnQXdmTE5KNVVLZ3VjT0I4dW4vaFBNZGlXQ3Nha1RxMTR4bkhzSnRybFVNQ0ZtbkR0eVkxa2J5UHVZCitrcFJYc0pzVlh0Z2VleXp4b2xZZkdSUVRzTnFENHBnZE1QY1ovckdjTzRWd0kveHNJR1VCQmVDSjkyeTVoanlFekh2aDZtWWo5cCsKV003eUxOSUpzMTBGNVU0c2g1VUl4dGJZam1CY3ZsY1hZemF6b2tRdFdINWl2KzUzTTY2alVSVmxzRENkMHpBNzFaMEVUd1NZQnM3QQpLaGNGNFEwc2tGa0VZeXNzVHJON1RPZS9CUjh1TEZFTFZpTXNEdENybytNaTRIK3hPTUxma2srSHYrbFkrdGs5c0RDSnJ6Tit2OXNBCnZ3cjQyVldZYytFS1JCQzZ1b2xDejVqT1B4cWZFVEpSQzlZcTRJK1l6ZVZRdktjcVhvUlZ6dWpybGdwZjU2RHpMTWI4ai9xN1FUZ3oKSjRQbWR3U3JYSVRySStNUlFlaUoyWTc3eG5UK1NVNnNmTlZ2TEljTmE2NTdpbzdDUExNUDlmSForVmgyeEtGT3VLb3oySEdxc1JpLwpZZTRMbkphelFYTjB3TSsrNWg2R3dqOERzUTJLWGpGZXd5a0VNUDJVUTdCcW4yTXdsclR1TWZ3bERmdllDVmRmTEFoNFpVWTZ6aE5ZCm52WmZrWjR5VW1GeUZ2N0N1bXB6RHVGV1Z5N0d6bGpXZ0xRekJJdEpiUi96ZFFUYUVZNWpsN0FTOHlONkN0djE4ck4rZmhkekxOelYKRGZabEtlMDBUMlA1Zlk3SThaS21LeGI4SG9TYnlpendPN2orOWhCV0xpNnRESGIza0lRS1RMOG1RSGJjT04wYW1tT09mdTlqcVcvOQo3Rks4NTBUdmNKSVJWZTZWTjkxVStBQzNQTTZ6c2ZoZ2dxV09XUVQ4dVl6WHVRdFdQS1FMbG83NmYwbG5IT3hBTE1La2JVS3VwejF3ClhKb0VxL1kxbkl2NVlGMkloUVo0NVJuMzFEaU9aQ2RuK3hENEpWWXc0eCtJVmdUUG4vWm5ndGNGQ0xKOGVnWG9VZXQzVzJDK2c3MVMKMU43OU1SdHlwNFJkMXdoOEJsZ25LZmRVQjZ3aXlvdFlOUS9LeGpMb0FBQVRJRWxFUVZRLy9Oc3RMNDRtV1lIQVh6cWhHbzVWWnhIRwpyblZFd0N2VEtKK0Q2SEMzREt4dkIzTXpiRXQrdHhTMDlWN3V3WjdFN0wyN1lSbHhVeWxZdFo5Z0Y3dFp5ZWw0eitQMHZadXVEOFNNCnVWL0VlQThMc2JpNC9rNm84dUtpNEpVZkIvemNIY0NjTWx6ZkFkakdVQ0YzaTQyQlIwbHVMVXpjNnVNSm9xMmtWQ3Era2pRbU9idm4KOXRoMi95dFlJamF2d2pVYnk2V3pNK2FBV1U0ZnJnWHUzTDNjOGxaQ3RUNGRzY0lpUVI0Q2Q1VGgrdmJEOHVoNzZXK2RzUFRnU1Z3ZQo3dW11TGVucG5BYTdQcEY2d2FxOWZIakVQZkgyOWRuQnozWXpyaHVkbUVURmNzeWd1YStiM1gwcFhXcVFRd20ycGY0STBVYytESE9ECnZJMlB6M1REN0VNN0phaU5CMkM3Z1IxVDBCKzJ4RWNWNmpUbFR4L3UxdUlQdW83bGxTbHVhVG1VYU94SWo3cnJPWlo4K2xMNTVZY0IKUHJQS3paYWpaS2g3S0FhcElOVU55M1NRQkplSGdXNFp1SEhLeHJhbnVPTTBGbnc0QW92c2ZnQUwzUFRLdTVnQnZDL212Rm9xejJFRwp3eCtpTEJOZWFSZHdKaklHUys0V0ZmdTdQdFdpaEdOMHd2enIrc1hZdmtNeC84WTJLZXNYKytMUnhTV3RGV3FhQTBkaUpaeHV3cXJ0CmVPVWRiRGR4UHljNmZoTUl2by81angzaUJwSVNFSHJuQUd3MzJDLzNFRjFZMWdGWUFIQ0xFSTdWM2oxSTQ1aHBEWExuanRzcGRBMysKSXhBNjRORzNMZTBsdGRwaS9qeHZZNzVjWG1kY3E5d1VmbDhzS2Q1YkhqN3pJZVpsM3djenlpNUhCRm11K0dVNTBTWG0yeHR6aVFsegprRzlLK1oxTEJ6clJiUmZ6OTd2UWphY2d4VDg4dVRka3BRWmdTOHhiZmd4bTlQYlRBZS9HRFB1blloNzBkWm1FMVV6c2o4VXhycGJ1CkJLSXE0Q0IrR0V1NUV6WkRNTU4wRko3Zk5jNmxPNWVoWGZ0aGR0UWtPSVVlNjhiVEp3Rm51a1dMNG1TdGFPa21XTFhnTWNDWitDc1YKOVhmM3hQMFZWblIwQlphK1pCaHdPUllTSW9LekE4R1N4TDFBK01IdWUyT0c2U2lYVDVzNWswT1V6cVY3dVpWQ3V3Ujh2eGRnOWpNdwpwMXEvYkl1SEtKZXNWbG51aGUwcXZZdHRvM3ZOQ0RBSDgvM3FpL21CL1paODVPSXFCNzBEREt4RndNU1FyK01BTnlOcFVZWjdybkV1CmpTTG4xQkNTNHhSNk0zQlpyWitmRDNDTXhwZzdSaTRGcTRhZW1QL08wOWhPa0ZlbWtidzB6VlhZOW5sYTJTYkFaeVpocVlYQ1luKzgKTzRXR1JTY3NEWENZUGxFRFNZNVQ2RXRZNnFmYWZJSFpmUDJ5WTk0RkM4eS9veVlIMEIzdS8ybGpUMndINksvNHk1T2ZGQm9Sekg3MQpIOEpMSVRRRWMrNk5ZOHUvRjJZVUQ4TmVWdU1VMmlFQjMrc1V6RzYxc003dmw3cmxzRitLOXBFOENGWnRqc2VDcSs4bEhkSDJmVEJuCjExZXc4S1JxMHBsMXRSMlcvOG92YjRaMC9xR1luMVhyR050Z0wvZlFMTVU0UGhBejVpZEJyT1lEQndLekd2ajdxd0dPdVhXeDd5aHYKZ2xYRE1aaGg4SGJYU0Vtamk1dE5QWWNWbDZ5WlZhVjFoM0lUL0tVTkFzdHhIMFpSMU1HWTRYNkRCTFJEUDJ6WE00aG8xYXdTV2lmZwpQbFpoZWQwbUZYalA1d0g2YXlzc1ZFZUNWUThiWS9YKzNzTFMyU1JocDZVRGxxbGlJbGJpYTZPTXRIV0hBSUx4TmZCcENPZGVSSGxUCktSZWpQK1lJNjJkcE9nZ0xTZHN3SWZkd2dUTlJGT0piL0dkTTJRRFlYSUpWbURaT0pQNFE0elZzaE5YV0crK3VZK09NdFhHUXpLTFQKQ1NkZy9SMzh4WjZXZ3lGT2dMenM4QTBnR1U2aE5keUd0NkszYzRHUGZCNjdDVVh5cEVtdzF0STBwdk9laUcwRC93Ti9zWkZwWXZPQQpnaFVXcjJMRzRTUXhETnU5THZSd09vemtPSVdDUlJ5YzdHUFpPRG5BT1RhVFlIbWozREdCUDhhMmhHK2hQQjdSY2RFb29HQk5Ddms2CjdpVjVaY0gyY0lKVW44dkRDTXdsSnlsbWdVOHduMFkveStzZ1BvenRKVmpKb2NwMTBqR1lQOURnSE54elJjRGx6T3dJcnVWaWtwZFQKdno4V2UxaDdvUDRNaTNGTUN0OWk5bDYvMFI1QllnbzdVcURnc2dTclBGUmlQaVlQdXVYSlFOTHBUeFdFWnZqM2ZWb096SWpvZXM3Rwo4cW9saVVGdUJ0Z0JPQXE0TldIWGR3b3dJY0RubGdSOHFLOHU5RWNSUFJ0aXV5cmI1dkRlaSs3ODFNTkt6R2diQlV1Qmt6QjdUUGNFCnRkTnd6UDJpZThJZVpyL0hIRldETUFmNERuKzdtODNkKzcvVERDdmVHVlplYXhCVzQ5OGZwNXBvYllvenNBRG9PUWxycXgzZGpEUXAKL0FNTC9BL0tYTGVjOUVNbkNoamVKVmpsRzdSSzlPZHZGaFIxdWJZdnNleTFpOVhjOWZLOFd3cVdRbFdBVlZ4Rm9SbW1CRXNra2RWTwp0S0ptREhDR21uczlKbUh1Tm5FOTNLc2xXQ0pOVkZCZ3B5aGtic2M4dDRXeENoaEpzQjIreUpGZ0NXRzVuTzVVTXdCVzd5Q3gxWi9LCklWaE4xQWRFZ0dWQnVXMStKN00yWTJaZStUWGhWSlJLdFdCZDRLYmRLelFPaFVlcUtIOVdndVdZdytiN09XM3pmd0xYSkVTVFluVWMKbmV3NndpR1l3NTZLT09TTGlnRDlyQVZGMG94RXhEZHVTVFFuWjkvUjg1aERiZGlzeEgrbWpCVVVTTnBZVGh2V3MxaUsyaU93M1JsUgpYdUp5cXdpeXZLc20vTUlUWHZrWStCSGwyYVZNQWpQZGhHSkpCTWR1SDJDbVBKTUNCdit3Qk12UGwvc29sbDdqZUFsWFdZa3JKOVIzCldDcGRQelFCT3NmWVZpOWo2WDZ5emlLc29QRDBpSTdmR2Y5cG9WY1g2cXRoQ2RaSXJCN2dCajR1Nmk0c3hlcUp3RlRwU1dRMHdqSkQKeEpYdmF6bVdUdGNQVFFtV1VqbE03bUhkU2pCWlk0VWJ0MUhhN0ZvRTdDOXJvaGFzbW5xQTd3S0greEN1NzRCL1lmblZ6eWFhQ1AwOApDOVZoV05EcXZ3bFd0U2FzcGVpM0FUNjNhUUxhOEFMTUdKMUZMc2JTMTBSSmtEeGU4eWlqNCtnMjJMYm80MWp1SEs4c3dPb0k5bmZDCk54MVJDZ1BjRE9FUnJDWmUzUDUyUVI1RTNSTFNsdWNSckRCb2t2a0hjRVVaemhPa1dFYkJvUGVvT3ZJUVlKUjdIZWpqYzFPQWM5em4KYjVidStLWXZsbHRwTEdZNFRnclRBbnhtaDRSYyt3TGdTSUxWMlVzaXIyTlYwYU9tQ3RndXdPYytpVU93YWpnVXEwNDdDaXRaNVpYUApzR294L2R6VFFJSERoZW1CZVdxUHh2SXBKWTBnTnNyV0pDZVArU0szdlA0eTVmM2tVM2NmeThwd3JvNCt4enlZc1gxNm5JSlZXN2llCngreFZQWDE4YmdJV01UNEl5eFdVZCtmVHVsSHNYWUQvd1haYmp5T2NRcDFSelZLV0I3Qi85RXpRUFh5RzdSeXVUR25mbVlPbFhTNlgKblhoai9PZEJXMHlSaXV2bHRHMjB4Znc5Sm1LNXRmM1lLTVpoK1lzT2M4dWR2TEs0MXRQcmQ4QjdXSUsxOWdtLzdpbjRyNkRTRXRncApZZmZ4UE9uTjd2QXJyS1JkdWVnVzRET0xLRkxhTFE1amJCVndrUk9oQy9CZTBxb2Fxekt5cDN2U3ZaSkR3ZG9JcS83eUVyYmwzajRsCjE3MkFZRFVHdDAvZ3ZkeU03YkNsaVY4RDk1WDVuSHNFK014TUdzZzBHcWRnMVY3T1hPb0czOW40U3lkeUMxWisvUFJpVThpTU1Rd3IKWHJGOUNxODlpR0R0aEtYTVRScVhBSDlMU2J2ZlNmbGpCSnRqWmh5L3ZGN3NEVWxJTDlQVE5laDdic25vVmJqV0FEZTZoamtELzFWbQowMGlhYy9BSHFWSFhGeXZla1RTcWdWOENUeWE4elYraTlLeWhRZGdDL3daM3ZDeFprNVFQcXlkbWxIOE5jNFh3bXBabUJ2QlhiRWZ4CmI4ajVOS2xNeEp3Qy9kQVkyRDNCOTNTeWU5QW1rWSt3alpobE1aeDdqd0Rhc2p4dGdsWERicGdyeFAyWUk2bFhacnVuM2g1WW1hU2wKMG9oRU1TbmdzbkJ2eXBkOTFDOWZZK0V0U2V0cml6RTc3NHlZem45WVFKTkJVZmVYSkdjY1Bjek50dTdGRE8xZStSd3I0N1F2eWF2dgpsbWRXRVN5VDVWNEVjMEFzRisrNXZyb2dJZGV6QXR1WWVTMm04MitHUlZyNFpRd2UzSmJTa0NMNUdDeVAxcTNBMWo0K045WUoxeUEzCll4UHhNd2IvK2RCYVlCc3NTV1kwRnZ5ZkJDN0ZRdVBpNGxqODFTR3N3Vk54MjdUa2RHOEJuT0NlR2xmakwvWElHQ3kwWWhqbWZDcmkKNDJXQ0pjZnpzeGtURjNjQTU4WjhEYmRpanNSeGNuQ0F6eXdDL3BNbHdhcWhBK1pUOHA3ckhGNGorcGNETDJMMmtKOEQvNVYyeE1KOApZSHlBeiswRTdKcUMrL3N6dG5FVUJ5OENwOFo4LzNzUXpObjNTVHdtUEVocjFad093RlhBcTI3bTVYVUtXbzM1Y08yTXhTcldOZ0pICkdhOFlKRFFscTl3ZDhITm5wZVQrenNUY0NjckpGR3pITXU2d29SRUV5NEgxQWdWU3ltUkJzR3JZMGsyRFgvYjVkRm1OZVN3UGNRTmgKSHRGNmpSK1BQL3RibGhtTGYvY0dzRTJVN1ZKd2Y0dXhBUFJ5emVKbllVYi91QjJvdDhQc3pYNlpqWStvbGF6VUpld0QzT1J1L0ZBZgo5elVEdUI0WWlQbHloVzBuNllmbHNyK2Q1R1FlaUp1NVdFSkJ2MndJbkorU2Uvd1dzNXRPTHNPNXpzS2ovU2RpamlKWXBhUG44T0gwCm5iVkNxb09BQjdFZEJ6OCtYQjloQnYyd2xvVzkzWFc4Q096RCtsa1c4czZEQVQ5M0NNbks0RkNJVHpCNzZmY1JudU44ekY4eGJ0b1IKdkxUOW8zN2VuTVhLejFXWWNmMDF6QURxeDFPNnVzUno5OEhDak1aajFZR2FJK3JqUFlJWjM5dGd0cHEwOERLMnpSOEZ0d0pYSnVRKwp6OEQ4ci96eVgzeUdOMlc5VlAzUG5IQmRSN1F4YVoyeDdlUnhXQ0IzVTJsU1FaWUF0d1g4N0hIRWw1OCtDS093VkVCaE1nYmJMVThDClc1U3dWSDhJbnhzRmxUa1lISlhZenMzem1LRzlRNGpIN3NUYUJIcS9CNXBKaXp6amVTdTdEcTJ3Q2tCcFdtWmZnZTFPaHpVN1BSSlkKbUpCNyszUEFCL1FjNE85QkJuTmU2T0NXRXhPQkN5bk5DTjRLMi9sNzNRbVZkZ0Q5TTV2Z0xnNC9KcGlEWXB5Y0NqeFY0akdXWXZHeQozeVRrbnZiRnFtUUZYZEw2ZGlLdXpPRkEyUVRMWi9TdVd6TDZFYTRtV0hHSHNaaG5jemZwVGtuY1RQQ3k4UCtUc3FYM0tzd3cvVzdBCno2OXhEOG54Q2JtZktvSjcxYThoWUp4dlpZNEh5K2FZVWY0NUxPSytHRDkwOW9qN1NXYU9walF5bFdBdURyQTJqMXFhbU9WbWgwR0sKY3B5UDJYeVN3Z1VFeTNrRlZ1c3hVUDY2U28wWittSUc0T2V4bmIyNkRNYnNMUThCKzZ1NVF1Y0tpdFNpSzhBdnNXd09hZUlUTjB2MwprNUxtVGl5R05pbnNUbkJEKzB6Z1R3VGNrWmRncldVWVZ0UHZGU3gwNXdkWUlkTEhnUVBVUEpFeEYzUDZEY290V0xydE5QRUdaay8xCmtybmlHU3pyU0ZMbzVGWW1UVXY0dnFZR1Bia0VhLzMyR0lTNUo0ekhRaDVhcWxraTV5OVlHYTBnYkUxeS9KSDhjRGRXUGFvUVU3QzYKQlVrcUxYWWR3V3NLekhETHdaSUdxRmlmRnNBR2FvYXlNWi9TU3FjZlMvaStUdVhnMGdJRHVLYmlkSktLckp3TEhGM0M1NitreEN5bwpsU1EvejVCSTFndzBxa0lZOTJCMnhLQmNYT0pnaW92VHNJMmZ1b3drK0k1aUZPeUhsWllMeWdTc2FFekpIWENSeHFId3lGS0NPWHQ2CllRWG12UjAwMVhCanpEZzlQR1Z0dXRMTnBHb1hDTDRBbnpGMkViTUw4TEJyNHlCODc0UzUxTkEzS29rdjk3TklIMThCSDBaNC9QOVEKbWdHK0NXWWI2cHV5ZHYwT3k4ODJBNnRoY0ZtQ3J1MEh3QU9VRmhkN0NmQk9XRlA4cThKUVBwRUxyaTFEWDdrTTIvUUlTZ2VzM052RwpLV3ZiRDdIZDZOTVNkRTNiTzdIcVZzSXgzZ3BqS1ZoYnNON0djdGxNMVhnVURiRElMZGYrWFlaemZZOXQ0NWRpcXRnRmVCcmJnazhUCjcyTWJFRWxnVzh6L2NOc1NUUWduWVVrTlE2R0NYditmeG1aTExOL1FwbGhncVdaZG9pa3dEVE9HbDlzQWZEd1cvbFFLSDJQRzZ3bjYKS24zUkUwczhXYXAvMjFsWWdzelFxQzFZUWlTTm15aTlzTUlDekxOOHRKclRFd093SGR1dUpSN25BZGZ1b1NJL0xKRmt6Z3RoZHRURwpEWjZqMVp4Rk9SU0w3Q2hWckNZU2tYZStCRXNrbVpxUzY2WGFkVm9EOTJHN1ZhSitMblRDM3JiRTQ4eDFENGRJM0tVa1dDTHAvTmNOCmdLVWhEY3JIU1Yvc1laUjBkRUoxQ2NIOXJHcFlpV1dqK0RTcWk1VmdpVFF3R204cGdMeHdFSlloOWdnMUswTlpXeGs5REU2bHRHaUYKb2pTaVUyOTliU0lOZkFnc3c3SnFsRXBiTExCOVE4eFBhRm5PMnJLMW0xRmRSM2l1SCtkanBmSWlSWUlsMHNScldBR0x2VVBwKzFaYQovV0FzNWZCSE9XbkRtalJLaDRld0JLemhCaXljS0hJa1dDSnRqQWVXaHpUVEF2T0lQd3JZQ3NzSU9qMmo3ZFlYeXc1eEhXYTNDb3UvCllFVmV5b0lFUzZTUmNaaEhmSmlCemp0aHBkWTdZZWw3NTJha3JUcGdxYVN2d2lxUmg4bU53Sy9LZVRNU0xKSG01ZUZTTjlNS3ErUlgKWTJBM3pBamRBd3ZHWHBEUzl0a2VpOHY4RTJaY0Q3c0UzZG5BUmVXK0tYbTZpN1J6TkhBNzBkU0UvQTV6ZzdnTmM0YWNuL0MyYUFQMApCa2E0Wlc0VVNTaS94d3pzTjhSeGd4SXNrUVgydytJT08wUjRqcmV4MURWdll0NzNTWXExN1lQWnFFN0FBcitqWWlibVh2SmNYRGNxCndSSlpZVWNzOW5CZ3hPZFpCYnlBMmRIR1lnVWxsc2R3djd1NXBkNnVibGtjZFVydk43QTZuckh1cGtxd1JKWm9pZVdHTDFkT3FTWEEKWk15eit5M01WK3dONE51UXo5UEN6YUoyY1FLMUZkQWQ4NmNxQjNkaHh2WFk3WGtTTEpGRlRzSHErSlc3NHRFeVlCN21HdkV4dHR2NApGVERiTGFlS2xaanY0cGExSGJDa2Vac0R2VERiVk5zWTdtY3habGkvUGlsTFlBbVd5Q3I5Z2N1eHNtMUpvYnJvZUV3T3IyREc5VGVTCjlLVXFsbEJrbGZGWTFlN2Z1S1ZiTWlZSWhWOUpZQ2xXZ1dodzBzUUs1SWNsOGlGY3p3T2RnVzNVSEFVWkRSeUhGY0pJSkpwaGlUencKRnZCRDRDZVlrVnlzeTJUTWQrdFExMWFKUlRNc2tSZFdZNTdydDJONW03YkJzalhrbWVuQTM3RWtpYTlqTGh1SlJvSWw4c1lLektCYwpVeGgwMHh3SzF4VE1aKzFrWUJUSnNmRVZSYnVFSXUvMHdGTE1uSVQ1TjJXWkx6QnYvZHVBTDlONEExWHFyeUxuVEhLdmU0RjlzUEppCkF6SjJqeFBjMHU4VnpDOHN0V2lHSmNTNnRNUlN6WXdFOXNWMkY5TzJPVldOT2FvK0E5eUpGV2hkbElVdlJ6TXNJZFpsTVphNjVqVXMKUHU5UUxBOThUMkNIaEYvN3g4QW53Q05ZMWVaNVdmdHlOTU1Td2hzYnVDVmpmMkE3WUdkZ2s1aXZhUTZXOXVZZDkzcUo1S2ZBa1dBSgpFUVBiT3VIYUFndi8yUXpZbXVnQ2ttdmNNajRDUHNBTTZCKzRuNnZ6MHVnU0xDRktwekhtR3RFR0MxemVBcXVlM01rSldXZk05MnNyCkduYWhXSUs1RzFTNHBkd1VMRmo2Sy9mL2I5Mk1hbDZlRy9yL0FLdVZsd1drQnp0TEFBQUFBRWxGVGtTdVFtQ0MKJyBpZD0naW1hZ2UxMCcgeD0nMCcgeT0nMCcgLz48L3N2Zz4=", - "providedOnSchulstrukturknoten": 0 + "providedOnSchulstrukturknoten": 0, + "keycloakGroup": "Anleitungen-service", + "keycloakRole": "Anleitungen-user" }, { "id": 9, @@ -98,7 +116,9 @@ "kategorie": "HINWEISE", "logoMimeType": "image/jpeg", "logoBase64": "/9j/4AAQSkZJRgABAQEAYABgAAD/4QKcRXhpZgAATU0AKgAAAAgABAE7AAIAAAAOAAABSodpAAQAAAABAAABWJydAAEAAAAcAAACeOocAAcAAAEMAAAAPgAAAAAc6gAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQWRtaW5pc3RyYXRvcgAAAeocAAcAAAEMAAABagAAAAAc6gAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBAGQAbQBpAG4AaQBzAHQAcgBhAHQAbwByAAAA/+EDZmh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8APD94cGFja2V0IGJlZ2luPSfvu78nIGlkPSdXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQnPz4NCjx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iPjxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+PHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9InV1aWQ6ZmFmNWJkZDUtYmEzZC0xMWRhLWFkMzEtZDMzZDc1MTgyZjFiIiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iLz48cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0idXVpZDpmYWY1YmRkNS1iYTNkLTExZGEtYWQzMS1kMzNkNzUxODJmMWIiIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyI+PGRjOmNyZWF0b3I+PHJkZjpTZXEgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj48cmRmOmxpPkFkbWluaXN0cmF0b3I8L3JkZjpsaT48L3JkZjpTZXE+DQoJCQk8L2RjOmNyZWF0b3I+PC9yZGY6RGVzY3JpcHRpb24+PC9yZGY6UkRGPjwveDp4bXBtZXRhPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw/eHBhY2tldCBlbmQ9J3cnPz7/2wBDAAcFBQYFBAcGBQYIBwcIChELCgkJChUPEAwRGBUaGRgVGBcbHichGx0lHRcYIi4iJSgpKywrGiAvMy8qMicqKyr/2wBDAQcICAoJChQLCxQqHBgcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKir/wAARCAOFBC4DASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD6RooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiue8T+OvDnhCEtrupxQy4ytuh3yv9EHP4nA96ai5OyE2krs6Gobq7trG2a4vbiK3hQZaWZwir9SeBXzv4s/aJ1S+L2/hKzXTYegubgCSY+4X7q/+PfWvKNX1/VteuPP1rUrq+k7GeUtt+gPA/Cu6ngpy1k7HJPFwXw6n1Frfxx8EaMzRx38mpSr1Sxi3j/vs4U/ga4PVf2lpyxXQ/D0aL2kvJyxP/AVAx/30a8Iorsjg6Ud9Tlliqj20PT779oHxvdZ+zyWFlnp5FrnH/fZasSX4v8AjyZiX8R3Az/cjjX+SiuLordUaa2ijF1aj6s6p/id42k+94m1Ef7sxX+VSRfFTxxD9zxLfH/fYN/MVyNFP2cOyF7Sfc7uH40+P4GBHiBnA7SW0LZ/NK37D9ovxbbYF7aabeL3LRMjH8VbH6V5LRUuhSe8UUq1RdT6F0j9pWxkcLrugT247yWkwl/8dYLj8zXoGi/FjwVru1bXXbeCVv8Alld5gbPp82AfwJr46orCWCpPbQ2ji6i31PvSORJo1kidXRhlWU5BH1p1fE3hzxp4h8JzeZoOqT2q5y0Od0b/AFQ5U/XGa9k8KftHQytHb+MNO8gng3lkCy/VozyPwJ+lcVTB1I6x1OqGKhLSWh7rRVLSdZ07XdPS+0e9hvbZ+kkLhhn0PofY81drjaa0Z17hRRRSAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAqtqOpWekafNfancx2trCu6SWVsKo/wA9qw/G3jvR/Amk/bNWkLzSZFvaxn95M3sOwHcngfXAPyz45+Iet+PNQ83U5fKs42zBZRE+XF7/AO03+0fwwOK6qGGlV12Rz1q8aenU9E8eftBXN4ZbDwQjWsHKtqEq/vH/ANxT90e559ga8VuLia7uJLi6lkmmkYs8kjFmYnqSTyTUVFexTpQpq0UeXOpKo7yCiip7KyutRvI7TT7eW5uJW2xxQoWZj7AVqZkFOVWd1RFLMxwFAySfSvb/AAd+ztdXSR3fjO8Noh+b7DakGT6M/IH0GfqK9o8P+CvDnhdANC0i2tXAx5wTdIfq5yx/OuKpjKcNI6nXTws5avQ+U9I+F3jTW9psvD12qN0kuVEC49cvjP4V19h+zn4ruMNfXum2a9x5jSMPwC4/WvpqiuOWOqPbQ6Y4Smtz55T9mfUD/rPElqv+7bMf/ZhUc37NOsKp+z6/YyHsHidf5Zr6KoqPrlbuX9Vpdj5X1P8AZ/8AG1gpa1isdRA5xbXOD+UgWuE1nw3rXh6UR63pd3YljhTPEVVvoeh/CvuOorq0t762e3vYIriCQYeKVA6sPcHg1rHHTXxK5nLBxfws+DqK+kPHX7P+m6lHJe+DWXTrzljZuxMMnsp6ofzHsOtfPeqaVfaLqc2n6rbSWt3A22SKQYIP9R6EcGvRpVoVV7pw1KUqb94p0UUVsZGt4e8Tax4W1Jb7Qr6W0mH3gpysg9GU8MPrX0d8Ovjbpnix4tN1xY9M1ZsKnzfubg/7JP3T/sn8CelfLdLWFahCqtdzanWlTemx960V86fCz43TaY8WieM7h5rI4WC/c7ng9Fc9WX36j3HT6JilSaJJYXWSN1DI6HIYHoQe4rxatGVKVpHq06saiuh1FFFYmoUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAVx/wAQ/iLpvgDRxNcAXGoTgi1tFOC5/vN6KPX8qt+OvHGneBPDz6hqB8yd8pa2obDTv6ewHc9vqQD8h+I/EWo+Ktdn1bWJ/NuZj0HCxr2VR2A9P612YbD+1fNLY5cRX9mrLcTxF4j1PxVrU2qa1cGe5lP0VF7Ko7Aen9ay6KK9pJJWR5TbbuwoorsPhz8Pr7x9r4tot0GnwENeXQH+rX+6PVj2H49qUpKK5mOMXJ2RB4G+H+sePNUNvpaCK2iI+0Xkg/dwj+reij9BzX1L4J+H+ieBdOEGlQeZcuP397KAZZT9ey/7I4+p5rY0LQtO8N6PDpmjWy21rCMKq9Se7E9ye5NaFeJXxMqrstEetRoRpq73CiiiuU6AooooAKKKKACiiigArhfif8NrTx7ohaFUh1i2Q/Zbg8bu/lv6qf0PPqD3VFVCThLmiTKKkrM+D7y0uLC9mtL2JobiBzHLG4wUYHBB/Goa9w/aJ8HJaX9p4qsowqXZFveBR/y0Ayj/AIqCD/uj1rw+voKVRVIKSPFqQdOTiwooorUzCvXfhB8XX8MzRaD4jmZ9HkbEM7HJtCf/AGQ/p19a8iorOpTjUjyyLhOUJcyPvVHWRFeNgysMqynII9aWvAvgZ8UNjQ+ENfn+Unbp07nof+eJP/oP5egr32vBq0pUpcrPZp1FUjzIKKKKyNAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKp6tqtnoekXOp6nMsFpaxmSR27D0HqT0A7k1cr5r+Pnj06vrg8MabN/oOnvm6KniWf0+idPqT6CtqNJ1Z8plVqKnG5wXjzxpeeOfFE2qXeY4B+7tbfPEMYPA+p6k+p9MVzVFFe/GKirI8Vtyd2FFFFUI1fDfh6+8U+ILXR9Kj33Fy+AT91F6lm9gOa+yPCfhew8H+G7bR9LTEcIy8hGGmc/edvc/oMDoK89+AvgYaF4a/wCEhvo/9P1VAYsjmO36j/vrhvptr1uvGxdbnlyLZHq4alyR5nuwooorhOsKKKKACiiigAooooAKKKKACiiigDk/iho6658MtctSoZ0tmuI/XdH84x9duPxr41r7u1CEXGmXULAFZIXQg+6kV8I162Al7skebjF7yYUUUV6JwhRRRQA5HeKRZI2ZHUgqynBBHcGvrj4S+Pl8c+FFN24/tWxxFeL/AH/7sg9mwfxB9q+Ra674Z+MX8FeNrXUHZvsUp8i8Ud4mPJx6qcN+GO9c2Jo+1hpujooVfZz8mfZFFIjrJGrxsGVhlWByCPWlrwT2AooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA4/4o+Mf+EK8DXV9AwF9Ofs9mD/AM9GH3v+AgFvwA718dySPLI0krM7uSzMxyST1JNem/Hfxd/wkHjptMtn3WejgwDB4aU/6w/gQF/4D715hXuYSlyU7vdnkYmpzzstkFFFFdZzBXQeBvDh8V+NtM0fDeXcTDzivURr8znPb5QfxxXP17j+zXoiy6prGtypn7PEltCx9XO5se4Cr/31WNafs6bka0oc81E+g4oo4IUihRUjjUKiKMBQOABTqKK+ePbCiiigAooooAKKKKACiiigAooooAKKKKAKWszfZ9Cv5unl20j/AJKTXwtX2b8TNR/sv4Y6/c52k2TxKfQyfIP1avjKvWwC92TPNxj95IKKKK9E4QooooAKKKKAPrL4JeKP+Ej+HNtBO+670s/ZJcnkqB+7P/fOB9VNeiV8z/s6a39h8c3elSNiPUrUlR6yR/MP/HS9fTFeDiYclVpHs4efPTQUUUVzG4UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABWT4q1yPw14T1LWJsYs7dpFDdGfoq/ixA/GtavHf2jtZNp4O0/SY32tqF0XcA/eSMZI/76ZD+Fa0Yc9RRM6kuSDkfN800lxcSTzuXlkYu7nqxJyTUdFFfRHhhRRRQAV9VfAHT1s/hXBcBcNfXU0zH1w3l/8AslfKtfY/wohEHwp8PoBjNqH/AO+mLf1rgxztTS8zswa99vyOvooorxz1AooooAKKKKACiiigAooooAKKKKACiiigDyv9obU/sfw1SzU/Nf3kcZHqq5cn81X86+Xa9z/aX1HfqmhaYrf6qGW4Yeu5go/9Ab868Mr3MHG1FeZ5GKleqwooorrOYKKKKACiiigDpPh5qH9l/EfQLvdtVb6JHPorNtb9GNfaVfBsErQXEcyHDRuGBHYg5r7xVgyhl5BGRXlY9axZ6ODejQtFFFead4UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABXzB+0Pq5vfiLFYKfk0+0RCP9t8uT+RT8q+n6+N/inff2h8VPEE2c7btoc/9cwI//Za7sDG9S/ZHHi5Wp2ORooor2TywooooAK+z/hsQ3wx8Okf9A+If+O18YV9ifCS4F18J9AkHa3Mf/fLsv9K8/HfAvU7cH8bOyoooryD0wooooAKKKKACiiigAooooAKKKKACiiigD5Y/aBvDc/FSWI/8utnDEPxBf/2evMK9H+PEBi+Ld+5/5bQwOP8Av2F/9lrzivoaH8KPoeJW/iS9QooorYyCiiigAooooAK+77EOun26yffEShvrgV8QaDpr6z4i07TIxlry6jhHtuYDP619zV5ePfwr1PQwa+JhRRRXmHoBRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFfDGuztdeItSuHOWlu5XJ9SXJr7n6V8GTSebPJIf42Lfma9PAby+RwYzaIyiiivUPOCiiigAr6o/Z/1AXnwsit882V3NDj6kSf+1K+V693/Zp1nbc63ojt99Eu4l+h2Of1SuTGR5qT8jpwsrVPU9/ooorwz1wooooAKKKKACiiigAooooAKKKKACiiigD58/aT0Fk1LSNfijOyWNrSZwOAyksmfchn/wC+a8Mr7Z8Z+F7bxj4TvdFujs89cxS4z5Ug5Vvz6+oyO9fGms6Re6BrN1peqQmG6tZDHIh9fUeoI5B7g17ODqqUOXqjysVTcZ83RlGiiiu45AooooAKKKkghlubiOC3jaSWVgiIgyWYnAAHrmgD034B+GpNZ+IS6m6/6LpEZlYkcGRgVRf/AEJv+A19S1yHwz8FR+BvB0Fg4U303768kHOZCPug+ijgfQnvXX14GJq+0qNrY9mhT9nCzCiiiuc3CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK+D7uH7Pezw9PLkZPyOK+8K+H/FMBtfGGs27DBiv50I9MSMK9LAPWSODGbRMmiiivVPOCiiigArq/hp4k/wCEV+IWl6jI+y2Mvk3OTx5b/KSfpkN/wGuUoqZRUk4scW4u6PvaivP/AINeNP8AhLvA0Ud1Ju1HTcW9zk8sAPkf8QPzVq9Ar52cXCTiz3YyUoqSCiiioKCiiigAooooAKKKKACiiigAooooAK4H4mfCyx8fWYuIGSz1mFcQ3JHyyD+4+Oo9D1Hv0PfUVcJyhLmiTKKmrM+H/EXhnV/CupvYa7ZSWsyn5Swykg9Vbow+lZNfdWqaRp+t2L2Wr2UF5bP1imQMPrz0PuOa8z1j9njwnfMX0ye+0xj0VJBKg/Bsn/x6vUp46LXvqx508JJP3T5hor3uX9mU+cPJ8VYjPXfYZI/8ic/pWnp37NeiQyBtU1u+u1HVYY1hz+e6tXi6K6maw1XsfO1vbzXdwkFrDJNNIdqRxqWZj6ADk19G/CL4OHw/JD4h8UIG1MDdbWh5Ftn+JvV/boPr09D8MeA/Dfg9D/YOmRwSsMNcOS8re29skD2GBXQ1xV8Y5rlhojro4ZQfNLVhRRRXAdgUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAV8g/GPTv7N+LGtIBhJpFuFPrvRWP/AI8TX19Xzh+0jpDW/izS9WVcR3doYSR/fjYk/o6/lXbgpWq27nJi43p37HjFFFFe0eUFFFFABRRRQB13w28bzeBPF0OoYZ7KYeTeRD+KMnqP9oHkfiO9fYVpdwX9nDd2cqzW86CSKRDkOpGQR+FfB9e3fAr4mDTp4/CWuTYtZn/0CZz/AKpyf9WfZj09Ccd+PPxlDmXPHdHbha3K+R7H0RRRRXkHphRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAV5p8etC/tb4ZzXUa5m0yZLkYHO37jD6YbP/Aa9LqrqenwatpN3p12N0F3C8MgH91gQf51dOXJNS7ETjzRcT4Toq/rek3Gha7e6VejE9nM0L8dcHGR7HqPrVCvo07q6PC2CiiimAUUUUAFKCQcjg0lFAH018GfiqviWzj8P6/PjV4ExDM5/wCPtAPX++B19Rz6165XwdbXM1ndRXNpK8M8Lh45EbDIwOQQexr6m+E/xWt/G1kum6syQa7AnzL0W6UfxqPX1X8Rx08jFYblfPDY9PD1+b3JbnpdFFFeedoUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAfOP7Rfhf7F4is/EdvHiHUE8m4IHSVBwT9UwP+AGvF6+1fHXhaHxj4NvtHl2iSVN1u7f8s5V5U/nwfYmvi+6tprK7mtbqNop4XMckbDBRgcEH6GvawdTnp8r3R5OKp8s79yKiiiu05QooooAKKKKACp7O8udPvYbyxmeC4gcPHLGcMjDoQagooA+qfhV8W7bxpbppesNHba5GvTot0B/Eno3qv4jjOPTa+DYJ5bW4jntpXimiYOkiMVZWHIII6GvpH4V/GmHxB5OieK5Eg1ThILo/Kl0ewPZX/Q9sHivIxOF5ffhselQxHN7s9z2GiiivPO4KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK+dP2g/AxsdUj8V6dF/o94RHeBR9yXHyv9GAx9R719F1R1rR7PX9Eu9K1OPzbW7jMci9x6EehBwQexArajVdKakZVaaqQ5T4Xorb8XeGL3wf4mutH1FfnhbMcmMCWM/dcexH5HI7ViV9Ammro8Vpp2YUUUUxBRRRQAUUUUAFLSUUAe4/C/wCOT2Qh0XxrM0luMJBqLctH6CT1H+11HfPUfQUM0dxCk1vIksUihkdGBVgehBHUV8GV6F8OPi3qngaVLO533+jM3zWzN80OerRk9PXb0PsTmvOxGEUvep7ndRxLj7sz60orK8O+JtJ8V6Smo6HdpcwNwwHDRt/dZeoNateU007M9FNNXQUUUUhhRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAed/GD4eDxt4b+06fGP7Y09S9vjrMvVoj9eo9/TJr5PZWRyjqVZTggjBBr70r57+O/w1NrcSeLtDh/cSnOoQoPuOf8AlqB6Hv789zj0sHXs/Zy+Rw4qjf34nhtFFFeqeaFFFFABRRRQAUUUUAFFFFAGz4Y8V6v4Q1ZdQ0K7aCUYDoeUlX+669x/Ltg19PfDz4taP45hS1lK2GsBfntHbiTHUxn+Ie3Ue45r5Ip8UskEySwu0ciMGR0OCpHQg9jXPWw8Kq13N6VaVN+R950V4F8N/j0U8nSfHLll4SLUwOR6CUd/94fj3Ne9QzRXMCTW8iSxSKGSRGDKwPQgjqK8WrSnSdpHq06kaivEfRRRWRoFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABTJ4Irm3kguI1lhlUpJG4yrKRggjuCKfRQB8l/Fj4azeBdc+0WSNJot45NtJ18pupiY+o7HuPcGvPa+5te0Ow8SaJc6Vq0ImtblNrDup7MD2IPINfIPj3wLqPgPxA1hfAy20mWtboLhZk/ow7jt9CCfawuI9ouWW55WIocj5o7HL0UUV2nIFFFFABRRRQAUUUUAFFFFABXf/AA6+LGr+BZ1tZC1/o7N89o7cx56tGf4T7dD9ea4CionCM1yyRUZOLvE+3/DXinSfF2kJqOh3S3ELcOvR4m/usvY/5GRWvXxF4Z8Vav4Q1hNR0O6aCVeHQ8pKv9117j/Iwa+pPh38UtJ8e2giUrZ6tGuZrJ26+rIf4l/Ud+xPj18LKn70dUepRxCqaPc7miiiuM6gooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoorP1zXtM8N6XJqOt3kdpax9Xc/ePoB1J9hzTSbdkJtLVmhXjnxr8c+D30C58O3SDVtTzmNbdgPskg6MX5wR3UZJ5BxnNcH8Qfjlq3iRpbDw4ZNK0s5UuDiece5H3R7D8SeleU16eHwbTU5nBWxKa5YCUUUV6Z54UUUUAFFFFABRRRQAUUUUAFFFFABU1rdXFjdxXVnNJBPCweOWNirIw6EEdKhooA+k/hd8boNdMOi+LpI7bUjhIbzhY7k+jdlf9D7HAPsdfBNe0fC343TaP5Oi+MJXnsOEgvmyz249H7svv1HuOnl4jCfap/cehQxP2Z/efR1FMgniubeOe2lSWGRQ6SIwZWU8ggjqKfXmHoBRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUV478U/jXF4febRPCbx3GpjKT3fDJbH0Xsz/oO+TkDSnTlUlyxInUjBXkdV8Q/ijpHgK0MTlbzVpFzDZI3I/wBpz/Cv6nt3I+XfFPjDWvGWqG+127aZhnyol4jhHoq9v5nuTWTdXVxfXct1eTSTzzMXklkYszk9SSetQ17VHDxpLzPJq15VH5BRRXp/w2+DGo+MPL1LWTJp2jHBVsYluR/sA9B/tH8Ae206kaa5pMzhCU3aJxPhrwprPi7UxY6DZPcycF36JEPVmPAH8+2a9+8Ofs9aDZ6JNF4jmkv9QuI9plhYolufWMdyD3br6DmvTtC8P6X4a0uPTtEs47S2T+FByx9WPVj7mtGvIrYyc3aOiPSpYWMVeWrPjTx78PtV8Bav9nv186zlJ+zXiLhJR6ezDuv8xzXKV9z61omneItJm0zWLVLq0mGGRx09CD1BHYivlj4lfCrUvAl211b77zRZGxFdAcxZ6JJjoffofY8V24fFKp7stzlr4dw96Ox5/RRRXacgUUUUAFFFFABRRRQAUUUUAFFFFAHpHwx+Ld94InTT9R8y80N2+aHOXtyerR57dyvQ+x6/UelarY63pkGo6Vcx3VpOu6OWM5BH9D2IPIr4UrtPh18SdT8A6pmLdc6ZMwNzZluD/tL6N/Poe2OHEYVVPehudlDEOHuy2PsKiszw94i0zxTosOqaLcrPbSj6Mjd1YdmHpWnXjtNOzPTTTV0FFFFIYUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFeA/GX4vM0lz4X8LT7UXMd9extyx7xofTsT+HrnWlSlVlyxM6lSNON2O+LnxoYST+HvBtzgDKXeoRNyT3SM/zb8vWvBqSivdpUo0o8sTx6lSVSV2FOVWdwqKWZjgADJJpY43mlWOJGeR2CqqjJYnoAPWvpb4S/B6Lw3FDrviWJZdYYB4YG5W0/xf37dvWlWrRpRux0qUqjsjH+FvwOWAQ6542gDS8Pb6a4yE9GlHc/7Pbv6D3UAAAAYA6AUUV4dSrKrK8j16dONNWiFFFFZGgVFdWsF9aS2t5DHPBMpSSKRQyup6gg9alooA+afil8Fbjw752teFY5LnShl5rYZaS1HcjuyD16jvnrXj9fe1eJ/FD4HRal52teC4Uhu+Xn09cKk3qY+yt7dD7Hr6mHxf2an3nn18N9qH3HzrRUk0MttO8FxG8UsbFXjdSrKR1BB6Go69M88KKKKACiiigAooooAKKKKACiiigDqPAnjzVPAeti809vNtpCBdWjNhJl/ow7N29xkH628L+KNL8X6FFquiz+ZDJw6Hh4n7ow7Ef/XHBr4hrpfA/jjVPAuurf6Y++F8Lc2rH5J09D6Edj2+mQePEYZVVzR3OqhXdN2ex9o0Vj+FvFGmeL9Bh1XRpvMhk4dD9+J+6MOxH/1xwa2K8Vpp2Z6qaaugooopDCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK4b4p/EKHwH4aLW5V9WvAUs4jztPeQj0XP4nA9cVCLnJRRMpKKuzk/jV8VTocMvhnw7PjUpVxd3CHm2Qj7qn++R37D3PHzdUtxcTXd1LcXUrSzTOXkkc5Z2JyST3JNRV79GlGlGyPGq1HUldhRRXrXwP8AhwPEmr/8JBrEO7SrCT91G44uJhzjHdV4J9Tgc81VSoqcXJkwg5y5Udn8E/hUulW0PijxFb5v5V3WVvIP+PdT/GR/fI6eg9zx7TRRXgVKkqkuaR7VOCpx5UFFFFZlhRRRQAUUUUAFFFFAHn3xI+Eul+OoHu7bZY60q/JdBfllx0WQDqO27qPccV8u+IPDuqeF9Xk03W7R7a5j5w3KuOzKehB9RX3HWD4t8G6P410g2Gt2+/GTDOnEkLeqt/Toe4rtw+KdP3Zao5a2HU9Y7nxPRXZeP/hprPgK+/0tftWnSNiC+jX5W/2WH8Lex/AmuNr2IyjNXieXKLi7MKKKKokKKKKACiiigAooooAKKKKAOp8BePNS8B68t7Yky2shC3VozYWZP6MOx7fQkV9d+HvEGneJ9Dt9W0ecTW065HZkPdWHYjuK+G67f4ZfEe88A65lt8+k3LAXdsD/AOPr6MP1HB7EcWJw/tFzR3OvD1+R8stj6/oqtp+oWuq6dBf6dOlxa3CCSKVDwymrNeLseqFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQBT1bVLTRNIutT1KUQ2trGZJHPYD09SegHc18aeNfFl3408VXWsXuVEh2QQ5yIYh91R/M+pJPevT/ANoPxybzUY/CenTfuLUiW+Kn78nVU+ijk+5Hda8Rr2MHR5Y873Z5eKq80uRbIKKKK7zjNbwx4fu/FXiay0awH726kClyMiNerMfYAE/hX2hoWi2fh3QrTSdMj8u2tIxGg7n1Y+5OSfc15H+zr4RFpo914ou4v314Tb2pI6RKfmYfVhj/AIB717ZXjYyrzz5Fsj1cLT5Y8z3YUUUVwnWFFFFABRRRQAUUUUAFFFFABRRRQBBe2NrqVjLZ6hbx3NtMu2SKVQysPQg184fE74I3Ph/ztY8KJJd6WMvLa8tLbDuR3ZB69R3zya+lqK2pVpUndGVSlGorM+CaK+kvid8D7fW/O1jwhHHa6icvLZjCx3B9V7K36H25J+c7q1uLG7ltbyGSC4hYpJFIpVkYdQQele3SrRqq8TyalKVN2ZDRRRWxkFFFFABRRRQAUUUUAFFFFAHq3wZ+KDeFNSXQ9am/4k13J8juf+PWQ/xf7p7+nX1z9QAggEHIPQivgmvov4E/Er+0rWPwnrc2bu3T/QJXP+tjA/1Z91HT1A9ufMxmH/5eR+Z34Wt9iXyPa6KKK8s9EKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK57x14pi8G+Db7WJdpljTZbxt/y0lbhR+fJ9ga6Gvmr9oXxadT8UweHrWTNtpi75gDw07DP/jqkD6s1b4en7Sol0Ma1T2cGzyS6up768muruVpp55GklkY5LsTkk/UmoaKK+gPFCrWmafPq2rWmnWi7p7uZIYx/tMQB/Oqtem/APRf7U+JsV265i023e4ORxuI2KPr82f8AgNZ1JckHLsXCPNJRPpzR9Lt9E0Wz0yyXbBaQrCnHUKMZPuetXaKK+dbu7nu7BRRRSAKKKKACiiigAooooAKKKKACiiigAooooAK4L4kfCvTPHlmbiPZZazGuIrsLw+OiSAdR79R29D3tFVCcoPmiTKKkrM+HNf8AD+p+GNYl0zW7V7a5j/hbow7Mp6EH1FZlfafjTwPo/jnRzZavFiRMm3ukH7yBvUH09QeD+RHyh418D6t4F1o2OrR7onybe6Qfu519R6H1HUfkT7WHxMaqs9zyq1B03dbHN0UUV1nMFFFFABRRRQAUUUUAFT2V5cadfQXllK0NxbyCSKRDyjA5BqCigD7M+HfjW38deEoNRj2pdx/uryEf8s5AOcex6j646g11VfIfwl8bnwV41ikuZCum3uILwE8KCflk/wCAnn6FvWvrwEMoKnIPII714OJo+ynpsz2KFX2kNdwooormOgKKKKACiiigAooooAKKKKACiiig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oAKKKKACiiigDwH9o3wmEksfFNpH9/8A0S7Kjv1jY/huXPsorwevt3xfoEfijwhqWjShc3UDLGW6LIOUb8GANfEssTwTPFMhSSNirqw5UjgivZwVTmp8r6HlYqHLPmXUZRRRXccgUUUUAFfSf7NjH/hCNUXsNRJH/ftK+bK+mf2b49vw91Bz/Fqjj8oov8a48Z/BOrC/xT12iiivEPWCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACua+Iunf2t8N9etANzNZSOg9WQb1/VRXS02SNJonjlUMjqVZT3B6iqi+Vpikrqx8F0Vo6/pT6H4j1HS5M7rO5khye4ViAfxHNZ1fSJ3V0eC1Z2CiiimIKKKKACux+GfjufwH4rjuyWfT7jEV7Cv8AEmeGA/vL1H4jvXHUVMoqUeVlRk4u6PvG1uoL6zhurSVZoJ0EkciHIdSMgj8Klr5x+B/xP/si6j8La9NixnfFlO54gkJ+4f8AZY9PQn0PH0dXgVqTpS5WezSqKpG6CiiisTUKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACvkT4zaH/YXxS1NUTbDekXkXHXf97/x8PX13Xgf7S+l/NoWrIvUS20jfkyj/ANDrswcuWrbucuKjenfseC0UUV7Z5IUUUUAFfVnwDtPs/wAJ7WXGPtNzNL9cNs/9kr5Tr7M+GGnHS/hfoFsRgmzWYj0MmZD/AOhVwY52ppeZ2YNe+2dVRRRXjnqBRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQB8tfH/QTpXxGOoIuINUgWYEDjeo2MP0U/wDAq8ur6l+Pvho618P/AO0YE3XGky+fwOTE3yuP/QW+i18tV7uFnz0l5aHj4iHLUfmFFFFdRzhRRRQAUUUUAFfR/wAFvix/bUMXhnxJP/xMY122lzIf+PlR/Ax/vgd+49+vzhT4pZIJklgdo5I2DI6HBUjkEHsaxrUo1Y2ZrSqOnK6PvOivLfhH8WIfF9nHo+uSrHrkKcMeBdqP4h/tY6j8RxkD1KvBqU5U5csj2ITU48yCiiioLCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACvLP2hbL7T8MVmA5tb6KXPoCGT/ANnFep1wHxwTd8HtZP8AdMBH/f8AjH9a2oO1WPqZVlenL0PkiiiivoTxAooooAtabYy6pqtpYWwzNdTJDGP9pmAH6mvui2t47S1it4RiOFAiD0AGBXyf8D9FOsfFOwdk3RWCPdye20YX/wAfZa+tK8nHSvJR7HpYONouQUUUV5x3BRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQBFdW0N7ZzWt1GJIJ42jkQ9GVhgj8jXxN4s8Pz+FvFeoaNc7t1rMVRiPvp1RvxUg/jX29XiP7RHg77Xpdt4qso8y2mILzaOsZPyMfoxx/wACHpXbg6vJPlfU5MVT5ocy6HzvRRRXtHlBRRRQAUUUUAFFFFAEttczWd1Fc2srwzxOHjkjbDIwOQQexr6h+E3xag8Y2qaTrciQa5EvB+6t2oH3l9G9V/EcZA+WakgnltbiOe2leKaJg6SIxVlYcggjoawrUY1Y2e5tSqypu6PvKivI/hN8YovEyQ6H4llSHWANsM5wq3f+D+3Q9vSvXK8OpTlTlyyPXhOM1eIUUUVmWFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAV5z8d5vK+EeoJ/z2mgT/AMiK3/stejV5D+0dqIt/AljYg/Pd3wbH+yiMT+pWtsOr1Y+plWdqbPmeiiivoTxAooqa0tZr++gtLVDJPcSLFGg6szHAH5mgD6I/Zw8P/ZfDeo67MmHvphBESP8AlnH1I+rMR/wGvaKyvDGhQ+GfC+n6NbYKWcCxlgPvt1ZvxYk/jWrXztaftKjke5ShyQUQooorI0CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAqC+srfUrCeyvolmtriNopY26MpGCPyqeigD4r8deE7jwV4uu9HuNzRod9vKR/rYj91vr2PuDXO19a/F34fL438MGWxjH9r2AMlqehlH8UR+uOPQ49TXyY6NG7JIpVlOGVhgg+le9h63tYX6njV6Xs5eQ2iiiukwCiiigAooooAKKKKAHKzI4dGKspyGBwQa+gvhV8bVu/J0LxpcBJ+Et9RkOBJ6LIex/2u/fnk/PdFZVaUasbSNKdSVN3R97UV82fCz41y6AIdE8WSSXGmDCQXZyz2w9G7sn6j3GAPo62uYLy1jubSZJ4JVDxyRsGV1PQgjqK8OrRlSlZnr06saiuiWiiisTUKKKKACiiigAooooAKKKKACiiigAooooAKKKKACvnH9pPVRceKNJ0tHB+yWrTMAejSNjB98Rg/jX0aWCqWYgADJJ7V8VeOfEB8UeONV1fcWjuLgiHPaNflT/AMdAruwUL1ObsceLlaHL3Ofooor2Tywr1n4AeEjrXjJ9buUzaaQu5MjhpmyFH4DLexC+teURxvLIscSs7uQqqoyST0AFfZPw28JDwZ4FstMdQLth592R3lbqPfAwv0WuPF1eSnZbs6sNT553eyOrooorxD1gooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo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n8QPiBpvgHRDc3ZE97MCLWzDYaVvU+ijuf61T+I3xQ0vwDY+Wdt3q0q5gs1bp/tuf4V/U9u5Hyr4h8Q6l4p1ubVdauDPczH6Ki9lUdgPSu3D4Z1HzS2OSviFD3Y7h4h8Q6l4p1ufVdZuDPczH6Ki9lUdlHpWXRRXspJKyPLbbd2Fem/CX4VTeNb5dT1dHh0KB/mPQ3TD+BT6erfgOeQz4WfCa78bXSalqqvbaFE3zP0a5IPKp7erfgOen1LZWVtp1jDZ2MCW9tAgSKKMYVFHQAVw4rE8nuQ3OzD4fm96Ww+CCK1t44LaNYoYlCRxouFVQMAAdhipKKK8c9MKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigDnvGfgrSfHGiNp+rxYZctBcoP3kDeqn09R0P5V8meNPBWq+BtcbT9WjyjZa3uUH7udfUH19R1H5E/alZHifwvpXi/RJNL1u3EsL8qw4eJuzKexH/wBY5FdeHxDpOz2OatQVRXW58QUV2XxB+G+reAdS23INzp0zEW96i/K/+yw/hbHbv2zXG17UZKavE8qUXF2YUUUVRIUUUUAFFFFABRRRQAUUUUAT2d7c6dexXlhPJb3MLB45YmKshHcEV9L/AAs+M1t4pEOjeI2jtdZwFjl+7Hd/T+6/t0Pb0HzDSqxVgykgg5BHasK1GNVWZrSqypu6PvWivDPhP8axdeToHjO4Cz8JbajIeJPRZD2Po3fvzyfXPEnirRvCemm+16+jtYudik5eU+iqOSf8mvEnRnCXK0evCrGceZM168g+JHxysdBWbSvCjx32p4KPdDDQ259v77D06DvnBFec/EL426r4sSXTtFWTS9JbKsA376df9sjoP9kfiTXl1d9DB/aqfccdbFdIfeWL29utSvpby/nkubmZi8ksrFmc+pNV6KmtLS4v7uK1soJLi4mYLHFEpZnJ7ADrXpaJHn7kNev/AAt+Ctx4iMGteKY3ttK4eK2OVkuh2J7qh9ep7Y611nwy+BkWlNFrHjSOO4vBhobDIaOE+r9mb26D37e115uIxf2af3noUcN9qf3Edvbw2ltHb2sSQwxKEjjjUKqKOAAB0FSUUV5Z6AUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAVdT0uy1nTZtP1S2jurSddskUgyGH9D79RXy/8T/hDe+Cpn1LSRJeaGzffxl7bP8L+3o34HBxn6qpssUc8LxTIskcilXRxkMD1BHcVvRrypPTYxq0Y1FrufBdFe6fE/wCBj23na14IhaSHl59NXlk9TF6j/Z6jtnoPDCCpIIwRwQe1e3TqxqxvE8mpTlTdpCUUUVqZhRRRQAUUUUAFFFFABRRRQAVYvNQvNQeN7+6muWjjEaGaQuVQDAUZ6AelV6KACiivdPhp8C7XUrG013xVdR3NtOglhsrWTKsD03uP/QV/PqKyqVY0o3kaU6cqjtE818FfDvXvHN5s0q38u0VsS3swIij9s/xH2H44HNfTfgP4ZaH4Dtc2SfatRdcS30yje3qFH8K+w/EmurtLO2sLOO1sYI7e3iXbHFEgVUHoAOlTV49bEzq6bI9Slh409d2FFFFcp0BRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABXlfxO+DFl4sWXVfD6x2Ws8s6/djuj/tf3W/2u/f1HqlFXTqSpy5okThGatI+E9S0y90fUZrDVLaS1uoG2yRSLgqf8PfvVWvsrx18O9F8ead5eox+Rexri3vYlHmR+x/vL/sn8MHmvlnxn4F1nwNqv2TWIMxOT5F1GCY5h7HsfUHkfka9qhiY1VbZnlVqEqevQ5uiiiuo5wooooAKKKKACiiigAooooAK9T+DnxRbwhqI0fWpidEun4djn7I5/iH+ye4/H1z5ZRUVIRqR5ZFwm4S5kfeqOsiK6MGVhlWByCPWlr5++B3xSMMkHhLxDP+6Y7NOuJD9w9oSfQ/w+nT0x9A14FWlKlLlZ7NOoqkboKKKKyNAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKo6zouneINLl07WLSO7tJhho5B+oPUEdiORV6imm07oN9z5Y+JXwa1Hwc0mpaN5moaLnJbGZLYf7YHUf7Q/HHfzCvvUgMpVgCCMEHvXiPxL+BMV75ur+CIkguOWl00HaknvH2U/7PT0x0PqUMZf3an3nnVsLb3ofcfPFFSXFvNaXElvdRPDNExSSORSrIw6gg9DUdekcAUUUUAFFFFABRRRQAUUUUAKCQQQcEdCK+oPgv8Tf+Es0z+xNamzrFmnyyMebqMfxf7w7+vX1x8vVb0rVLzRdVttS0ydoLq2kEkUi9iP5jsR3FYV6Kqxt1NqNV05XPuuiuY8AeNbTx14Wh1O32x3C/u7u3B/1UgHI+h6g+nuDXT14MouLsz2YtSV0FFFFSMKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigDgfiP8KNL8d2zXMWyx1lFxHdqvEmOiyAdR79R7jivlvxD4c1TwtrEuma3atbXEfIzyrr2ZT0IPrX3FXP+MfBWj+N9HNjrMGWXJguE4kgb1U/zHQ124fFOn7stUctbDqesdz4porqfHXgDV/AerfZtSTzbWQn7NeRr8kw/o3qp/Uc1y1exGSkro8qUXF2YUUUVQgooooAKKKKACiiigDsPhp46n8CeLI7wln0+4xFewj+JM/eA/vL1H4jvX2DbXMN7aRXVpKs0EyCSORDkOpGQQfTFfB1fQP7Pnj3zoW8H6nLl4w0unsx6r1eP8OWHtu9BXnYyjzL2i3R3YWrZ8jPdaKKK8k9IKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAoa3oeneItJm0zWbVLq1mGGRx0PYg9QR2Ir5W+Jfwt1DwFfefDvu9GmbEN1jlD/ckx0b36H8wPriq9/YWuqWE1lqFvHc206lJIpFyrCuihXlSfkYVqMaq8z4Ror0v4q/Ca58E3TalpIkuNClbhjy1sx6I/t6N+B56+aV7kJxnHmieRODg7MKKKKskKKKKACiiigAq3pepXWjata6jp8hiubWVZYnHZgc/iPaqlFLcNj7d8JeI7bxb4VsdZs8BbmPLpnPluOGX8CCP1rZr52/Zz8VG11m98M3Mn7q8U3FspPSRR8wH1Xn/gFfRNfP16fs6jie3Rqe0gmFFFFYmoUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQBFdWsF7aS2t5Ck8EyFJIpF3K6nqCO4r5b+LPwpm8FXjanpCPNoU78H7zWrH+Bj/AHfRvwPPJ+qahvbO21Gxms76BJ7adCkkUgyrqeoIrejWlSldbGNWkqkbPc+D6K9A+KnwzufAer+faB5tFunP2eY8mM9fLc+o7HuPocef17sJxnHmiePKLg7MKKKKskKKKKACiiigDQ0HWLjw/wCILHVrM/vrOdZVGcbsHlT7EZB+tfb2n3sOpabbX1q26C6hSaNvVWAI/Q18I19X/ArXf7Z+GFrBI26bTZXtXyedo+ZPw2sB/wABrzsdC8VM7sHO0nE9HoooryT0gooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAoa3otj4h0W50rVoRNa3KbHU9R6EHsQeQexFfH3jzwVfeBfEsum3uZIG+e1ucYE0eeD7EdCOx9sGvtCuW+IXgi08deFptOnCpdxgyWdwRzFJ/8AEnoR6e4FdWGrulKz2ZzV6PtI3W58ZUVZ1DT7rStSuLDUIWgubaQxyxt1VgcGq1e6eQFFFFABRRRQAV7f+zVq3la3rWkM3E9ulygPqjbT/wCjB+VeIV6D8Dr/AOw/FrTFJwlyksDfjGxH/jyisMRHmpSRtQly1Ez61ooor589oKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK87+JvxZsPAtu1jZBLzW5FykGflgB6NJj8wvU+w5q4QlOXLEmUlBXkdlrfiLSPDdmLrXdRt7GEnCmZ8Fz6KOrH2Fea6t+0X4Xs5mj0uyvtSA/5ahREh+m75vzAr521vXtU8R6m+oa3ey3ly/8ch+6PRR0Uew4rOr1KeBgl7+p508XJv3dD6Di/aZtDMRN4YmSPsyXgY/lsH866nQfjx4M1hlju7ifSZicAXkfyk/765A/HFfKdFaSwdJrTQhYqotz7yguIbq3Se1lSaGRQySRsGVh6gjgipK+NfBPxF13wNfo+nXDTWJbM1hKxMUg74H8Lf7Q/HI4r6t8IeL9L8a6DHqmjyEoTtlifh4XxyrD+vQ15tfDypa7o7qNeNTTqbtFFFcx0BRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAHiH7QPgJbuwXxdpkP8ApFuBHfqo+/H0WT6r0PsR/dr54r7xu7WC+s5rS7jWWCeNo5Y26MrDBB/A18WeNPDM3hDxhf6LMSy28n7pz/HGeUb8iM++a9fBVeaPI+h5mLp8r511MGiiivQOIKKKKACuk+Hdz9k+JXh2XOB/aMKE+zOFP865utbwq/l+MdGf+7fwH/yItTPWLRUdJI+4KKKK+aPeCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAOW+IvjOLwL4Pn1RlWS6YiG0iY8PKc4z7AAk/THevjvUL+61XUZ7/AFCZp7q4kMksj9WY9TXpfx/8TS6v4+Oko+bTSYxGqg8GRwGc/qq/8BryuvbwlJQp83Vnk4mo5zt0QUUUV2HKFFFFABXZ/DDxzP4G8Ww3Bc/2ddMsV9F2KZ+/j1XOR+I71xlFTKKlFxZUZOLuj71V1dFdGDKwyGByCKWvP/glr0mu/C+x+0SeZNYO1m7H0TBT/wAcZR+FegV87OLhJxfQ9yMuaKkgoooqCgooooAKKKKACiiigAooooAKKKKACvCf2kvDitbaX4kgT50Y2dwQOoOWQ/gQ4/EV7tXK/E3Rv7e+Gut2YXdILYzRDHO+P5wB9duPxrahPkqJmVaPPTaPjOiiivoTxAooooAK2PCUfneNdEj/AL+oQL+ci1j10nw8ga4+JXhxFGSNSgcj2Vwx/QVM9IsqOskfaVFFFfNHvBRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFIc7Tjg44oA+HvEt8+p+KtVvpW3NcXkshP1cmsunNned/3s859abX0yVlY8Bu7uFFFFMQUUUUAFFFFAH0F+zNdM1h4htCx2xywShfdg4J/8dFe6V8+fsz7v7U8QYPy+TBke+58f1r6DrwsWrVmexhv4SCiiiuU6AooooAKKKKACiiigAooooAKKKKACkdFkRkcBlYYIPcUtFAHwrq1i2ma1e2D/etbiSE59VYr/SqddT8TLYWvxQ8Qxj+K/kk/76O7+tctX0sXeKZ4MlaTQUUUVRIV6B8ELL7Z8XNJJGVtxLM34RsB+pFef17P+zbpRn8V6rqrDKWloIR/vSNn+UZ/OsMRLlpSZrRV6iR9H0UUV8+e2FFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAfC2sW7WeuX1s42tDcyRkehDEVSrr/itpx0v4qa9CV2iS6M49xIBJ/7NXIV9LB80UzwZK0mgoooqiQooooAKKKKAPoD9ma1xa+Iroj7728YP0Dk/+hCvdq8q/Z4077J8NpLpl+a9vpJAfVVCoP1Vq9VrwMS71pHs4dWpIKKKK5zcKKKKACiiigAooooAKKKKACiiigAooooA+Pfi9gfFrXtvTz1/9AWuLrpviNeC/wDiV4gnXlft8qAjuFbaD/47XM19HT0gl5HhVNZsKKKK0ICvqH9nrRzYfDqS/kTD6jdvIpx1RcIP1D/nXzLZ2k1/fQWdqm+e4kWKNR/EzHAH5mvuDQdJh0Hw/YaVbf6qzt0hBxjdtGCfqTz+Nefjp2go9ztwcbycuxfoooryD0wooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD5y/aS0X7P4l0rWY1wt5btA5A/jjOQT9Q4H/Aa8Wr68+MXhj/hJ/hvfJCm67sR9st8DklAdw/FSwx64r5Dr28HPmpW7Hk4qHLUv3Ciiiuw5QooooAKKK1fDGl/234s0rTCMrd3kULeyswBP5ZpN2VxpXdj6++Huk/2H8O9DsCu147NHkX0dxvb/wAeY10dAGBgcCivmpPmbbPeSsrBRRRSGFFFFABRRRQAUUUUAFFFFABRRRQAVR1vVItD0C+1S4/1VnbvMw9dqk4/HGKvV49+0N4rGm+Fbfw9bP8A6Rqj75gOqwoQf1bH4K1aUoe0momdSfJByPm6aZ7ieSaZi0kjF3Y9yTkmo6KK+jPDCiilVS7BVBZicAAck0AepfATwmdd8df2tcJm00dRLk9GmOQg/Dlv+Aj1r6jrjfhX4QPgzwHaWVwgW+uP9Iu/USN/D/wEAL9QfWuyrwMTU9pUbWx7NCnyQSCiiiuc3CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAAjIwa+QPiz4N/4Q3x1cwW8e3T7z/SbTA4Ck8p/wE5H0x619f1xPxU8CJ468IyQQKo1O0zNZOeMtjlCfRgMfUA9q6sNW9lPXZnPiKftIabo+P6KfLFJBM8UyNHJGxV0YYKkcEEetMr3TxwooooAK9A+CFiL34t6UWGUt1lmI+kbAfqRXn9eofs+yInxSVX+89lMqfX5T/IGsa7tSl6GtHWpH1Pqaiiivnj2wooooAKKKKACiiigAooooAKKKKACiiigCvqF/baXp1xf38qw21tG0ssjdFUDJNfGXjnxZc+NPF13rFyCiSHZbxE/6qIfdX+p9ya9I+OfxM/ta6k8KaHNmxt3/ANNmQ8TSA/cH+yp6+pHtz4tXsYOjyLnluzy8VV5nyrZBRRRXecYV638BfAv9veJD4g1CLNhpbjygw4ln6j/vnhvrtrgPB/hW+8Z+JrbR9NGGkO6WUjKwxj7zn6fqSB3r7I8PaDY+GNBtdI0qLy7a2TauerHuxPck5JrhxdbkjyLdnXhqXPLmeyNKiiivGPVCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKK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+LbLc2mz2GpJ2VJTG5/BgB/49XJ33wu8b6fn7R4av2x18iPzv/QM11RrU5bSRzulUjujk6Ku3Oj6nZSbLzTru3f+7LAyn9RVVopE++jL9RitLpmdmMoqWK1uJv8AUwSSf7iE1et/DeuXRxa6NqEx9I7V2/kKLpDs2ZlFdVafDLxresFh8MakpPTzoDF+r4rrNK/Z58X3u1tQksNNXusk3mOPwQEfrWcq1OO8kWqU5bI8pp0cbyyLHEjO7HCqoySfQCvo3Rf2btEtir67q93fsOTHAggQ+x+8T+BFeleHvBXhzwrGBoOkW9q+MGYLukP1dst+Ga5p42mvh1OiOEm/i0Pmvwr8EvFviR0kurX+x7NuTNegq5H+zH94/jge9e6eDPg/4Z8HSR3SQtqOopyLu6AOw+qL0X68n3rvaK8+riqlTTZHZTw8Ia7sKKKK5joCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD//Z", - "providedOnSchulstrukturknoten": 0 + "providedOnSchulstrukturknoten": 0, + "keycloakGroup": "Schulrecht A-Z-service", + "keycloakRole": "Schulrecht A-Z-user" }, { "id": 10, @@ -108,7 +128,9 @@ "kategorie": "HINWEISE", "logoMimeType": "image/svg+xml", "logoBase64": "PHN2ZyBpZD0nRWJlbmVfMScgZGF0YS1uYW1lPSdFYmVuZSAxJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAxNSAxNSc+PGRlZnM+PHN0eWxlPi5jbHMtMXtmaWxsOiMwMDMwNjQ7fTwvc3R5bGU+PC9kZWZzPjx0aXRsZT5zdXBwb3J0PC90aXRsZT48ZyBpZD0nRWJlbmVfMicgZGF0YS1uYW1lPSdFYmVuZSAyJz48cGF0aCBjbGFzcz0nY2xzLTEnIGQ9J00xMSw5Yy0xLDEtMSwyLTIsMlM3LDEwLDYsOSw0LDcsNCw2LDUsNSw2LDQsNCwwLDMsMCwwLDMsMCwzYzAsMiwyLjA1LDYuMDUsNCw4czYsNCw4LDRjMCwwLDMtMiwzLTNTMTIsOCwxMSw5WicvPjwvZz48L3N2Zz4=", - "providedOnSchulstrukturknoten": 0 + "providedOnSchulstrukturknoten": 0, + "keycloakGroup": "Helpdesk kontaktieren-service", + "keycloakRole": "Helpdesk kontaktieren-user" }, { "id": 11, @@ -118,7 +140,9 @@ "kategorie": "HINWEISE", "logoMimeType": "image/svg+xml", "logoBase64": "PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0ndXRmLTgnPz48IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMjUuMy4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAtLT48c3ZnIHZlcnNpb249JzEuMScgaWQ9J0ViZW5lXzEnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgeG1sbnM6eGxpbms9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsnIHg9JzBweCcgeT0nMHB4JyB2aWV3Qm94PScwIDAgMTUwIDE1MCcgc3R5bGU9J2VuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMTUwIDE1MDsnIHhtbDpzcGFjZT0ncHJlc2VydmUnPjxzdHlsZSB0eXBlPSd0ZXh0L2Nzcyc+IC5zdDB7ZmlsbDojODU4NjgxO30KPC9zdHlsZT48cGF0aCBjbGFzcz0nc3QwJyBkPSdNOTMuNSw2My40Yy0xLjgtMS45LTQuMy0yLjktNi44LTIuOGMtMC4xLDAtMC4yLDAtMC40LDAuMWMtNS43LDYuMy0xNS40LDYuNy0yMS43LDFjLTAuMy0wLjMtMC43LTAuNi0xLTEgYy0wLjEtMC4xLTAuMi0wLjEtMC40LTAuMWMtMi42LTAuMS01LjEsMS02LjgsMi45YzUuMSw1LDYuMiwxMi43LDIuNywxOC45YzMuNywwLjQsNi45LDIuNiw4LjgsNS43aDE0YzEuOS0zLjIsNS4xLTUuMyw4LjgtNS43IEM4Ny4zLDc2LjEsODguNCw2OC40LDkzLjUsNjMuNHonLz48ZWxsaXBzZSBjbGFzcz0nc3QwJyBjeD0nNzUnIGN5PSc1MCcgcng9JzEyLjUnIHJ5PScxMi43Jy8+PGVsbGlwc2UgY2xhc3M9J3N0MCcgY3g9JzEwNC4zJyBjeT0nNzQuNicgcng9JzEyLjUnIHJ5PScxMi43Jy8+PGVsbGlwc2UgY2xhc3M9J3N0MCcgY3g9JzQ1LjcnIGN5PSc3NC42JyByeD0nMTIuNScgcnk9JzEyLjcnLz48cGF0aCBjbGFzcz0nc3QwJyBkPSdNMTE2LDg1LjJjLTAuMSwwLTAuMiwwLTAuNCwwLjFjLTUuNyw2LjMtMTUuNCw2LjctMjEuNywxYy0wLjMtMC4zLTAuNy0wLjYtMS0xYy0wLjEtMC4xLTAuMi0wLjEtMC40LTAuMSBjLTkuNiwwLTExLjMsMTEuNS0xMS4zLDE4LjljMCw1LjMsMy41LDguNiw4LjcsOC42aDI4LjZjNS4yLDAsOC43LTMuMiw4LjctOC42QzEyNy4zLDk2LjcsMTI1LjYsODUuMiwxMTYsODUuMnonLz48cGF0aCBjbGFzcz0nc3QwJyBkPSdNNTcuNCw4NS4yYy0wLjEsMC0wLjIsMC0wLjQsMC4xYy01LjcsNi4zLTE1LjQsNi43LTIxLjcsMWMtMC4zLTAuMy0wLjctMC42LTEtMWMtMC4xLTAuMS0wLjItMC4xLTAuNC0wLjEgYy05LjYsMC0xMS4zLDExLjUtMTEuMywxOC45YzAsNS4zLDMuNSw4LjYsOC43LDguNkg2MGM1LjIsMCw4LjctMy4yLDguNy04LjZDNjguNyw5Ni43LDY2LjksODUuMiw1Ny40LDg1LjJ6Jy8+PC9zdmc+", - "providedOnSchulstrukturknoten": 0 + "providedOnSchulstrukturknoten": 0, + "keycloakGroup": "Psychosoziales Beratungsangebot-service", + "keycloakRole": "Psychosoziales Beratungsangebot-user" } ] } diff --git a/config/dev-realm-spsh.json b/config/dev-realm-spsh.json index 884177d03..d9b8fc8d5 100644 --- a/config/dev-realm-spsh.json +++ b/config/dev-realm-spsh.json @@ -74,7 +74,8 @@ "composites": { "client": { "realm-management": [ - "manage-users" + "manage-users", + "manage-realm" ] } }, diff --git a/seeding/dev/01/03_service-provider.json b/seeding/dev/01/03_service-provider.json index 8253a9bbd..fb6cf3474 100644 --- a/seeding/dev/01/03_service-provider.json +++ b/seeding/dev/01/03_service-provider.json @@ -9,7 +9,9 @@ "kategorie": "EMAIL", "logoMimeType": "image/svg+xml", "logoBase64": "PHN2ZyBpZD0nRWJlbmVfMScgZGF0YS1uYW1lPSdFYmVuZSAxJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAzMDAuMyAyMjUuMic+PGRlZnM+PHN0eWxlPi5jbHMtMXtmaWxsOiMwMDMwNjQ7fTwvc3R5bGU+PC9kZWZzPjx0aXRsZT5lbWFpbC1ibGF1PC90aXRsZT48ZyBpZD0nRWJlbmVfMicgZGF0YS1uYW1lPSdFYmVuZSAyJz48ZyBpZD0nXzE2MDdfSWNvbnMnIGRhdGEtbmFtZT0nIDE2MDcgSWNvbnMnPjxwYXRoIGNsYXNzPSdjbHMtMScgZD0nTTI4MS4zLDU2LjJoMFYyNDMuOEgxOC43VjU2LjJabTAtMTguOEgxOC43QTE4Ljc4LDE4Ljc4LDAsMCwwLS4xLDU2LjJWMjQzLjhhMTguNzgsMTguNzgsMCwwLDAsMTguOCwxOC44SDI4MS40YTE4Ljc4LDE4Ljc4LDAsMCwwLDE4LjgtMTguOFY1Ni4yQTE4LjkzLDE4LjkzLDAsMCwwLDI4MS4zLDM3LjRaJyB0cmFuc2Zvcm09J3RyYW5zbGF0ZSgwLjEgLTM3LjQpJy8+PHBhdGggY2xhc3M9J2Nscy0xJyBkPSdNMTA5LjMsMTgzLjIsNTMsMjI1LjFhMTEuMzIsMTEuMzIsMCwwLDEtNi4yLDEuOSwxMC43NSwxMC43NSwwLDAsMS05LjktMTEuNSwxMC40LDEwLjQsMCwwLDEsMy43LTcuM2w1Ni4zLTQwLjlhMTAuNzMsMTAuNzMsMCwwLDEsMTUuMS45Yy4yLjIuMy40LjUuNmExMC40MiwxMC40MiwwLDAsMS0yLjQsMTQuNlonIHRyYW5zZm9ybT0ndHJhbnNsYXRlKDAuMSAtMzcuNCknLz48cGF0aCBjbGFzcz0nY2xzLTEnIGQ9J00yNjIuNiwyMjEuOWExMC42MiwxMC42MiwwLDAsMS0xNC42LDIuNGwtNTYuMy00MS4xYTEwLjUyLDEwLjUyLDAsMCwxLDEyLjQtMTdsNTYuMyw0MC45YTEwLjY2LDEwLjY2LDAsMCwxLDIuNCwxNC44WicgdHJhbnNmb3JtPSd0cmFuc2xhdGUoMC4xIC0zNy40KScvPjxwYXRoIGNsYXNzPSdjbHMtMScgZD0nTTE1Ni4yLDE2OC44YTExLjE5LDExLjE5LDAsMCwxLTEyLjQsMEw0MC42LDkzLjdBMTEuMjYsMTEuMjYsMCwxLDEsNTMsNzQuOWgwbDk3LDcxLjMsOTctNzEuM2ExMC41OCwxMC41OCwwLDAsMSwxNC41LDQuMiwxMC43LDEwLjcsMCwwLDEtMi4yLDEzLjFaJyB0cmFuc2Zvcm09J3RyYW5zbGF0ZSgwLjEgLTM3LjQpJy8+PC9nPjwvZz48L3N2Zz4=", - "providedOnSchulstrukturknoten": 0 + "providedOnSchulstrukturknoten": 0, + "keycloakGroup": "E-Mail-service", + "keycloakRole": "E-Mail-user" }, { "id": 1, @@ -19,7 +21,9 @@ "kategorie": "EMAIL", "logoMimeType": "image/svg+xml", "logoBase64": "PHN2ZyBpZD0nRWJlbmVfMScgZGF0YS1uYW1lPSdFYmVuZSAxJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAyNTguNSAyOTguNzcnPjxkZWZzPjxzdHlsZT4uY2xzLTF7ZmlsbDojMDAzMDY0O308L3N0eWxlPjwvZGVmcz48dGl0bGU+a2FsZW5kYXItYmxhdTwvdGl0bGU+PHBvbHlnb24gY2xhc3M9J2Nscy0xJyBwb2ludHM9JzE4NC42IDI0My40NyAyMDMuMSAyNDMuNDcgMjAzLjEgMTE0LjE3IDE2Ni4yIDExNC4xNyAxNjYuMiAxMzIuNjcgMTg0LjYgMTMyLjY3IDE4NC42IDI0My40NycvPjxwb2x5Z29uIGNsYXNzPSdjbHMtMScgcG9pbnRzPScxNDcuNyAxMTQuMTcgNTUuNCAxMTQuMTcgNTUuNCAxMzIuNjcgMTI5LjIgMTMyLjY3IDEyOS4yIDE2OS41NyA1NS40IDE2OS41NyA1NS40IDE4OC4wNyAxMjkuMiAxODguMDcgMTI5LjIgMjI0Ljk3IDU1LjQgMjI0Ljk3IDU1LjQgMjQzLjQ3IDE0Ny43IDI0My40NyAxNDcuNyAxMTQuMTcnLz48cGF0aCBjbGFzcz0nY2xzLTEnIGQ9J00yNzkuMywyNjIuNSwyNzkuMSw0OUExNi4xOCwxNi4xOCwwLDAsMCwyNjMsMzIuOEgyMzAuN1Y5LjhhOC4xNiw4LjE2LDAsMCwwLTE2LjItMiw2LjcsNi43LDAsMCwwLDAsMlYzMi45SDg1LjNWOS44QTguNjEsOC42MSwwLDAsMCw3Ny4yLjdhOC43OCw4Ljc4LDAsMCwwLTguMSw5LjJWMzNIMzYuOUExNi4wOSwxNi4wOSwwLDAsMCwyMC44LDQ5LjFoMFYyNjIuNkExOC4zNSwxOC4zNSwwLDAsMCwyNy43LDI3N3Y0LjFBMTguNDQsMTguNDQsMCwwLDAsNDYsMjk5LjRIMjUzLjlhMTguNDQsMTguNDQsMCwwLDAsMTguMy0xOC4zVjI3N0ExOS4wNSwxOS4wNSwwLDAsMCwyNzkuMywyNjIuNVpNMjE0LjUsNDMuMnYxNGE4LjEsOC4xLDAsMSwwLDE2LjIsMGgwdi0xNGExNi4xMSwxNi4xMSwwLDEsMS0yMiw1LjlBMTUsMTUsMCwwLDEsMjE0LjUsNDMuMlptLTE0NS4zLDB2MTRhOC4xMiw4LjEyLDAsMSwwLDE2LjIsMXYtMTVhMTYuMTcsMTYuMTcsMCwxLDEtMjIuMSw1LjlBMTUuMjEsMTUuMjEsMCwwLDEsNjkuMiw0My4yWk0zOS40LDk2LjRIMjYwLjhWMjYyLjZIMzkuNFpNMjUzLjksMjg3LjlINDYuMmMtNy45LDAtMTQuOC0zLjctMTcuMy0xMC4yQTE5LDE5LDAsMCwwLDM5LjUsMjgxSDI2MC45YTE3LjYyLDE3LjYyLDAsMCwwLDEwLjQtMy4zQzI2OC42LDI4NC4yLDI2MS44LDI4Ny45LDI1My45LDI4Ny45WicgdHJhbnNmb3JtPSd0cmFuc2xhdGUoLTIwLjggLTAuNjMpJy8+PC9zdmc+", - "providedOnSchulstrukturknoten": 0 + "providedOnSchulstrukturknoten": 0, + "keycloakGroup": "Kalender-service", + "keycloakRole": "Kalender-user" }, { "id": 2, @@ -29,7 +33,9 @@ "kategorie": "EMAIL", "logoMimeType": "image/svg+xml", "logoBase64": "PHN2ZyBpZD0nRWJlbmVfMScgZGF0YS1uYW1lPSdFYmVuZSAxJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAxNiAxNic+PGRlZnM+PHN0eWxlPi5jbHMtMXtmaWxsOiMwMDMwNjQ7fTwvc3R5bGU+PC9kZWZzPjx0aXRsZT5BZHJlc3NidWNoPC90aXRsZT48ZyBpZD0nRWJlbmVfMicgZGF0YS1uYW1lPSdFYmVuZSAyJz48ZyBpZD0nXzE2MDdfSWNvbnMnIGRhdGEtbmFtZT0nIDE2MDcgSWNvbnMnPjxwYXRoIGNsYXNzPSdjbHMtMScgZD0nTTE0LjUsOEgxNWExLDEsMCwwLDAsMS0xVjVIMTQuNVonLz48cGF0aCBjbGFzcz0nY2xzLTEnIGQ9J00xNC41LDFWNEgxNWExLDEsMCwwLDAsMS0xVjFaJy8+PHBhdGggY2xhc3M9J2Nscy0xJyBkPSdNMTQsOVYwSDFBMSwxLDAsMCwwLDAsMVYxNWExLDEsMCwwLDAsMSwxSDE0Wk04LDRBMiwyLDAsMSwxLDYsNiwyLDIsMCwwLDEsOCw0Wk0zLDE1SDJWMUgzWm04LTNINVYxMUEyLDIsMCwwLDEsNyw5SDlhMiwyLDAsMCwxLDIsMlonLz48cGF0aCBjbGFzcz0nY2xzLTEnIGQ9J00xNC41LDEySDE1YTEsMSwwLDAsMCwxLTFWOUgxNC41WicvPjwvZz48L2c+PC9zdmc+", - "providedOnSchulstrukturknoten": 0 + "providedOnSchulstrukturknoten": 0, + "keycloakGroup": "Adressbuch-service", + "keycloakRole": "Adressbuch-user" }, { "id": 3, @@ -39,7 +45,9 @@ "kategorie": "UNTERRICHT", "logoMimeType": "image/svg+xml", "logoBase64": "PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnIHN0YW5kYWxvbmU9J25vJz8+PHN2ZzpzdmcgeG1sbnM6ZGM9J2h0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvJyB4bWxuczpjYz0naHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjJyB4bWxuczpyZGY9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMnIHhtbG5zOnN2Zz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIGhlaWdodD0nMTU4LjMnIHdpZHRoPScxNTguMycgeG1sOnNwYWNlPSdwcmVzZXJ2ZScgdmlld0JveD0nMCAwIDE1OC4zIDE1OC4zMDAwMScgeT0nMHB4JyB4PScwcHgnIGlkPSdMYXllcl8xJyB2ZXJzaW9uPScxLjEnPjxzdmc6bWV0YWRhdGEgaWQ9J21ldGFkYXRhODcxJz48cmRmOlJERj48Y2M6V29yayByZGY6YWJvdXQ9Jyc+PGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+PGRjOnR5cGUgcmRmOnJlc291cmNlPSdodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvU3RpbGxJbWFnZScgLz48ZGM6dGl0bGU+PC9kYzp0aXRsZT48L2NjOldvcms+PC9yZGY6UkRGPjwvc3ZnOm1ldGFkYXRhPjxzdmc6ZGVmcyBpZD0nZGVmczg2OSc+PC9zdmc6ZGVmcz48c2NyaXB0PihmdW5jdGlvbiAoZSkgeyBpZiAobmF2aWdhdG9yKSB7IHZhciBsYW5ndWFnZSA9IGUubGFuZ3VhZ2UgKyAnLCcgKyBlLmxhbmd1YWdlLnNwbGl0KCctJylbMF0gKyAmcXVvdDssZW4tVVMsZW4mcXVvdDs7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuYXZpZ2F0b3IsICZxdW90O2xhbmd1YWdlJnF1b3Q7LCB7JnF1b3Q7dmFsdWUmcXVvdDs6IGxhbmd1YWdlfSk7IH0KfSkoeyZxdW90O2xhbmd1YWdlJnF1b3Q7OiZxdW90O2RlLURFJnF1b3Q7fSk8L3NjcmlwdD48c3ZnOnN0eWxlIGlkPSdzdHlsZTgzNCcgdHlwZT0ndGV4dC9jc3MnPiAuc3Qwe2ZpbGw6I0Y0NzkyMDt9IC5zdDF7ZmlsbDojNjAzMzUyO30gLnN0MntmaWxsOiNGRkZGRkY7fQo8L3N2ZzpzdHlsZT48c3ZnOnBhdGggY2xhc3M9J3N0MCcgZD0nTSA0My42LDAgQyAxOS42LDAgMCwxOS42IDAsNDMuNiB2IDcxLjEgYyAwLDI0IDE5LjYsNDMuNiA0My42LDQzLjYgaCA3MS4xIGMgMjQsMCA0My42LC0xOS42IDQzLjYsLTQzLjYgViAwIFonIGlkPSdwYXRoODM2JyBzdHlsZT0nZmlsbDojZjQ3OTIwJyAvPjxzdmc6cGF0aCBjbGFzcz0nc3QyJyBkPSdtIDExMi40LDExOS4zIGMgLTkuMywwLjEgLTE2LjMsLTUuNCAtMTkuNywtMTAuOSAtMC45LC0xLjQgLTEsLTMuMiAwLjUsLTQuNCAxLjMsLTEgMy4xLC0wLjkgNC4zLDAuNyAzLjEsNC4yIDguNCw4LjQgMTQuOSw4LjQgMTAuNSwtMC4xIDE0LjUsLTcuNSAxNC40LC0xNC4yIEMgMTI2LjcsODYuNyAxMTIuMSw4Ni42IDExMi4xLDg2LjYgOTkuNyw4NiA5Mi40LDc5LjMgOTIuMyw2OS4xIGMgLTAuMSwtOC42IDYuNSwtMTcuNyAxOS41LC0xNy44IDUuNywwIDExLjIsMi4zIDE0LjMsNS40IDEuMywxLjIgMS4zLDMuMiAwLDQuNCAtMS4yLDEuMSAtMywxLjIgLTQuOCwtMC4yIC0yLjYsLTIuMSAtNS42LC0zLjUgLTkuNSwtMy41IC0xMC42LDAuMSAtMTMuMiw3LjkgLTEzLjIsMTEuNyAwLjEsMTAuNiAxMy4yLDExLjUgMTMuMiwxMS41IDExLjMsMC42IDIxLjQsNS41IDIxLjUsMTguMyAwLjIsMTEuNCAtNy43LDIwLjMgLTIwLjksMjAuNCB6JyBpZD0ncGF0aDg0NCcgc3R5bGU9J2ZpbGw6I2ZmZmZmZicgLz48c3ZnOnBhdGggY2xhc3M9J3N0MicgZD0nbSAzOC41LDM2LjEgYyAwLC0yLjUgLTIsLTQuNCAtNC41LC00LjQgLTIuNSwwIC00LjQsMiAtNC40LDQuNSAwLDIuNSAyLDQuNCA0LjUsNC40IDIuNSwwIDQuNCwtMiA0LjQsLTQuNSB6JyBpZD0ncGF0aDg0Nicgc3R5bGU9J2ZpbGw6I2ZmZmZmZicgLz48c3ZnOnBhdGggY2xhc3M9J3N0MicgZD0nbSAzNCwxMTkuMiBjIC0xLjgsMCAtMy4yLC0xLjMgLTMuMiwtMi45IFYgNTQuMSBjIDAsLTEuNiAxLjUsLTIuOSAzLjIsLTIuOSAxLjcsMCAzLjIsMS4zIDMuMiwyLjkgdiA2Mi4xIGMgMC4xLDEuNyAtMS40LDMgLTMuMiwzIHonIGlkPSdwYXRoODQ4JyBzdHlsZT0nZmlsbDojZmZmZmZmJyAvPjxzdmc6cGF0aCBjbGFzcz0nc3QyJyBkPSdtIDg0LjEsMTE0LjEgYyAtMC40LC0xLjcgLTIuMiwtMi43IC0zLjksLTIuMyAtNi44LDEuOCAtMTIsMS40IC0xNS40LC0xIC0yLjIsLTEuNiAtNC45LC01IC01LjMsLTEyLjMgdiAtMC4yIGMgLTAuMSwtMS40IC0wLjEsLTIwLjYgMCwtNDAuNyBoIDIxLjIgYyAxLjgsMCAzLjIsLTEuNCAzLjIsLTMuMiAwLC0xLjggLTEuNCwtMy4yIC0zLjIsLTMuMiBIIDU5LjQgYyAwLC02LjIgMCwtMTIuMyAwLC0xNy43IDAsLTEuOCAtMS40LC0zLjIgLTMuMiwtMy4yIHYgMCBjIC0xLjgsMCAtMy4yLDEuNCAtMy4yLDMuMiAwLDYuNCAtMC4yLDYyLjYgMCw2NS4yIHYgMC4yIGMgMC41LDkuOCA0LjYsMTQuNyA3LjksMTcuMSAzLjEsMi4zIDcsMy40IDExLjUsMy40IDIuOCwwIDYsLTAuNCA5LjQsLTEuMyAxLjcsLTAuNiAyLjcsLTIuMyAyLjMsLTQgeicgaWQ9J3BhdGg4NTAnIHN0eWxlPSdmaWxsOiNmZmZmZmYnIC8+PC9zdmc6c3ZnPg==", - "providedOnSchulstrukturknoten": 0 + "providedOnSchulstrukturknoten": 0, + "keycloakGroup": "itslearning-service", + "keycloakRole": "itslearning-user" }, { "id": 4, @@ -49,7 +57,9 @@ "kategorie": "UNTERRICHT", "logoMimeType": "image/svg+xml", "logoBase64": "PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz48c3ZnIGlkPSdzdmc5NDQnIGNsaXAtcnVsZT0nZXZlbm9kZCcgZmlsbC1ydWxlPSdldmVub2RkJyBzdHJva2UtbGluZWNhcD0ncm91bmQnIHN0cm9rZS1saW5lam9pbj0ncm91bmQnIHN0cm9rZS1taXRlcmxpbWl0PScxLjUnIHZlcnNpb249JzEuMScgdmlld0JveD0nMCAwIDMwMCAzMDAnIHhtbDpzcGFjZT0ncHJlc2VydmUnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgeG1sbnM6Y2M9J2h0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL25zIycgeG1sbnM6ZGM9J2h0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvJyB4bWxuczpyZGY9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMnPjxtZXRhZGF0YSBpZD0nbWV0YWRhdGE5NDgnPjxyZGY6UkRGPjxjYzpXb3JrIHJkZjphYm91dD0nJz48ZGM6Zm9ybWF0PmltYWdlL3N2Zyt4bWw8L2RjOmZvcm1hdD48ZGM6dHlwZSByZGY6cmVzb3VyY2U9J2h0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlJy8+PGRjOnRpdGxlLz48L2NjOldvcms+PC9yZGY6UkRGPjwvbWV0YWRhdGE+PHJlY3QgaWQ9J3JlY3Q4MzQnIHg9Jy4xODEnIHk9Jy0uMzYzJyB3aWR0aD0nMjk5LjY0JyBoZWlnaHQ9JzMwMC42NycgZmlsbC1vcGFjaXR5PScwJy8+PHBhdGggaWQ9J3BhdGg4NDAnIGQ9J20xMDcuMzEgODEuODAyYy0wLTUuMzA2LTQuMzA4LTkuNjEzLTkuNjEzLTkuNjEzaC00OC4yNDdjLTUuMzA2LTAtOS42MTMgNC4zMDctOS42MTMgOS42MTN2MTkuMjI2Yy0wIDUuMzA1IDQuMzA3IDkuNjEzIDkuNjEzIDkuNjEzaDQ4LjI0N2M1LjMwNS0wIDkuNjEzLTQuMzA4IDkuNjEzLTkuNjEzdi0xOS4yMjZ6JyBmaWxsPSd1cmwoI19MaW5lYXIyKScgc3Ryb2tlPSd1cmwoI19MaW5lYXIzKScgc3Ryb2tlLXdpZHRoPSc0LjE3cHgnLz48cGF0aCBpZD0ncGF0aDg0MicgZD0nbTEwNy4zMSAxNDEuOGMtMC01LjMwNi00LjMwOC05LjYxMy05LjYxMy05LjYxM2gtNDguMjQ3Yy01LjMwNi0wLTkuNjEzIDQuMzA3LTkuNjEzIDkuNjEzdjE5LjIyNmMtMCA1LjMwNSA0LjMwNyA5LjYxMyA5LjYxMyA5LjYxM2g0OC4yNDdjNS4zMDUtMCA5LjYxMy00LjMwOCA5LjYxMy05LjYxM3YtMTkuMjI2eicgZmlsbD0nI2ZmZicgc3Ryb2tlPSd1cmwoI19MaW5lYXI0KScgc3Ryb2tlLXdpZHRoPSc0LjE3cHgnLz48cGF0aCBpZD0ncGF0aDg0NCcgZD0nbTEwNy4zMSAyMDEuOGMtMC01LjMwNi00LjMwOC05LjYxMy05LjYxMy05LjYxM2gtNDguMjQ3Yy01LjMwNi0wLTkuNjEzIDQuMzA3LTkuNjEzIDkuNjEzdjE5LjIyNmMtMCA1LjMwNSA0LjMwNyA5LjYxMyA5LjYxMyA5LjYxM2g0OC4yNDdjNS4zMDUtMCA5LjYxMy00LjMwOCA5LjYxMy05LjYxM3YtMTkuMjI2eicgZmlsbD0nI2Q0MDA0Yicgc3Ryb2tlPSd1cmwoI19MaW5lYXI1KScgc3Ryb2tlLXdpZHRoPSc0LjE3cHgnLz48cGF0aCBpZD0ncGF0aDg0NicgZD0nbTE1OS4yMiAxOTIuMTloLTMzLjEzYy0yLjM4Ny0wLTQuNjc2IDAuOTQ4LTYuMzY0IDIuNjM2cy0yLjYzNiAzLjk3Ny0yLjYzNiA2LjM2NHYyMC40NDljLTAgMi4zODggMC45NDggNC42NzcgMi42MzcgNi4zNjUgMS42ODggMS42ODggMy45NzggMi42MzYgNi4zNjUgMi42MzUgMTUuNzA5LTRlLTMgNDYuNDcxLTAuMDEzIDQ2LjQ3MS0wLjAxM2wtMTMuMzQzLTM4LjQzNnonIGZpbGw9J3VybCgjX0xpbmVhcjYpJyBzdHJva2U9J3VybCgjX0xpbmVhcjcpJyBzdHJva2Utd2lkdGg9JzQuMTdweCcvPjxwYXRoIGlkPSdwYXRoODQ4JyBkPSdtMTY0LjQgMTQ1Ljk2IDEzLjgxMyAyNC41MjZoMWUtM2MxLjY3IDAuMDQgMy4yODUtMC41OTYgNC40OC0xLjc2MyAxLjE5Ni0xLjE2NyAxLjg3LTIuNzY3IDEuODctNC40Mzh2LTIzLjFjLTAtMi4zODctMC45NDktNC42NzYtMi42MzYtNi4zNjQtMS42ODgtMS42ODgtMy45NzctMi42MzYtNi4zNjQtMi42MzZoLTQ5LjQ3M2MtMi4zODctMC00LjY3NiAwLjk0OC02LjM2NCAyLjYzNnMtMi42MzYgMy45NzctMi42MzYgNi4zNjR2MjAuNDQ3Yy0wIDIuMzg4IDAuOTQ5IDQuNjc4IDIuNjM4IDYuMzY2czMuOTc5IDIuNjM1IDYuMzY3IDIuNjM0YzguMzY1LTVlLTMgMTkuNTM3LTAuMDExIDE5LjUzNy0wLjAxMWwyLjY1My0yMS4xODInIGZpbGw9JyNmZmYnIHN0cm9rZT0ndXJsKCNfTGluZWFyOCknIHN0cm9rZS13aWR0aD0nNC4xN3B4Jy8+PHBhdGggaWQ9J3BhdGg4NTAnIGQ9J20xODQuNTYgODEuODAyYy0wLTUuMzA2LTQuMzA4LTkuNjEzLTkuNjEzLTkuNjEzaC00OC4yNDdjLTUuMzA2LTAtOS42MTMgNC4zMDctOS42MTMgOS42MTN2MTkuMjI2Yy0wIDUuMzA1IDQuMzA3IDkuNjEzIDkuNjEzIDkuNjEzaDQ4LjI0N2M1LjMwNS0wIDkuNjEzLTQuMzA4IDkuNjEzLTkuNjEzdi0xOS4yMjZ6JyBmaWxsPSd1cmwoI19MaW5lYXI5KScgc3Ryb2tlPSd1cmwoI19MaW5lYXIxMCknIHN0cm9rZS13aWR0aD0nNC4xN3B4Jy8+PHBhdGggaWQ9J3BhdGg4NTInIGQ9J20yNjIuNTYgMTQxLjhjLTAtNS4zMDYtNC4zMDgtOS42MTMtOS42MTMtOS42MTNoLTQ4LjI0N2MtNS4zMDYtMC05LjYxMyA0LjMwNy05LjYxMyA5LjYxM3YxOS4yMjZjLTAgNS4zMDUgNC4zMDcgOS42MTMgOS42MTMgOS42MTNoNDguMjQ3YzUuMzA1LTAgOS42MTMtNC4zMDggOS42MTMtOS42MTN2LTE5LjIyNnonIGZpbGw9JyNmZmYnIHN0cm9rZT0ndXJsKCNfTGluZWFyMTEpJyBzdHJva2Utd2lkdGg9JzQuMTdweCcvPjxwYXRoIGlkPSdwYXRoODU0JyBkPSdtMjYyLjU2IDgxLjgwMmMtMC01LjMwNi00LjMwOC05LjYxMy05LjYxMy05LjYxM2gtNDguMjQ3Yy01LjMwNi0wLTkuNjEzIDQuMzA3LTkuNjEzIDkuNjEzdjE5LjIyNmMtMCA1LjMwNSA0LjMwNyA5LjYxMyA5LjYxMyA5LjYxM2g0OC4yNDdjNS4zMDUtMCA5LjYxMy00LjMwOCA5LjYxMy05LjYxM3YtMTkuMjI2eicgZmlsbD0ndXJsKCNfTGluZWFyMTIpJyBzdHJva2U9J3VybCgjX0xpbmVhcjEyKScgc3Ryb2tlLW1pdGVybGltaXQ9JzEnIHN0cm9rZS13aWR0aD0nNC4xN3B4Jy8+PHBhdGggaWQ9J3BhdGg4NTYnIGQ9J20xNTMuNTggMjQyLjI0IDE2LjA5OSAzOC4zOTRzMi41MTEgNS4xODIgNC4xMjYgOC4xMjcnIGZpbGwtb3BhY2l0eT0nMCcgc3Ryb2tlPSd1cmwoI19MaW5lYXIxNCknIHN0cm9rZS1taXRlcmxpbWl0PScyJyBzdHJva2Utd2lkdGg9JzguMzNweCcvPjxwYXRoIGlkPSdwYXRoODU4JyBkPSdtMjg3Ljg4IDI1MC4yNS0yMi4xNTMtNTIuNzc0cy0xMC4zOTMtMTcuMDg4LTIyLjM4NC0wLjI1M2MtMCAwLTE0LjU0LTE5LjAxMS0yNy42NjctMC4yMDUtMCAwLTE2LjMzNS0xNC43Ni0yNS44ODIgMi4zOTlsLTE5LjEyMS00NS42MDJzLTEuNTI1LTUuMDUzLTYuNzc2LTYuNTQ4Yy04LjM1NC0yLjM3Ny0yMS41MzkgMC4zMjYtMTguMTgxIDE3LjAxM2w0NC4yNzQgMTA1LjU4LTEyLjg0MS0yMy41MDdzLTcuMDUzLTEzLjE3MS0yMy41Ny00LjExMycgZmlsbC1vcGFjaXR5PScwJyBzdHJva2U9J3VybCgjX0xpbmVhcjE0KScgc3Ryb2tlLW1pdGVybGltaXQ9JzInIHN0cm9rZS13aWR0aD0nOC4zM3B4Jy8+PGRlZnMgaWQ9J2RlZnM5NDInPjxsaW5lYXJHcmFkaWVudCBpZD0nX0xpbmVhcjInIHgyPScxJyBncmFkaWVudFRyYW5zZm9ybT0nbWF0cml4KDY3LjQ3MyAwIDAgMzguNDUyIDM5Ljg0IDcyLjE4OSknIGdyYWRpZW50VW5pdHM9J3VzZXJTcGFjZU9uVXNlJz48c3RvcCBpZD0nc3RvcDg2Nycgc3RvcC1jb2xvcj0nIzAwMzA2NCcgb2Zmc2V0PScwJy8+PHN0b3AgaWQ9J3N0b3A4NjknIHN0b3AtY29sb3I9JyMwMDMwNjQnIG9mZnNldD0nMScvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPSdfTGluZWFyMycgeDI9JzEnIGdyYWRpZW50VHJhbnNmb3JtPSdtYXRyaXgoNjcuNDczIDAgMCAzOC40NTIgMzkuODQgOTEuNDE1KScgZ3JhZGllbnRVbml0cz0ndXNlclNwYWNlT25Vc2UnPjxzdG9wIGlkPSdzdG9wODcyJyBzdG9wLWNvbG9yPScjMDAzMDY0JyBvZmZzZXQ9JzAnLz48c3RvcCBpZD0nc3RvcDg3NCcgc3RvcC1jb2xvcj0nIzAwMzA2NCcgb2Zmc2V0PScxJy8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9J19MaW5lYXI0JyB4Mj0nMScgZ3JhZGllbnRUcmFuc2Zvcm09J21hdHJpeCg2Ny40NzMgMCAwIDM4LjQ1MiAzOS44NCAxNTEuNDIpJyBncmFkaWVudFVuaXRzPSd1c2VyU3BhY2VPblVzZSc+PHN0b3AgaWQ9J3N0b3A4NzcnIHN0b3AtY29sb3I9JyMwMDMwNjQnIG9mZnNldD0nMCcvPjxzdG9wIGlkPSdzdG9wODc5JyBzdG9wLWNvbG9yPScjMDAzMDY0JyBvZmZzZXQ9JzEnLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD0nX0xpbmVhcjUnIHgyPScxJyBncmFkaWVudFRyYW5zZm9ybT0nbWF0cml4KDY3LjQ3MyAwIDAgMzguNDUyIDM5Ljg0IDIxMS40MiknIGdyYWRpZW50VW5pdHM9J3VzZXJTcGFjZU9uVXNlJz48c3RvcCBpZD0nc3RvcDg4Micgc3RvcC1jb2xvcj0nIzAwMzA2NCcgb2Zmc2V0PScwJy8+PHN0b3AgaWQ9J3N0b3A4ODQnIHN0b3AtY29sb3I9JyMwMDMwNjQnIG9mZnNldD0nMScvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPSdfTGluZWFyNicgeDI9JzEnIGdyYWRpZW50VHJhbnNmb3JtPSdtYXRyaXgoNjcuNDczIDAgMCAzOC40NTIgNDcuMzQgNzIuMTg5KScgZ3JhZGllbnRVbml0cz0ndXNlclNwYWNlT25Vc2UnPjxzdG9wIGlkPSdzdG9wODg3JyBzdG9wLWNvbG9yPScjZDQwMDRiJyBvZmZzZXQ9JzAnLz48c3RvcCBpZD0nc3RvcDg4OScgc3RvcC1jb2xvcj0nI2Q0MDA0Yicgb2Zmc2V0PScxJy8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9J19MaW5lYXI3JyB4Mj0nMScgZ3JhZGllbnRUcmFuc2Zvcm09J21hdHJpeCg1NS40NzMgMCAwIDM4LjQ1MiAxMTcuMDkgMjExLjQyKScgZ3JhZGllbnRVbml0cz0ndXNlclNwYWNlT25Vc2UnPjxzdG9wIGlkPSdzdG9wODkyJyBzdG9wLWNvbG9yPScjMDAzMDY0JyBvZmZzZXQ9JzAnLz48c3RvcCBpZD0nc3RvcDg5NCcgc3RvcC1jb2xvcj0nIzAwMzA2NCcgb2Zmc2V0PScxJy8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9J19MaW5lYXI4JyB4Mj0nMScgZ3JhZGllbnRUcmFuc2Zvcm09J21hdHJpeCg2Ny40NzMgMCAwIDM4LjQ1MiAxMTcuMDkgMTUxLjQyKScgZ3JhZGllbnRVbml0cz0ndXNlclNwYWNlT25Vc2UnPjxzdG9wIGlkPSdzdG9wODk3JyBzdG9wLWNvbG9yPScjMDAzMDY0JyBvZmZzZXQ9JzAnLz48c3RvcCBpZD0nc3RvcDg5OScgc3RvcC1jb2xvcj0nIzAwMzA2NCcgb2Zmc2V0PScxJy8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9J19MaW5lYXI5JyB4Mj0nMScgZ3JhZGllbnRUcmFuc2Zvcm09J21hdHJpeCg2Ny40NzMgMCAwIDM4LjQ1MiAxMTcuMDkgNzIuMTg5KScgZ3JhZGllbnRVbml0cz0ndXNlclNwYWNlT25Vc2UnPjxzdG9wIGlkPSdzdG9wOTAyJyBzdG9wLWNvbG9yPScjMDAzMDY0JyBvZmZzZXQ9JzAnLz48c3RvcCBpZD0nc3RvcDkwNCcgc3RvcC1jb2xvcj0nIzAwMzA2NCcgb2Zmc2V0PScxJy8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9J19MaW5lYXIxMCcgeDI9JzEnIGdyYWRpZW50VHJhbnNmb3JtPSdtYXRyaXgoNjcuNDczIDAgMCAzOC40NTIgMTE3LjA5IDkxLjQxNSknIGdyYWRpZW50VW5pdHM9J3VzZXJTcGFjZU9uVXNlJz48c3RvcCBpZD0nc3RvcDkwNycgc3RvcC1jb2xvcj0nIzAwMzA2NCcgb2Zmc2V0PScwJy8+PHN0b3AgaWQ9J3N0b3A5MDknIHN0b3AtY29sb3I9JyMwMDMwNjQnIG9mZnNldD0nMScvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPSdfTGluZWFyMTEnIHgyPScxJyBncmFkaWVudFRyYW5zZm9ybT0nbWF0cml4KDY3LjQ3MyAwIDAgMzguNDUyIDE5NS4wOSAxNTEuNDIpJyBncmFkaWVudFVuaXRzPSd1c2VyU3BhY2VPblVzZSc+PHN0b3AgaWQ9J3N0b3A5MTInIHN0b3AtY29sb3I9JyMwMDMwNjQnIG9mZnNldD0nMCcvPjxzdG9wIGlkPSdzdG9wOTE0JyBzdG9wLWNvbG9yPScjMDAzMDY0JyBvZmZzZXQ9JzEnLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD0nX0xpbmVhcjEyJyB4Mj0nMScgZ3JhZGllbnRUcmFuc2Zvcm09J21hdHJpeCg2Ny40NzMgMCAwIDM4LjQ1MiAxOTUuMDkgOTEuNDE1KScgZ3JhZGllbnRVbml0cz0ndXNlclNwYWNlT25Vc2UnPjxzdG9wIGlkPSdzdG9wOTE3JyBzdG9wLWNvbG9yPScjMDAzMDY0JyBvZmZzZXQ9JzAnLz48c3RvcCBpZD0nc3RvcDkxOScgc3RvcC1jb2xvcj0nIzAwMzA2NCcgb2Zmc2V0PScxJy8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9J19MaW5lYXIxNCcgeDI9JzEnIGdyYWRpZW50VHJhbnNmb3JtPSdtYXRyaXgoMTUwIDAgMCAxNzguNjUgMTQ1LjE4IDIzNS44NCknIGdyYWRpZW50VW5pdHM9J3VzZXJTcGFjZU9uVXNlJz48c3RvcCBpZD0nc3RvcDkyNycgb2Zmc2V0PScwJy8+PHN0b3AgaWQ9J3N0b3A5MjknIG9mZnNldD0nMScvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjwvc3ZnPg==", - "providedOnSchulstrukturknoten": 0 + "providedOnSchulstrukturknoten": 0, + "keycloakGroup": "OP.SH-service", + "keycloakRole": "OP.SH-user" }, { "id": 5, @@ -58,7 +68,9 @@ "kategorie": "VERWALTUNG", "logoMimeType": "image/svg+xml", "logoBase64": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDI3LjkuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IldvcnQtX3gyRl9CaWxkbWFya2VfU2NodWxwb3J0YWxfU0hfUkdCIgoJIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IiB2aWV3Qm94PSIwIDAgMTE5LjA2IDExOS4wNiIKCSBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAxMTkuMDYgMTE5LjA2OyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Cgkuc3Qwe2ZpbGw6I0ZGRkZGRjt9Cgkuc3Qxe2ZpbGw6dXJsKCNTVkdJRF8xXyk7fQo8L3N0eWxlPgo8Zz4KCTxjaXJjbGUgY2xhc3M9InN0MCIgY3g9IjU5LjcxIiBjeT0iNTkuNTMiIHI9IjUzLjc4Ii8+Cgk8bGluZWFyR3JhZGllbnQgaWQ9IlNWR0lEXzFfIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9Ii00NC41NTc2IiB5MT0iNjUuNDk3NCIgeDI9IjkzLjQ5MzIiIHkyPSI2NS40OTc0Ij4KCQk8c3RvcCAgb2Zmc2V0PSIwLjUxMTYiIHN0eWxlPSJzdG9wLWNvbG9yOiMxRUFFOUMiLz4KCQk8c3RvcCAgb2Zmc2V0PSIwLjY1NzciIHN0eWxlPSJzdG9wLWNvbG9yOiMxRUFFOUMiLz4KCQk8c3RvcCAgb2Zmc2V0PSIwLjY2MzkiIHN0eWxlPSJzdG9wLWNvbG9yOiMxRUFFOUMiLz4KCQk8c3RvcCAgb2Zmc2V0PSIxIiBzdHlsZT0ic3RvcC1jb2xvcjojMDAxRTQ5Ii8+CgkJPHN0b3AgIG9mZnNldD0iMSIgc3R5bGU9InN0b3AtY29sb3I6IzAwMUU0OSIvPgoJCTxzdG9wICBvZmZzZXQ9IjEiIHN0eWxlPSJzdG9wLWNvbG9yOiMwMDMwNjQiLz4KCQk8c3RvcCAgb2Zmc2V0PSIxIiBzdHlsZT0ic3RvcC1jb2xvcjojMDAzMDY0Ii8+Cgk8L2xpbmVhckdyYWRpZW50PgoJPHBhdGggY2xhc3M9InN0MSIgZD0iTTU4LjksMTA3LjUxVjYxLjY1bC0xNS4zNC0xMi4zaDMwLjY5Vjg5LjVjMTEuNTItNS42NywxOS40Ny0xNy41NCwxOS40Ny0zMS4yMgoJCWMwLTE5LjE4LTE1LjYtMzQuNzgtMzQuNzgtMzQuNzhzLTM0Ljc4LDE1LjYtMzQuNzgsMzQuNzhjMCwxMy42OSw3Ljg4LDI1LjM3LDE5LjQsMzEuMDUiLz4KPC9nPgo8L3N2Zz4=", - "providedOnSchulstrukturknoten": 0 + "providedOnSchulstrukturknoten": 0, + "keycloakGroup": "Schulportal-Administration-service", + "keycloakRole": "Schulportal-Administration-user" }, { "id": 6, @@ -68,7 +80,9 @@ "kategorie": "VERWALTUNG", "logoMimeType": "image/svg+xml", "logoBase64": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDI0LjAuMSwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkViZW5lXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCAxMDUuMiA5OS4yMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNDQyLjIgOTkuMjE7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KCS5zdDB7ZmlsbDojRDYwRDRDO30KCS5zdDF7ZmlsbDojMDAzMDYzO30KPC9zdHlsZT4KPGc+Cgk8Zz4KCQk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNNzMuNzEsNzAuNzdsLTEuNjMtMTguNDZjOC4yOC0xLjkyLDE0LjQ1LTkuMzMsMTQuNDUtMTguMTljMC0xMC4zMi04LjM3LTE4LjY5LTE4LjY5LTE4LjY5CgkJCWMtMTAuMzIsMC0xOC42OSw4LjM3LTE4LjY5LDE4LjY5YzAsMi44NiwwLjY2LDUuNTUsMS44LDcuOTdsLTgsNi4yN2MxLjA4LDEuMDYsMi4wMywyLjI0LDIuODUsMy41Mmw3LjU2LTUuOTMKCQkJYzMuMzgsNC4xMiw4LjQ4LDYuNzcsMTQuMiw2Ljg1bDEuNjIsMTguMzZjLTMuODEsMS4yOC02LjU3LDQuODgtNi41Nyw5LjEyYzAsNS4zMiw0LjMxLDkuNjMsOS42Myw5LjYzCgkJCWM1LjMyLDAsOS42My00LjMxLDkuNjMtOS42M0M4MS44OCw3NS40NSw3OC4zMyw3MS40Nyw3My43MSw3MC43N3ogTTcyLjI1LDg1LjM3Yy0yLjgxLDAtNS4xLTIuMjktNS4xLTUuMQoJCQljMC0yLjgxLDIuMjktNS4xLDUuMS01LjFjMi44MSwwLDUuMSwyLjI5LDUuMSw1LjFDNzcuMzUsODMuMDgsNzUuMDYsODUuMzcsNzIuMjUsODUuMzd6Ii8+CgkJPHBhdGggY2xhc3M9InN0MSIgZD0iTTYwLjU4LDc0LjE0TDQ0LjksNjguNWMwLjU2LTEuNzEsMC44Ny0zLjUyLDAuODctNS40MmMwLTkuNTgtNy43Ny0xNy4zNS0xNy4zNS0xNy4zNVMxMS4wOCw1My41LDExLjA4LDYzLjA4CgkJCXM3Ljc3LDE3LjM1LDE3LjM1LDE3LjM1YzYuMDYsMCwxMS4zOS0zLjEyLDE0LjQ5LTcuODNsMTYuMjgsNS44NkM1OS40MSw3Ni45Miw1OS44OCw3NS40Niw2MC41OCw3NC4xNHogTTI4LjQzLDcwLjg3CgkJCWMtNC4yOSwwLTcuNzgtMy40OS03Ljc4LTcuNzhjMC00LjI5LDMuNDktNy43OCw3Ljc4LTcuNzhzNy43OCwzLjQ5LDcuNzgsNy43OEMzNi4yMiw2Ny4zNywzMi43Miw3MC44NywyOC40Myw3MC44N3oiLz4KCTwvZz4KPC9nPgo8L3N2Zz4K", - "providedOnSchulstrukturknoten": 0 + "providedOnSchulstrukturknoten": 0, + "keycloakGroup": "School-SH-service", + "keycloakRole": "School-SH-user" }, { "id": 7, @@ -78,7 +92,9 @@ "kategorie": "VERWALTUNG", "logoMimeType": "image/svg+xml", "logoBase64": "PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0ndXRmLTgnPz48IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMjQuMS4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAtLT48c3ZnIHZlcnNpb249JzEuMScgaWQ9J0ViZW5lXzEnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgeG1sbnM6eGxpbms9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsnIHg9JzBweCcgeT0nMHB4JyB2aWV3Qm94PScwIDAgNTM0IDEwOScgc3R5bGU9J2VuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNTM0IDEwOTsnIHhtbDpzcGFjZT0ncHJlc2VydmUnPjxzdHlsZSB0eXBlPSd0ZXh0L2Nzcyc+IC5zdDB7ZmlsbDojRkY2MDMzO30gLnN0MXtmaWxsOiNGRkZGRkY7fSAuc3Qye2VuYWJsZS1iYWNrZ3JvdW5kOm5ldyA7fQo8L3N0eWxlPjxwYXRoIGNsYXNzPSdzdDAnIGQ9J000NzkuNSwxMDloLTQyNUMyNC40LDEwOSwwLDg0LjYsMCw1NC41bDAsMEMwLDI0LjQsMjQuNCwwLDU0LjUsMGg0MjVDNTA5LjYsMCw1MzQsMjQuNCw1MzQsNTQuNWwwLDAgQzUzNCw4NC42LDUwOS42LDEwOSw0NzkuNSwxMDl6Jy8+PGc+PHBhdGggY2xhc3M9J3N0MScgZD0nTTc3LjcsNzEuNGgwLjJsMTEtMzcuOWg1LjRsMTEsMzcuOWgwLjJsMTAuNy0zNy45aDQuN2wtMTMsNDQuMWgtNS4yTDkxLjYsMzkuN2gtMC4yTDgwLjMsNzcuNmgtNS4yTDYyLDMzLjUgaDQuN0w3Ny43LDcxLjR6Jy8+PHBhdGggY2xhc3M9J3N0MScgZD0nTTE0OS43LDYyLjJjMCwwLjMsMCwwLjYsMCwxczAsMC43LTAuMSwxaC0yNC4yYzAsMS40LDAuMywyLjksMC45LDQuMWMwLjUsMS4zLDEuMywyLjQsMi4zLDMuMyBjMSwxLDIuMSwxLjcsMy4zLDIuM2MxLjMsMC41LDIuNywwLjksNC4yLDAuOWMyLjIsMCw0LjEtMC41LDUuOC0xLjZjMS42LTEsMi44LTIuMiwzLjctMy41bDMuMiwyLjVjLTEuNywyLjItMy43LDMuOC01LjgsNC43IGMtMi4xLDEtNC40LDEuNC02LjcsMS40Yy0yLjIsMC00LjItMC4zLTYtMS4xYy0xLjgtMC44LTMuNC0xLjgtNC44LTMuMmMtMS4zLTEuNC0yLjQtMy0zLjEtNC45Yy0wLjgtMS45LTEuMS0zLjktMS4xLTYuMSBzMC4zLTQuMywxLjEtNi4xYzAuOC0xLjksMS43LTMuNSwzLjEtNC45czIuOS0yLjQsNC42LTMuMnMzLjgtMS4xLDUuOC0xLjFjMi4zLDAsNC4zLDAuMyw2LDEuMWMxLjcsMC44LDMuMiwxLjgsNC40LDMuMSBjMS4xLDEuMywyLjEsMi45LDIuNiw0LjZDMTQ5LjQsNTguMywxNDkuNyw2MC4yLDE0OS43LDYyLjJ6IE0xNDUuNCw2MC44Yy0wLjItMi43LTEtNS4xLTIuNi02LjhjLTEuNy0xLjgtNC0yLjctNy0yLjcgYy0xLjQsMC0yLjcsMC4zLTMuOSwwLjhzLTIuMywxLjItMy4yLDIuMWMtMSwwLjktMS43LDEuOS0yLjIsMy4xYy0wLjUsMS4xLTAuOSwyLjQtMSwzLjZoMTkuOVY2MC44eicvPjxwYXRoIGNsYXNzPSdzdDEnIGQ9J00xNjEsNzIuN3Y1aC00LjNWMzAuNmg0LjN2MjNoMC4yYzEuMi0xLjksMi45LTMuMyw0LjktNC4zczQtMS41LDYuMi0xLjVjMi4zLDAsNC40LDAuNCw2LjIsMS4yIGMxLjgsMC44LDMuNCwxLjksNC43LDMuMmMxLjMsMS40LDIuNCwzLDMuMSw0LjlzMS4xLDMuOCwxLjEsNnMtMC4zLDQuMi0xLjEsNmMtMC43LDEuOS0xLjcsMy41LTMuMSw0LjljLTEuMywxLjQtMi45LDIuNC00LjcsMy4yIGMtMS44LDAuOC0zLjksMS4yLTYuMiwxLjJjLTIuMSwwLTQuMi0wLjQtNi4yLTEuNHMtMy43LTIuNC00LjktNC4zTDE2MSw3Mi43TDE2MSw3Mi43eiBNMTgyLjgsNjNjMC0xLjYtMC4zLTMuMS0wLjgtNC42IHMtMS4yLTIuNy0yLjItMy44Yy0xLTEtMi4xLTEuOS0zLjUtMi41cy0zLTEtNC43LTFjLTEuNiwwLTMuMSwwLjMtNC40LDAuOWMtMS40LDAuNi0yLjUsMS40LTMuNiwyLjVjLTEsMS0xLjcsMi4zLTIuNCwzLjggYy0wLjYsMS41LTAuOSwzLTAuOSw0LjZjMCwxLjcsMC4zLDMuMiwwLjksNC42YzAuNSwxLjQsMS4zLDIuNywyLjQsMy43YzEsMSwyLjIsMS44LDMuNiwyLjRzMi45LDAuOSw0LjQsMC45IGMxLjcsMCwzLjMtMC4zLDQuNy0wLjljMS40LTAuNiwyLjUtMS40LDMuNS0yLjVjMS0xLDEuNy0yLjMsMi4yLTMuOEMxODIuNiw2Ni4yLDE4Mi44LDY0LjcsMTgyLjgsNjN6Jy8+PHBhdGggY2xhc3M9J3N0MScgZD0nTTIyOS41LDY4LjRjLTAuOSwyLjEtMi4xLDMuOS0zLjcsNS40Yy0xLjcsMS41LTMuNSwyLjctNS44LDMuNXMtNC44LDEuMi03LjUsMS4yYy0yLjgsMC01LjMtMC40LTcuNi0xLjIgYy0yLjMtMC44LTQuMi0yLTUuNy0zLjVzLTIuOC0zLjMtMy42LTUuNGMtMC44LTIuMS0xLjItNC40LTEuMi03VjM1aDEwLjJ2MjUuNmMwLDEuMSwwLjIsMi4zLDAuNCwzLjNzMC44LDIsMS40LDIuOCBzMS41LDEuNSwyLjQsMS45YzEsMC41LDIuMywwLjcsMy43LDAuN2MxLjUsMCwyLjctMC4zLDMuNy0wLjdjMS0wLjQsMS44LTEuMSwyLjUtMS45YzAuNi0wLjgsMS0xLjcsMS40LTIuOGMwLjMtMSwwLjQtMi4yLDAuNC0zLjMgVjM1aDEwLjJ2MjYuNEMyMzAuOCw2NCwyMzAuNCw2Ni4zLDIyOS41LDY4LjR6Jy8+PHBhdGggY2xhc3M9J3N0MScgZD0nTTI1Ni4yLDc3LjVWNjEuMmMwLTAuOC0wLjEtMS43LTAuMi0yLjRjLTAuMi0wLjgtMC4zLTEuNC0wLjctMmMtMC4zLTAuNi0wLjgtMS0xLjMtMS40IGMtMC42LTAuMy0xLjMtMC41LTIuMi0wLjVjLTAuOSwwLTEuNywwLjItMi4zLDAuNXMtMS4yLDAuOC0xLjcsMS40Yy0wLjQsMC42LTAuOCwxLjMtMSwyLjFjLTAuMywwLjgtMC4zLDEuNi0wLjMsMi40djE2LjFoLTkuOSBWNDcuNWg5LjV2NC4yaDAuMmMwLjMtMC42LDAuOC0xLjMsMS40LTEuOXMxLjItMS4xLDItMS42YzAuOC0wLjQsMS43LTAuOCwyLjUtMWMxLTAuMywxLjktMC40LDMtMC40YzIsMCwzLjcsMC4zLDUuMSwxIHMyLjUsMS43LDMuNCwyLjhjMC45LDEuMSwxLjUsMi40LDEuOCwzLjljMC40LDEuNSwwLjUsMywwLjUsNC40djE4LjVMMjU2LjIsNzcuNUwyNTYuMiw3Ny41eicvPjxwYXRoIGNsYXNzPSdzdDEnIGQ9J00yODMuNiw1NXYxMS40YzAsMS40LDAuMywyLjQsMC44LDMuMXMxLjUsMSwyLjksMWMwLjUsMCwxLDAsMS41LTAuMmMwLjUtMC4xLDEtMC4yLDEuMy0wLjNsMC4yLDcuMiBjLTAuNywwLjMtMS42LDAuNC0yLjUsMC42Yy0xLDAuMi0yLjEsMC4zLTMuMSwwLjNjLTIsMC0zLjctMC4zLTUuMS0wLjhjLTEuMy0wLjUtMi40LTEuMi0zLjItMi4ycy0xLjQtMi0xLjctMy40IGMtMC4zLTEuMy0wLjUtMi43LTAuNS00LjRWNTQuN2gtNC44di03LjRoNC43di03LjloOS43djcuOWg3djcuNGgtN1Y1NUgyODMuNnonLz48cGF0aCBjbGFzcz0nc3QxJyBkPSdNMzA1LjksMzguMWMwLDAuOC0wLjIsMS41LTAuNCwyLjJjLTAuMywwLjctMC43LDEuMi0xLjIsMS43cy0xLDAuOS0xLjgsMS4xYy0wLjcsMC4zLTEuNCwwLjQtMi4yLDAuNCBjLTEuNywwLTMtMC41LTQtMS42cy0xLjctMi40LTEuNy0zLjhjMC0wLjcsMC4yLTEuNCwwLjQtMi4xYzAuMy0wLjcsMC43LTEuMiwxLjItMS43czEuMS0wLjksMS44LTEuMWMwLjctMC4zLDEuNC0wLjQsMi4yLTAuNCBzMS41LDAuMiwyLjIsMC40YzAuNywwLjMsMS4zLDAuNywxLjgsMS4xYzAuNSwwLjUsMC45LDEsMS4yLDEuN0MzMDUuOCwzNi43LDMwNS45LDM3LjMsMzA1LjksMzguMXogTTI5NS40LDc3LjVWNDcuNmg5Ljl2MjkuOCBMMjk1LjQsNzcuNUwyOTUuNCw3Ny41eicvPjxwYXRoIGNsYXNzPSdzdDEnIGQ9J00zMzAuNiw1Ni40Yy0wLjgtMC44LTEuNy0xLjQtMi44LTEuOWMtMS0wLjUtMi4yLTAuOC0zLjQtMC44Yy0xLDAtMS43LDAuMi0yLjUsMC41cy0xLjEsMS0xLjEsMS44IHMwLjQsMS41LDEuMywxLjhjMC45LDAuMywyLjMsMC44LDQuMiwxLjJjMS4xLDAuMywyLjMsMC42LDMuNCwxYzEuMSwwLjQsMi4yLDEsMy4xLDEuN3MxLjcsMS43LDIuMiwyLjZjMC41LDEsMC44LDIuMywwLjgsMy44IGMwLDEuOS0wLjQsMy41LTEuMSw0LjhjLTAuOCwxLjMtMS43LDIuNC0zLDMuMWMtMS4yLDAuOC0yLjYsMS40LTQuMSwxLjdzLTMuMSwwLjUtNC41LDAuNWMtMi40LDAtNC45LTAuNC03LjItMS4xIGMtMi40LTAuOC00LjMtMS45LTUuOC0zLjVsNS41LTUuOGMwLjksMSwxLjksMS43LDMuMiwyLjRjMS4zLDAuNiwyLjYsMSw0LjEsMWMwLjgsMCwxLjYtMC4yLDIuNC0wLjVjMC44LTAuNCwxLjEtMSwxLjEtMiBzLTAuNS0xLjctMS41LTJjLTEtMC40LTIuNC0wLjktNC41LTEuNGMtMS0wLjMtMi4xLTAuNS0zLjEtMWMtMS0wLjQtMi0xLTIuOC0xLjdzLTEuNS0xLjUtMi0yLjVzLTAuOC0yLjItMC44LTMuNiBjMC0xLjgsMC40LTMuMywxLjEtNC42YzAuOC0xLjIsMS43LTIuMywzLTMuMWMxLjItMC44LDIuNS0xLjQsNC0xLjdjMS41LTAuNCwyLjktMC41LDQuNC0wLjVjMi4zLDAsNC40LDAuMyw2LjUsMSBjMi4yLDAuNywzLjksMS43LDUuNCwzLjFMMzMwLjYsNTYuNHonLz48L2c+PGcgY2xhc3M9J3N0Mic+PHBhdGggY2xhc3M9J3N0MScgZD0nTTM2Mi41LDYxLjljLTAuNC0wLjgtMS4xLTEuNS0yLTIuMWMtMC45LTAuNS0xLjktMC44LTMtMC44Yy0wLjUsMC0xLDAuMS0xLjYsMC4ycy0xLDAuMy0xLjQsMC42IGMtMC40LDAuMy0wLjcsMC42LTEsMWMtMC4yLDAuNC0wLjQsMC45LTAuNCwxLjRjMCwxLDAuNCwxLjcsMS4yLDIuMmMwLjgsMC41LDIsMC45LDMuNywxLjNjMi40LDAuNSw0LjIsMS4yLDUuMywyLjIgYzEuMSwwLjksMS43LDIuMiwxLjcsMy44YzAsMS4yLTAuMiwyLjEtMC43LDIuOWMtMC41LDAuOC0xLDEuNS0xLjgsMmMtMC43LDAuNS0xLjUsMC45LTIuNSwxLjFzLTEuOCwwLjMtMi44LDAuMyBjLTEuNSwwLTMtMC4zLTQuNS0xYy0xLjUtMC42LTIuNi0xLjYtMy42LTNsMi40LTEuN2MwLjUsMC45LDEuMywxLjcsMi4zLDIuM2MxLDAuNiwyLjEsMC45LDMuNCwwLjljMC42LDAsMS4yLTAuMSwxLjgtMC4yIGMwLjYtMC4xLDEuMS0wLjMsMS41LTAuNmMwLjQtMC4zLDAuOC0wLjcsMS0xLjFjMC4zLTAuNSwwLjQtMSwwLjQtMS43YzAtMS4xLTAuNS0xLjktMS41LTIuNGMtMS0wLjUtMi41LTEtNC41LTEuNSBjLTAuNi0wLjEtMS4zLTAuMy0xLjktMC41Yy0wLjctMC4yLTEuMy0wLjUtMS45LTFjLTAuNi0wLjQtMS4xLTEtMS40LTEuNmMtMC40LTAuNi0wLjYtMS40LTAuNi0yLjRjMC0xLDAuMi0xLjksMC42LTIuNyBjMC40LTAuNywxLTEuNCwxLjYtMS44YzAuNy0wLjUsMS41LTAuOCwyLjMtMS4xYzAuOS0wLjIsMS44LTAuMywyLjctMC4zYzEuNCwwLDIuOCwwLjMsNC4xLDFjMS4zLDAuNiwyLjMsMS41LDMsMi43TDM2Mi41LDYxLjl6JyAvPjxwYXRoIGNsYXNzPSdzdDEnIGQ9J00zODAuMyw1OS42aC01Ljh2MTEuOWMwLDAuOCwwLjEsMS40LDAuMiwxLjljMC4xLDAuNSwwLjQsMC45LDAuNiwxLjJjMC4zLDAuMywwLjYsMC41LDEsMC42IGMwLjQsMC4xLDAuOCwwLjIsMS4yLDAuMmMwLjQsMCwwLjgtMC4xLDEuMy0wLjJjMC41LTAuMSwwLjktMC4zLDEuMy0wLjVsMC4xLDIuNmMtMC41LDAuMi0xLjEsMC40LTEuNiwwLjUgYy0wLjYsMC4xLTEuMiwwLjItMS45LDAuMmMtMC42LDAtMS4xLTAuMS0xLjctMC4yYy0wLjYtMC4xLTEuMi0wLjQtMS43LTAuOHMtMS0xLTEuMy0xLjdjLTAuMy0wLjctMC41LTEuNi0wLjUtMi43VjU5LjZoLTQuMnYtMi41IGg0LjJ2LTUuOGgzdjUuOGg1LjhWNTkuNnonLz48cGF0aCBjbGFzcz0nc3QxJyBkPSdNMzk3LjcsNjQuM2MwLTEuOC0wLjUtMy4xLTEuNC00Yy0wLjktMC45LTIuMy0xLjMtNC4xLTEuM2MtMS4yLDAtMi40LDAuMi0zLjQsMC43Yy0xLDAuNC0xLjksMS0yLjcsMS43IGwtMS43LTJjMC44LTAuOCwyLTEuNSwzLjMtMi4xYzEuNC0wLjYsMi45LTAuOCw0LjctMC44YzEuMSwwLDIuMSwwLjIsMy4xLDAuNWMxLDAuMywxLjgsMC44LDIuNSwxLjRjMC43LDAuNiwxLjMsMS40LDEuNywyLjMgYzAuNCwwLjksMC42LDIsMC42LDMuM3Y4LjljMCwwLjgsMCwxLjYsMC4xLDIuNGMwLjEsMC44LDAuMSwxLjYsMC4zLDIuMWgtMi43Yy0wLjEtMC41LTAuMi0xLTAuMi0xLjZjLTAuMS0wLjYtMC4xLTEuMS0wLjEtMS43IGgtMC4xYy0wLjksMS40LTIsMi4zLTMuMiwyLjlzLTIuNiwwLjktNC4zLDAuOWMtMC44LDAtMS42LTAuMS0yLjQtMC4zcy0xLjYtMC42LTIuMy0xLjFjLTAuNy0wLjUtMS4zLTEuMS0xLjctMS45IGMtMC41LTAuOC0wLjctMS43LTAuNy0yLjljMC0xLjYsMC40LTIuOCwxLjItMy43czEuOS0xLjYsMy4yLTJjMS4zLTAuNSwyLjktMC43LDQuNi0wLjljMS43LTAuMSwzLjUtMC4yLDUuNC0wLjJWNjQuM3ogTTM5Ni45LDY3LjNjLTEuMiwwLTIuNCwwLjEtMy43LDAuMmMtMS4yLDAuMS0yLjQsMC4zLTMuNCwwLjZjLTEsMC4zLTEuOCwwLjctMi41LDEuM2MtMC42LDAuNi0xLDEuNC0xLDIuM2MwLDAuNywwLjEsMS4zLDAuNCwxLjggczAuNiwwLjksMS4xLDEuMmMwLjUsMC4zLDEsMC41LDEuNSwwLjdjMC42LDAuMSwxLjEsMC4yLDEuNywwLjJjMSwwLDItMC4yLDIuOC0wLjVjMC44LTAuNCwxLjUtMC45LDItMS41YzAuNi0wLjYsMS0xLjMsMS4zLTIuMiBjMC4zLTAuOCwwLjQtMS43LDAuNC0yLjZ2LTEuNUgzOTYuOXonLz48cGF0aCBjbGFzcz0nc3QxJyBkPSdNNDA4LjEsNTkuNWMwLTAuOS0wLjEtMS43LTAuMS0yLjRoMi44YzAuMSwwLjYsMC4xLDEuMiwwLjEsMS44YzAsMC43LDAsMS4yLDAsMS43aDAuMSBjMC42LTEuMiwxLjUtMi4yLDIuNi0yLjljMS4yLTAuNywyLjUtMS4xLDMuOS0xLjFjMC40LDAsMC43LDAsMSwwYzAuMywwLDAuNiwwLjEsMC45LDAuMmwtMC40LDIuOGMtMC4yLTAuMS0wLjUtMC4xLTAuOS0wLjIgcy0wLjgtMC4xLTEuMi0wLjFjLTAuOCwwLTEuNSwwLjEtMi4zLDAuNGMtMC43LDAuMy0xLjQsMC43LTEuOSwxLjRjLTAuNSwwLjYtMSwxLjQtMS4zLDIuNGMtMC4zLDEtMC41LDIuMS0wLjUsMy41djEwLjVoLTNWNjEuNiBDNDA4LjIsNjEsNDA4LjIsNjAuMyw0MDguMSw1OS41eicvPjxwYXRoIGNsYXNzPSdzdDEnIGQ9J000MzIuNSw1OS42aC01Ljh2MTEuOWMwLDAuOCwwLjEsMS40LDAuMiwxLjljMC4xLDAuNSwwLjQsMC45LDAuNiwxLjJjMC4zLDAuMywwLjYsMC41LDEsMC42IGMwLjQsMC4xLDAuOCwwLjIsMS4yLDAuMmMwLjQsMCwwLjgtMC4xLDEuMy0wLjJjMC41LTAuMSwwLjktMC4zLDEuMy0wLjVsMC4xLDIuNmMtMC41LDAuMi0xLjEsMC40LTEuNiwwLjUgYy0wLjYsMC4xLTEuMiwwLjItMS45LDAuMmMtMC42LDAtMS4xLTAuMS0xLjctMC4yYy0wLjYtMC4xLTEuMi0wLjQtMS43LTAuOHMtMS0xLTEuMy0xLjdjLTAuMy0wLjctMC41LTEuNi0wLjUtMi43VjU5LjZoLTQuMnYtMi41IGg0LjJ2LTUuOGgzdjUuOGg1LjhWNTkuNnonLz48cGF0aCBjbGFzcz0nc3QxJyBkPSdNNDU1LjgsNjYuN2MwLDAuMiwwLDAuNCwwLDAuN2MwLDAuMiwwLDAuNSwwLDAuN2gtMTYuOWMwLDEsMC4yLDIsMC42LDIuOWMwLjQsMC45LDAuOSwxLjcsMS42LDIuNCBjMC43LDAuNywxLjUsMS4yLDIuNCwxLjZzMS45LDAuNiwyLjksMC42YzEuNSwwLDIuOS0wLjQsNC0xLjFjMS4xLTAuNywyLTEuNSwyLjYtMi41bDIuMiwxLjdjLTEuMiwxLjUtMi42LDIuNi00LDMuMyBjLTEuNSwwLjctMywxLTQuNywxYy0xLjUsMC0yLjktMC4zLTQuMi0wLjhjLTEuMy0wLjUtMi40LTEuMy0zLjMtMi4yYy0wLjktMS0xLjctMi4xLTIuMi0zLjRjLTAuNS0xLjMtMC44LTIuNy0wLjgtNC4zIHMwLjMtMywwLjgtNC4zczEuMi0yLjQsMi4yLTMuNHMyLTEuNywzLjMtMi4yYzEuMi0wLjUsMi42LTAuOCw0LjEtMC44YzEuNiwwLDMsMC4zLDQuMiwwLjhzMi4yLDEuMywzLjEsMi4yYzAuOCwwLjksMS40LDIsMS45LDMuMiBDNDU1LjUsNjQsNDU1LjgsNjUuMyw0NTUuOCw2Ni43eiBNNDUyLjcsNjUuN2MtMC4xLTEuOS0wLjctMy41LTEuOS00LjhjLTEuMS0xLjMtMi44LTEuOS00LjktMS45Yy0xLDAtMS45LDAuMi0yLjcsMC41IGMtMC44LDAuNC0xLjYsMC45LTIuMiwxLjVjLTAuNiwwLjYtMS4xLDEuMy0xLjUsMi4xYy0wLjQsMC44LTAuNiwxLjYtMC43LDIuNUg0NTIuN3onLz48cGF0aCBjbGFzcz0nc3QxJyBkPSdNNDY0LjgsNTcuMWMwLjEsMC42LDAuMSwxLjIsMC4xLDEuOGMwLDAuNywwLDEuMiwwLDEuN2gwLjFjMC42LTEuMiwxLjUtMi4yLDIuOC0yLjljMS4zLTAuNywyLjctMS4xLDQuMS0xLjEgYzIuNiwwLDQuNSwwLjgsNS44LDIuM2MxLjMsMS41LDEuOSwzLjYsMS45LDYuMXYxMi41aC0zVjY2LjJjMC0xLjEtMC4xLTItMC4zLTIuOWMtMC4yLTAuOS0wLjUtMS42LTAuOS0yLjIgYy0wLjQtMC42LTEtMS4xLTEuNy0xLjVjLTAuNy0wLjMtMS42LTAuNS0yLjctMC41Yy0wLjgsMC0xLjUsMC4yLTIuMywwLjVjLTAuNywwLjMtMS40LDAuOC0yLDEuNWMtMC42LDAuNy0xLDEuNS0xLjQsMi41IGMtMC4zLDEtMC41LDIuMi0wLjUsMy42djEwLjVoLTNWNjEuNmMwLTAuNiwwLTEuMywwLTIuMWMwLTAuOS0wLjEtMS43LTAuMS0yLjRINDY0Ljh6Jy8+PC9nPjwvc3ZnPg==", - "providedOnSchulstrukturknoten": 0 + "providedOnSchulstrukturknoten": 0, + "keycloakGroup": "WebUntis-service", + "keycloakRole": "WebUntis-user" }, { "id": 8, @@ -88,7 +104,9 @@ "kategorie": "HINWEISE", "logoMimeType": "image/svg+xml", "logoBase64": "PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnIHN0YW5kYWxvbmU9J25vJz8+PCEtLSBDcmVhdGVkIHdpdGggSW5rc2NhcGUgKGh0dHA6Ly93d3cuaW5rc2NhcGUub3JnLykgLS0+PHN2ZyB4bWxuczpkYz0naHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8nIHhtbG5zOmNjPSdodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMnIHhtbG5zOnJkZj0naHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIycgeG1sbnM6c3ZnPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB4bWxuczp4bGluaz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluaycgeG1sbnM6c29kaXBvZGk9J2h0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkJyB4bWxuczppbmtzY2FwZT0naHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZScgdmVyc2lvbj0nMS4xJyBpZD0nc3ZnMicgd2lkdGg9Jzk2JyBoZWlnaHQ9JzExNi4xNicgdmlld0JveD0nMCAwIDk2IDExNi4xNicgc29kaXBvZGk6ZG9jbmFtZT0nYW5sZWl0dW5nLnN2ZycgaW5rc2NhcGU6dmVyc2lvbj0nMC45Mi4zICgyNDA1NTQ2LCAyMDE4LTAzLTExKSc+PG1ldGFkYXRhIGlkPSdtZXRhZGF0YTgnPjxyZGY6UkRGPjxjYzpXb3JrIHJkZjphYm91dD0nJz48ZGM6Zm9ybWF0PmltYWdlL3N2Zyt4bWw8L2RjOmZvcm1hdD48ZGM6dHlwZSByZGY6cmVzb3VyY2U9J2h0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlJyAvPjxkYzp0aXRsZT48L2RjOnRpdGxlPjwvY2M6V29yaz48L3JkZjpSREY+PC9tZXRhZGF0YT48ZGVmcyBpZD0nZGVmczYnIC8+PHNvZGlwb2RpOm5hbWVkdmlldyBwYWdlY29sb3I9JyNmZmZmZmYnIGJvcmRlcmNvbG9yPScjNjY2NjY2JyBib3JkZXJvcGFjaXR5PScxJyBvYmplY3R0b2xlcmFuY2U9JzEwJyBncmlkdG9sZXJhbmNlPScxMCcgZ3VpZGV0b2xlcmFuY2U9JzEwJyBpbmtzY2FwZTpwYWdlb3BhY2l0eT0nMCcgaW5rc2NhcGU6cGFnZXNoYWRvdz0nMicgaW5rc2NhcGU6d2luZG93LXdpZHRoPSc2NDAnIGlua3NjYXBlOndpbmRvdy1oZWlnaHQ9JzQ4MCcgaWQ9J25hbWVkdmlldzQnIHNob3dncmlkPSdmYWxzZScgaW5rc2NhcGU6em9vbT0nMi4wMzE2ODA0JyBpbmtzY2FwZTpjeD0nNDgnIGlua3NjYXBlOmN5PSc1OC4wODAwMDInIGlua3NjYXBlOndpbmRvdy14PScwJyBpbmtzY2FwZTp3aW5kb3cteT0nMCcgaW5rc2NhcGU6d2luZG93LW1heGltaXplZD0nMCcgaW5rc2NhcGU6Y3VycmVudC1sYXllcj0nc3ZnMicgLz48aW1hZ2Ugd2lkdGg9Jzk2JyBoZWlnaHQ9JzExNi4xNicgcHJlc2VydmVBc3BlY3RSYXRpbz0nbm9uZScgeGxpbms6aHJlZj0nZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFTd0FBQUZyQ0FZQUFBQnJJTFNoQUFBQUJtSkxSMFFBQUFBd0FHU1g5L3V1QUFBQUNYQkkKV1hNQUFDNGpBQUF1SXdGNHBUOTJBQUFBQjNSSlRVVUg0d3dDRHpzbm9SbjdhQUFBSUFCSlJFRlVlTnJ0blhlWVZkVzVoOThaaGlyUwpSSW9vWWtGRk1TSmdBVUdrMlh2VWFDUWFva1pqMUZoaU5Ja2FvMWVOR2t1TUppWWFXMnpYaHIxZ0IwU3NhS0ppUVJRQkFVR2FnUFM1CmYzeHJMc013Yzg3ZSsreDlkdnU5ejNNZW1KbHpkbGxucmQ5ZTYxdGZxYURYaWVTTTlzQ213SlpBSzJBeU1BUDRBaUhLUjNQWEJ6c0IKMndLZkFsKzcvcmhDelZNL1ZUbTYxdzJBazRIamdSL1UrZHQ4NENIZ0Z1QXRkUXNSTVNPQW53QjcxL08zcDRDN2dmdlZUT3RUa1pNWgoxczdBalVEL0l1OWJDbHdHWEs2dUlTS2dMWEFOTU5MRGUrOERmdWtlcHNMUmlFNjlzMzZQdTdpblZnOFA3MjBNREhVeno1ZlZQVVNJCmJBaU1BZzd6K1A0ZGdUMkJoNEZsYXI1OENGWUxON1hlenVmbjluUTJoUS9VUlVSSTNBQWM0Zk16bTdsWjJaTnFQcU15NC9kM0pyQjcKd005ZUJuUlVGeEVoc0I4UTFQWnlNbkNBbWpEN2d0VUJPTDJFejI4QkhLY3VJa3FrQ2pnRmFGVGlnMWRrWExBR1kxdkdwWENNdW9nbwprUjJBZlVzOFJoLzNBSlZnWmZqZWhvWndqRzN4WnF3WG9pRjZBVTFLUEVaYjRDQTFaWFlGcXhuK0RlMzEwU1NrNDRqOHNuVkl4MUUvCnpMQmdOY0oyQ0V1bEN0aEkzVVNVUUl1UWp0TlVUWm50SmVHYWhCMUg1QlAxUXdtV0VFS0NKWVFRRWl3aGhKQmdDU0VrV0VJSUljRVMKUWdnSmxoQkNnaVdFRUJJc0lZU1FZQWtoSkZoQ0NDSEJFa0lJQ1pZUVFvSWxoQkFTTENHRWtHQUpJU1JZUWdnaHdSSkNDQW1XRUVLQwpKWVFRRWl3aGhKQmdDU0VrV0VJSUljSHl6eEpnWlVqSFdxUnVJa3BnYVVqSCtWNU5hWldOZzdJUnNBblFQSUgzMVJ4b0U5S3hkZ0srClVsY1JBZGtxcE9OMEJYWk42RDNPQlJZQTg2SStVUVc5VHZUei91MkFQWUNCUUUrZ2ovcWpFTGxuTGpBVkdBZU1CVjRBRnNZcFdIMkIKVTREOWdjNzZmb1FRQlhnSEdBM2NBTXdLODhDTjZOUzcwTjliQXhjRDE3dVoxWWI2TG9RUVJkakVyY0lPZHpPdDk4TTZjQ0dqKzA3QQprOEQ1UUR0OUIwSUluMndKM0E3Y0JyU0tVckNHQUM4QkE5VG1Rb2dTcUFCR0FzOFFnam1wUHNIYUUzaFlzeW9oUklqMEIxNEVPb1lwCldOc0NEeENlUzRBUVF0VFFBL2dYMEN6b0Flb2EzZS9CYkZkQ0NCRUYyd0RMTVBlSGttWll2d0QyVVhzS0lTTG1kOENPcFFoV0IrQTMKYWtjaFJCbG9BZnkrRk1FYUFYUlRPd29oeXNRUndHNUJCR3NEOStFczhRRXdPNFRqTEFNbUFvdlZ2MFFBSmdOdmgzU3NTYTVmWjRWRwptQm5LdDJCMUIvcGxxQ0d1Qm9hNnpsSXFqWUVyZ1VPQUdScC93Z2RQWWY2TW8wTTYzZ3RZdE1tWURMWFJidmpjTWF6RS9DT3l3dW1ZCkxlNGJKelpoUEFXYVlrNjBld0h2YWh3S0Q5d09IQWhNbzdTTUtMVnBpcVU2MmcrNE5TUHR0QVVXd3VOTHNJWmw1T1pQQm01MC8yK0oKZWRpR1FWV3Q2ZjMrd09zYWo2SUFkd0VuMUJsallWQnpuS1hBU2NBdEdXaXJwbGhpQlYrTmtJWHNDK2NBLzZ6MWMzVkU1NW1OQlhSKwpvbkVwNnVGSjRQZ0krMTl0Zmc0OGtZRTI2K0JYc0xaTStRM2ZBMXhieHZQTmNrdFBJV3J6R1hCc21jOTVBdUhZYXVOa0k3K0MxU0xGCk56c0h5eVpSYnA0SHJ0TVlGWFZtK1l0aTZQL241VTJ3VnFmNFpxOEdwc2QwN2l1d0xJdENQTzZXZzNId0NQQjBpdHZPMS9JNXpVVW8KcGhDdjRYRU9jTGZHYXU1WkExeEZlZXhXRFhFcHNDb1BqWjFtd1hvSVMzd2ZKemNEOHpWbWM4MFk0TFdZcjJFQ0FZT0pKVmpsWVNHVwpCaWR1cGdOdmFNem1tbEc2RGdsV01iNEMza3ZJdFl6V21NMHRLN0hRclNTZ0dWYUMrWmprYkJhOHFIR2JXejRHUGt6SXRVd25XN0dHCm1SS3NpUW02bHVtb0ttOWUrWW95RkEvMXlOd0VpYWNFcTU0dkp5bXNCajdYMk0wbFNkdHcrVWFDbFV3cUVuUXRhNEFWR3J1NVpJMnUKUjRJVmhtQlZFRTYyQnJBQXpXSlVhK3ptRWk4UHpyRDZZUlAxdy9RSzFzb2lmMStCT1hhV3lncmdpeUx2cWNJcVpJdjg0V1hqWjA1SQo1L0lTMGRFNDZ3MmVWc0hxNFVGb3d0am0vUTV6eWlzMkErdW1zWnRMdW5oNFQxZzUxTjcwMEErM3pIcURaMVd3SUp6WXJzY283azIvCkxlRWxhUlBwWW5OZzR5THZlUVA0dE1UelRNV1NTQmFpTFFFcjBVaXdvbWRyRDlQZi93TDNsWENPVmNBTkh0N1hYK00ydDNRRHRpL3kKbm5uQVgwczh6NDF1dGwrSVRZQk5KVmpKZmJJTjhpQTQ1d0F6QTU3ak44RDdIdDUzb01adGJta0NEUEFvT0VFektqd0RYT1BoZlFmbApvY0hUS2xqTmdCOTVlTjlNWUY4c3Q3WWYvb0czZkZjN0FuMDBiblBOa2NDR0h0NzNVK0JsbjhkK0FVc0tXR3ozcndsd2pBUXIyUnlDCk55UGpmNERCN2dtM3JNaDd2d0ZPQkU3eGVBMW40czN0UVdTWG5keERzUmh6M0N6b01vb24rbHVNNVhvN0JHL09xWWRqdHRUTVUwR3YKRXhlUTNtMzVQd0cvOWZIK1ljQnh3QTlZVzZoaXBadUpqUWJ1OExHRTNBNUxLOUpPWXpiM3ZJMlZ5dk9hazJvSExDZDdQOHhZWHVGZQpjMTJmdWdkNHgvTVl0dmZ1bk5LMmV3b2ZacFcwQzlaQ1lIY3NDTlV2SGR3TWN5bkJVdHZlNzNGWkt2TEJXY0QxQVQ3WDNvbE9JNnhlCmdGL09BUDZTNG5iekpWaVZLZThrcllIYjhPWUZYTi95YjFaQXNUcE9ZaVhxY0FVK1MxWTU1cnJsWWhDeDZvVmxHODBObFJtNGgzNVkKNXM5eU1hak01eFBwb0JsV2s3QkxtYzdYQlV2UjNVcUNsVDVHVXA3ODdudTZwV0J6alU5UkR6MHczNy8yRVorbkkzQXZaZ3ZMRlpVWgp1cGNUc1JMaFVjVlREY1hTTW5mU3VCUUZHSWlsSzk0cW91TnZoVlhLMlRPUGpWdVpzZnY1S2VhK3NIdkl4NzBBZU5ZOTJZUW94Z0FzCmxDWnNPK2VSN3JpNWphNm96T0E5RFhQaWNoV3dRUWdkWkN4bTJGUzhvUEJEVjJjK2VBem9YZUt4K21MMnFnZmNjWE5MWlVidnF6VncKTHBZeTlpb3M5dENMTjNLVnN6OGNEYnp1N0FRRE5QWkVDUnlNZWF6ZjYyWkdiVDErcmcwd0hIZ1FxelIrckpveS9YNVlYbG1OZWJ5LwpqTVVIVG1OZEo3K05NRS9odms2Z1pLY1NVVEhGTGVzK2RIMnlkbTYzWmtCM3pGMWhzSHZRWmgxZmZsaDVXZVkwd2p5QmQ5WjRFVEd6CkpUbklXNlVsb1JCQ2dxVW1FRUpJc0lRUVFvSWxoSkJnQ1NHRUJFc0lJY0lUTE5YVUUwTEVoYTlzRTFWWXRzSldxSHF4RUtLOE5BSW0KK1JXczRlNkRhOVIrUW9neTBoakwrT3RMc09hcjNZUVFhVUJHZHlHRUJFc0lJU1JZUWdnSmxoQkNTTENFRUNJa0dzcUhWYUdteVQwVgpoT2Zxb3Y0a2FpWklxOE1Tck81WXhZOCtXQmwzK1dYbG14b2ZtWW5BR0N4RHBsK0dZOWt6ZHl5MW80cE0wQXpMOWpzT2VJVUFSWXhyCkJPc2c0Ri9BeG1wVFVRK0xnRE94TW1wZWFBbmNoRlhJRnFJdTV6clIraW53dWQ4cFdqL2dVWW1WS0VBcjREYmd4eDdlMndpNFdtSWwKaWpBQWVCaWY5Uk1xZ2Q4aTQ3dnd4Z1VVdDBmdEFKeWlwaEllMkFtZjFZQnFabGhDZUdFVHpCNVZpTjVxSnVHRFhmMEtWbE8xbWZCSQpFNkJ6a2Zkc29HWVNQdGpRejVzcjBXNmc4RTQxeFhmNzFKK0VIM3oxRjltdWhCQ3BRWUlsaEpCZ0NTR0VCRXNJSWNFU1FnZ0psaEJDCmhFU1Zta0NrbUdVb0UwUVVWR00rZDRtYjBFaXdSTnFZQUx3QnZBL00waW9oRWxaajhhTTdBSDJ4ckJ1TkpWaENlT2NkNEsvQWZjQUsKTlVkWkdRS01CRVpJc0lRb3p1M0FyNEY1YW9wWWVNbTkzZ0t1aTNOV0s4RVNTZWVmd01scWhrUndnNXZkL2oydUM5RDZYeVNaMTRDegoxQXlKNG1iZ2NnbVdFT3V5RlBnTlBrdVppN0p3T2ZDWkJFdUl0WXgzTDVFOGxnQi9rV0FKc1pabjFBU0o1bFZndmdSTENQZ2U4N1VTCnllVkw0QXNKbGhEbXVDamJWYkpaREN5UVlBbWh2cW52U0oxQ0NKRjI1RGdxc2tJRjBObzloS3ZWSEw1b2pCblFWMHF3aENnUHpZRW4KZ1BacEdIZ0pveTFXSDNDTUJFdUk4czJ3ZWdNdDFCU0JSU3Z4eUlZbHNzUXlOVUZnVnFmaElqWERpb2NWYm5BdHhrSWMxckEyYWRxVwpXSEhKSnFqSXJSQVNySmo0RXZnRWVCbEwwL0VCNW11MHZNNnlwZ2xtUE40Q1M1NDJETmdPMkVwTktDUllJbXFlQUo0Q0hnSG1lSng5CkxRWm1BT09BNjkyTTYzRDNHb3JLd1FzSmxnaVpCNEc3Z0NkRE9OWjN3SjN1MVIvYjBUbFZUU3p5aG96dTRUTVZTeWQ3VkVoaVZaZngKd0MrQlBZQm4xZHhDZ2lXQzhyOUFQK0NPTXB4clBIQVljQjZLdXhOYUVnb2Z6TUJzVFgvMitQNW13R1pBQjlhM1J5MEh2Z0dtdTZWZwpJWllCVjJFRkdpNENCcUt5VjBLQ3RSNEwzSURLNnd5dGtadlZUQWJlQlI3R1d3YkdnNEhkZ1YyQkhaMWdOZFMrSDJLN2lSTXdnMzBoCjcrMFgzZXNnWUJDMnc3Z0owQTVZVmVlOTFlN1ZDdWlxSVNDeUxGaWpnWnN3TzAyZWE4SlZ1cG5RWEkvdlB3SDRpUk1UTDdUQmJGUjcKdUo4bkFJOWlSUUMrTC9DNUo5d0xKMGl0V044aHNFYXdXZ0xiWXNiN0F6UVVSTllFNjE3Z3hDSURScXhMZnl5VmJOOFNqN083ZXgzdApsbjVQZVBqTUl2ZHFpTm5BNTI1bWRqRnd2cjR1a1lhWmdoZm11VTR0c2ZMT3J6RW4wYjRoSHJNWE1BcTRoUEJzVmN1QlAyQk9yVUprClFyRGVJYVlxR1NubEt1QnF6R3M5YkJvQkYySTdrbUVkZjRXYlFRdVJpU1dobnI3ZXVRWTQyK043cDJJaE9sOWp0cVlPbUYxcEJ3K2YKUGRKOWYwY1RUdW4ycWZycVJGWUVTNTNaRytkNkVLc0ZtTWY2MCs1QjhEVnJkd0FybkdodGc4VVEvZ0xZdU1DeERnT3VBTTRKNGRxYgo2ZXNUV1ZrU0xsRlRGYVcvV3dvVzRnRXNaOU9aMkk3clZOWjFWNmpHak9Gak1idlNUbGlsM1RVRmpuazJjR2dJMXkvL0xaR1pHWmFYCjkzVUhCZ0JkaURiall5VVdSUHdrNWxxUkZPRy91TURmdndjdUFLNzFlZHlaYnBZMUR2T2ViK2g3dUFSNGp0STJSV1pwT0lpc0NGWXgKTnNGMnhMcVU4ZHFmQTM2WWtObmZFY0R3QnY2MkdqZ0dlS3lFNDkrRFpYQzRoL296TmV3SS9KelNxdkYrcGVFZ3NySWs5REpndTVUNQoybnNEblJMUWhrMHBiTGY2ZllsaVZjTmpGTTdRY0RMbTJSNzN3MHVJeEF2VzNCaXV2WUxDdHAxeTBRZllyY0FzOE1vUXozVVhjRnNECmYrdUJoZndJSWNFcXdqaGdVcG12ZlJ5Mnd4WTNleGRZQ2w0ZHdmbXVvZUhjNWZzZzQ3bklNR0V0QTc3Q0FtLzN3V0xVb2twb1g0RTUKVHM3RFBMNlhKNkFOaHpidys5Y3d1MTdZZklUdE5oNVh6OStHWWZHREM5VzFoUVNyTUo4RGY4dForelhIZGtmcjQra0lsNnd2TnlCWQozVEYvS2dtVzBKSlFyTWZtRFlqK1N1Qy9FWjczQTJ6WHNDNU5zYW83UW1pR0pkYWpjUU9pUDVkb2JYcnozYXRsUFgvcmtPSFo3QkJzCmsrTlRONE5kcEM0b3dTcUZOcGlOcVRyQ2EyN2taakFMRXRCK2F4cTQxOVZFVzlSek9RM2I3Nm96MkUvYlljSForOVQ2M1FTc2l0Qk0KRFdNSmxsK2FBcGRpQ2VxcUloNDBWVzZ3M29VbEUwd2lUVERqZDFTRHFTVU5sL3JLNHF6NXFqcGlCWllmN0VycXQrVUpDVlpCK21HQgp2K1ZrUzZ5VTFqY3h0bDlsQTB2Q1Zsak85cWl5WExSenM5bjZtSmJCZnRxUW45dGVUcndYYXlqbmc3Q003bjFpV282MWk3bjl2cVQrCmlqWE5XSnZlT0FxNll6YWQrdHBrZWdiN2FVTzdyYXRJaHZPd1NKbGdUWWlwRThkdGRQME9jK2VvajhFUm5uZXZCbjcvUVVabkc4ODEKOFB2UnFNU1psb1FCR0k5bEt6Z0VpKzliMllBNHJzYXlBaXpHak9lMXFRYmFBaHZWK3JrdUZiVm1OcmVSREUvMzE3RHlXblhaQmRnVApHQlB5K1hwZ3h1YUdIaHhaRkt3cnNBRDdZMnY5N25Fczg2cVFZUG1tR3ZnalZwdXZjeEhCbWtuRGFWRGFBTzA5Q05hVUJDMEZucVQrCkFnNHRzQ0tuNDBLKzF2TXdHMWw5akNLYnU0VHpnUkhZUnN1bTdrR2xxdGNTckpKWlNHbGUxZ3RJaHJ1Q0g5NEVYc2MySHVxeVA1WmgKNGNhUXpuVVVjSHdEZjV2a1pycFpaclNHYkw2UnAzdnBySFF6eTRhNHhpMlZTNlVQaGQwNGJrYU9sRUtDSlR6d2pKdHAxVWNUNEc0cwpYMVZRRHNac051MGIrUHNVNEg1OURVSkxRdTlzaFdWc2FGbUc2NTVQL0Q1WXRmbk9MZjFlcFg2SHpwWnVCdFFQdUJ3TExmSEMxbGp4CjJ2T0t2Ty9jQkxXRkVJa1hyQzB4SStqV1piejI0Y0NQU2M2Mjlqdll4a09oUWhUSFkvRnd6MklwWXNaUWY0bXU0VmhoaVFPQnJrWE8KZXhQd2lMcXlrR0I1Wjg4eWl4V1lLMEZINElzRXRlZlYyQzdwV1FYZXN4bHdFclpGUDlPOXBtSTdpWjNkMzd0U3YyTm9YUjdDS3ZBSQpJY0h5UWVNWXJyMlM5WDI1a3NEWm1DSCtOMFhlMThJdG83ZkNxZzM1NVFIZ0JNemJXNGhjRUpiUi9WbGdScG12ZlFKVzdpdUpuT2RtCldTc2lPdjYxd0k5UURKM1FEQ3NRMDRCOXFkL2pPd3FxTVNmSkpHZld2QjU0RzRzQUdCclNNZDhDL2tRME5xdlZHZzRpTDRJRkZzZjIKZ1pwMEhjWmhMZ243WStYa2R5TllrWWdwMk83aUtDeWZmUlIwME5jbHNpSlkxV3Fxd0N6RmpPUFBZTFVVajNNejBYYkFocGo5cjdyVwpFbjJWbXprdXdFcldQd0M4UWZRUkFKdnBxeElTTEZIREVpZEFZOTNQMjJBN3E2MXJMY2Vxbk1CTklycGNXZzJoOG1BaU00TFZWVTBWCk9wL2kzWUcwSEdpM1VTUWVyN3VFMjZxcE1rOXJOWUhJaW1EMVltMmVLcEZORGxVVGlLd0kxdWJBSDlSY21lV1hsTThsUllqQStIRnIKT0IzTFZmNXZZQ0lOT3kxV0lDTjlHcWpBc3FJZVNQMEpDSVZJdFdDQnhjQ05kSUkxdjRFWldpTW5iaC82T0c1UDREUjlIUVY1RUhqUgp4L3Qzd0p4TVc3Qit4dE5WV0dtMlhXbTRYSmdRcVJlc21zL3NVdVE5dlgwS1ZtOUt5eGVWQjc3eEtWZ2QzZXhKaU13UVZRSy9iajdmCjMwWmZSVkU2QldoVExjMkZCTXNEQi9sOGZ5dDlGVVh4VS91eEVaWjJSczZnUW9MbGdWMnd4SEw5c2VSK1RXdTlOc0FxbjdSMFB4K0kKSmVJVHhaZk5GN20yN2VxK3UrYTFYazFkbSs0S1BJcDIvVVFHcVlydzJLZGljWFB6Z0xsMW52NHRzVkNWVlc0Z0NtLzhFVXRiTTkrMQphZTN2cjlyOTNGVkxiQ0hCQ2taTDkxSm9UM2kwY2E4dDFCUkNTMEloMHR1WDI2a1pBcE1LOTVZcWZVOGlJNnpBTXJIS3J5d1lIMG13CmhDZ2Z5N0VraVVKTFFpR0VrR0FKSVlRRVM2U2FhcXhVbWtnMlpmK09KRmdpaVRRRzJxb1pFazFyWXNpUko4RVNTYVFac0llYUlkSDAKd0RLQ1NMQ0V3SDg4cWlndmUyUGhZQklzSWJDUXJmM1VESW1rUGZDVE9FNHN3UkpKcFFud1p5eTBTeVNMaTdFU2RSSXNJV3F4UGZBawpDdVpPRWhkaU5RQmlRWUlsa3M0Z3JQcTFncjNqcFJLNHhMMWl2UWdoa3M1dzRGWDNaTytpNWlncmJZRmhXSHJ1QytPK0dNVVNpclN3CkdYQWpjQUdXb1BCZExOZWFpSVlXbU92Q1BpUW9aNTBFUzZTTlRzQXBhb2I4cmt1RkVFS0NKWVFRRWl3aGhBUkxDQ0VrV0VJSUljRVMKUWtpd2hCQWlvWUxWV00wZ1BOS0k0aWxGMUorRUg1cjRGYXdGYWpQaGtlK0I2VVhlODYyYVNmakFWMytwQko1WG13bVB2QWU4WCtROQpFNENGYWlyaGtaZjlDdFoxS0NaTEZHY1o4Q2NQNy9zY3kyTWxSREZlQU83MDg0RkdkT285RzVpRTVXZnVxRFlVOVRBWk9BTjR6T1A3Cnh3QVZXUENzRXZDSitoNSt6d0lqL2M3R0sraDFZczMvcTRBUndJNzROSVNKekxJVStBeDRIUGdtd09kM3hGTERLSmVWcUdFVzhCWXcKT3NpSGF3dVdFRUlrR3ZsaENTRWtXRUlJSWNFU1FraXdoQkJDZ2lXRUVCSXNJWVFFU3dnaEVrcnRxam10Z2FPQTVtb1dVWXVGbUZmeQpiRFdGU0lwZzdRVmNDK3lzSmhIMU1BbTRHcmhkVFJHSXBzQW13SEwzODBxZ3UvdjlwMEIxclJYUFRHQzFtcXhod2RvQmVBTEZmSW1HCjZRSGNCaXpCeXNhTGRXbUNGUjdkR2VnS2JJZlZUK3dDYk9UR1ZzdGFRclFhYUlmbEY1dm5CS3ZDL1cwSkZoSzFFUGdTbU9aZUU5M1AKaTJzSlh5NEY2d3lKbGZESVdSSXNBRFlHT21NVmtmc0JQM0FpMVp6aUNRN3Jzb0hIOTMzdmhHb3lWdlY2SXZBRzhIV2VsdXRWd0NIcQpmOElqVzdtQitYRU83MzFub0Njd0FCam9acDNscExsNzlYV3ZHajRGWGdYR0EvOXhZcFpwd2RwQTQxQjRwQld3Wlk0RWF5ZmdBS0EvCnNDZXdZUUt2Y1J2M09za3RGNS9Dc2lFOGpka2VNeWRZTXZBSnI2d0dWdVJBbEk4Q0RnVjJkY3UvdE5BUytKRjduWU5saDMwSXVBK3oKaTJWQ3NNVDZMSE1EczVXYUlqZDBCNDdCa3NwMXk4RDlkSGF2ZllHTGdMdUJlNEVQMDN4VGNoeGRsNi9jRStrd1lBandOL0pwcjhrVApmWUYvdXRuSUh6TWlWblhwQ3Z3T3MzRmQ1NWE2bW1HbG1KY3g1OGdIc0szakd0NEIyZ0RIWXBrenRVR1JIWWE2NzNWa2p1NjVFamdUCk9NMDlqTzhCM2t6VERWVFE2OFFGbUpkNzN2Z091QXQ0Qmt2WHV0TERad1lCdzRDZkFwdm1zTTJXT3RGK0ljWDNzSlVidEwvQS9LRHkKekVKZ0ZQQUh0N29vQiszY0dIb0VXS1VsWVdGV3Vxbi9LZGcyOVduWXJzcEtqNTkvRmJnUTg3MDVFbmdGczNlSjVOUEtMWXZHdXUrOQprWnFFMXU3aE94NjRtT2pEOHBvQS93THVCeTRQT2tYTUE5T0JCNEg5bk5qOEF5dEhWY3J4SGdMMkFmWUk0WGdpK3VYZnk4QmxtQ0ZhCnJFc1hOOHQ2RlRQU1IwRVZGdHAxS09iVmZ5N2V5c2F0ZDVBc013WjRDYmdWbUJIQjhWZGdqbnFuWUtFWkp3QUhBb05SeWZZazBObk4KcWs1VFUzaGlGOHhFOGpjbllITkRPbTVUekY3Mnd6cS9QOC85ZTc3WEEyWFJoclVBOHp0NXdhMlQ0MkNJVzZjZlRiWktYS1hKaHJVMwp0aU8yZlFLdXBScFloTmxzSnRmenR3cHNKNjhWeVhIa2ZzOEp5dWdTajlNY2M2YzR0TUI3TGdNdXlOc002eDIzTkJ0SGFSNitXN2tuCmNndmdEdUQxQU1kNHliMXV4c0k0am5jQ1ZxR0hlRm00Q1BnOTVhK3Z1UnF6a1U3R1hBaW1ZZGtYdnNWaUFkZGdkZmtxNmdnV1FIdlcKeGlLMnd4eFd0M0ZDOWdNbnZPVk0vZFFMUzRwd0tmQS9KWWpWUFVYRUN2ZGQ0VVcwMGo3RCtnWjRFZk9qbVlqUEtySzFhSXZab2taaQpJUmp0M2UrL2MwdStXNEhuZ0RrbGZISGRnWjloWHRScHRhTWtmWWJWQmZncjVrZFhydjQzMlMyajNnVStjSDF3Q1FGMndBclFHZ3NMCjZ1Rm03d05jZnlwWHBmYkhnSlB4RjJUZENQZzM1b3pybFN2Y0VqNXpndlVXOENSd2kzdUNCYVdubS9tYzVHSHBNQTI0MHoxMTNuWlAKeTZDZDd6ZzM4SGNqWFpreWtpeFl1Mk51S3QwalBzOW5icm4wQWxZUmUxWk05OXZlZlJlSFlDbWl0b3o0ZkIrNmZ1c2x1SG9qOStBNApKc0I1cnFTQVRTdE5nalViZU5UTmRFYVZjSnhtYm9xNkgzQ0VXL3I1NVhFblhFOVFXbXFQQWU0YURuUkxVUWxXTUk1MnMreW9ncE9YCnVRZms4Njd2elVuWS9YY0dEbkxtaDZNak5QVXN4RGFZN2kvd25tN0F3MWpxbmFEOENmaHRXZ1hyVGJjT2ZwN1NiRlBiQWlNd1kreXUKSVYzYlIyN3dQZ0M4VnNKeE5zZWNVZzhuMmQ3MFNSU3NzN0JzdVZFd0M5c3hHNDNsbmtvRC9kMEQ4R2NSTGhsL0RWeFR6Kys3WTM2TgpZY3h5TDhWc2tha1FyRVdZMzlRZHppNndJT0J4V2ppQk9nSGJzdTBZNGZXKzc2NzNJZmR6RUJxN1plb0lONTFPbXEwcmFZSjFJWEJKCkJNZWQ1Z2JrS01ybkFSNDJYZDEzZFNxV3d5eHNyZ1BPcnZYejFwaXRLOHhkMmN0WmE1QlBuR0F0ZCt2a1VXN2dUeS9oV051NEtmSkkKOTJXVjA2dDVxcHR4UGVoRUxHZzZsbzNjUFJ3UDlDRVp1WmlTSWxpTnNJMlFuMGJ3M2QyQzdlNStTemJvNEdhaEl3Zy9uT3hhTEkxTgpSN2RrN2h2QjlhOWowMHFDWU0xeUErQitONTBNeW9hWVIvTmhibmFTQk1mTkp6QWZsTEdVNXJnNkFQaUoremRPdjZJa0NGWVZsaXJsClJ5RWU4M3RzUit0Q2JPY3ZpMnpxeE9VMHdyVngvUjNML3RBL3dtdi9mOUdLVTdCZWNhcjhMS1hsNk5rUk9OaXQyM2RQYUdmNTJBM3kKQnpIdis2QjB4REpnSHVMdU9XK0NGY1hNNmlYTXEzc2MrV0NJRy96RFUzYmRsd0VYbEZ1d2xyZ1p4MzJZRVROb0ZzUktONU02SG5NTgo2SkNTUmwrTU9hSSs3SmFOOHdNZXB3S0xpZHpQTFh1NzVFU3d3clJaTGNXTXVuOXpNNnc4MFJRNDNRbDFtdHhxTGltSFlDM0hkdE51CmN6T3FMMHNRcVcyeGVLUWZZYmFwTkh2cWYrMkU2elkzQXd1YTlXRmpiR1BoRjI2MkdXV1cxRGdGNjF6Z3FwQ085UTd3Y3pKZXNNRUQKdlRBNzFPQ1VYTzlGVVFyV1Y1aUQ1KzJVWnB0cWh4bnpSbUErSmxrTEtsN2psc1gzdUdWSktidFN1Mkk3b25zU3pjNVFYSUoxQ0xZWgpFMFpvMDErd0VKREZDTER3cGF1eGNuOUo1dS9BNlZFSTFpdFl4WTZIZ0M5S09FNXZiSmZzSUd5WExBOTg0ZHJ0S1N6VlIxRGFPSUVmClJyaCtYWEVJMWs1T3lGdUdjTzJub2VyVkRURVN1SW55eGl0NlpheGJSU3dMUzdBV1k3c3NUMk1PbmtFcjB6WnlTNzdEM1dEYktLZWQKWjdrVC9pZXdIYkdGSlJ4ckVHWm9QUkVybDU0bXdkb2NTeTVYNm5YUGNtYUVNWWhDREhPaXRVMkNydWt6dDJLWUJlSFpnTzdESE5TQwpVSUdGcGZ3VUMxUHBqb3BqTk1XU0ErNkRiVVUvaTRXZWZJajM3S2cxdk9wZWM0RWJVdFlPMTRZZ1ZtODVVOElVNlZGUlhzQTJzeDdBCjRoUGpacmI3N3Y0L1hqTXNZUWppWk5jZXkyNTREMmI4L0QxbVZGY2xuM1haQWpPb3YrNldpc2NRekFFd2JmNUY1N2laZGltODYyWlcKRWl2dmZPUWVsSzhrNEZyT3BzN0dTRmd6cktZKzNyc3o1Z055TEpiblIzaWptV3UzNFZqb3lPMXUrZTNWZjZoNWl1NTFJSlpxcEJUKwo0MllMWDZucitHWUc1b1E5MnYwYkIyZGhMbERyVU03WnpIRE14alVHODF5VldBVm5NOHlIYUt4cnorTXpkRyt0c1IyaFVuYUQzM096CkJJbFZjRFlodnV5bmR3TFgxL2VIY3ZveHpRRG1rUzVIdFRRd0R6Tk1ab1VyS2MxKzhqYm1VRHRYWFNNdzNiRVVTdHZGY080WHNCUTIKOVZMT0dkWkgyRmI3OW02cUp6K1k0Q3gxczlYK1dHNnY4Um01cnlGWVpzdFNIb29uU0t4S1lndk02QjZIV0gzZ05HSlpFZ1NyaGttWQovV3AvTitqV3FJLzRZandXUjNnQXdmTE5KNVVLZ3VjT0I4dW4vaFBNZGlXQ3Nha1RxMTR4bkhzSnRybFVNQ0ZtbkR0eVkxa2J5UHVZCitrcFJYc0pzVlh0Z2VleXp4b2xZZkdSUVRzTnFENHBnZE1QY1ovckdjTzRWd0kveHNJR1VCQmVDSjkyeTVoanlFekh2aDZtWWo5cCsKV003eUxOSUpzMTBGNVU0c2g1VUl4dGJZam1CY3ZsY1hZemF6b2tRdFdINWl2KzUzTTY2alVSVmxzRENkMHpBNzFaMEVUd1NZQnM3QQpLaGNGNFEwc2tGa0VZeXNzVHJON1RPZS9CUjh1TEZFTFZpTXNEdENybytNaTRIK3hPTUxma2srSHYrbFkrdGs5c0RDSnJ6Tit2OXNBCnZ3cjQyVldZYytFS1JCQzZ1b2xDejVqT1B4cWZFVEpSQzlZcTRJK1l6ZVZRdktjcVhvUlZ6dWpybGdwZjU2RHpMTWI4ai9xN1FUZ3oKSjRQbWR3U3JYSVRySStNUlFlaUoyWTc3eG5UK1NVNnNmTlZ2TEljTmE2NTdpbzdDUExNUDlmSForVmgyeEtGT3VLb3oySEdxc1JpLwpZZTRMbkphelFYTjB3TSsrNWg2R3dqOERzUTJLWGpGZXd5a0VNUDJVUTdCcW4yTXdsclR1TWZ3bERmdllDVmRmTEFoNFpVWTZ6aE5ZCm52WmZrWjR5VW1GeUZ2N0N1bXB6RHVGV1Z5N0d6bGpXZ0xRekJJdEpiUi96ZFFUYUVZNWpsN0FTOHlONkN0djE4ck4rZmhkekxOelYKRGZabEtlMDBUMlA1Zlk3SThaS21LeGI4SG9TYnlpendPN2orOWhCV0xpNnRESGIza0lRS1RMOG1RSGJjT04wYW1tT09mdTlqcVcvOQo3Rks4NTBUdmNKSVJWZTZWTjkxVStBQzNQTTZ6c2ZoZ2dxV09XUVQ4dVl6WHVRdFdQS1FMbG83NmYwbG5IT3hBTE1La2JVS3VwejF3ClhKb0VxL1kxbkl2NVlGMkloUVo0NVJuMzFEaU9aQ2RuK3hENEpWWXc0eCtJVmdUUG4vWm5ndGNGQ0xKOGVnWG9VZXQzVzJDK2c3MVMKMU43OU1SdHlwNFJkMXdoOEJsZ25LZmRVQjZ3aXlvdFlOUS9LeGpMb0FBQVRJRWxFUVZRLy9Oc3RMNDRtV1lIQVh6cWhHbzVWWnhIRwpyblZFd0N2VEtKK0Q2SEMzREt4dkIzTXpiRXQrdHhTMDlWN3V3WjdFN0wyN1lSbHhVeWxZdFo5Z0Y3dFp5ZWw0eitQMHZadXVEOFNNCnVWL0VlQThMc2JpNC9rNm84dUtpNEpVZkIvemNIY0NjTWx6ZkFkakdVQ0YzaTQyQlIwbHVMVXpjNnVNSm9xMmtWQ3Era2pRbU9idm4KOXRoMi95dFlJamF2d2pVYnk2V3pNK2FBV1U0ZnJnWHUzTDNjOGxaQ3RUNGRzY0lpUVI0Q2Q1VGgrdmJEOHVoNzZXK2RzUFRnU1Z3ZQo3dW11TGVucG5BYTdQcEY2d2FxOWZIakVQZkgyOWRuQnozWXpyaHVkbUVURmNzeWd1YStiM1gwcFhXcVFRd20ycGY0STBVYytESE9ECnZJMlB6M1REN0VNN0phaU5CMkM3Z1IxVDBCKzJ4RWNWNmpUbFR4L3UxdUlQdW83bGxTbHVhVG1VYU94SWo3cnJPWlo4K2xMNTVZY0IKUHJQS3paYWpaS2g3S0FhcElOVU55M1NRQkplSGdXNFp1SEhLeHJhbnVPTTBGbnc0QW92c2ZnQUwzUFRLdTVnQnZDL212Rm9xejJFRwp3eCtpTEJOZWFSZHdKaklHUys0V0ZmdTdQdFdpaEdOMHd2enIrc1hZdmtNeC84WTJLZXNYKytMUnhTV3RGV3FhQTBkaUpaeHV3cXJ0CmVPVWRiRGR4UHljNmZoTUl2by81angzaUJwSVNFSHJuQUd3MzJDLzNFRjFZMWdGWUFIQ0xFSTdWM2oxSTQ1aHBEWExuanRzcGRBMysKSXhBNjRORzNMZTBsdGRwaS9qeHZZNzVjWG1kY3E5d1VmbDhzS2Q1YkhqN3pJZVpsM3djenlpNUhCRm11K0dVNTBTWG0yeHR6aVFsegprRzlLK1oxTEJ6clJiUmZ6OTd2UWphY2d4VDg4dVRka3BRWmdTOHhiZmd4bTlQYlRBZS9HRFB1blloNzBkWm1FMVV6c2o4VXhycGJ1CkJLSXE0Q0IrR0V1NUV6WkRNTU4wRko3Zk5jNmxPNWVoWGZ0aGR0UWtPSVVlNjhiVEp3Rm51a1dMNG1TdGFPa21XTFhnTWNDWitDc1YKOVhmM3hQMFZWblIwQlphK1pCaHdPUllTSW9LekE4R1N4TDFBK01IdWUyT0c2U2lYVDVzNWswT1V6cVY3dVpWQ3V3Ujh2eGRnOWpNdwpwMXEvYkl1SEtKZXNWbG51aGUwcXZZdHRvM3ZOQ0RBSDgvM3FpL21CL1paODVPSXFCNzBEREt4RndNU1FyK01BTnlOcFVZWjdybkV1CmpTTG4xQkNTNHhSNk0zQlpyWitmRDNDTXhwZzdSaTRGcTRhZW1QL08wOWhPa0ZlbWtidzB6VlhZOW5sYTJTYkFaeVpocVlYQ1luKzgKTzRXR1JTY3NEWENZUGxFRFNZNVQ2RXRZNnFmYWZJSFpmUDJ5WTk0RkM4eS9veVlIMEIzdS8ybGpUMndINksvNHk1T2ZGQm9Sekg3MQpIOEpMSVRRRWMrNk5ZOHUvRjJZVUQ4TmVWdU1VMmlFQjMrc1V6RzYxc003dmw3cmxzRitLOXBFOENGWnRqc2VDcSs4bEhkSDJmVEJuCjExZXc4S1JxMHBsMXRSMlcvOG92YjRaMC9xR1luMVhyR050Z0wvZlFMTVU0UGhBejVpZEJyT1lEQndLekd2ajdxd0dPdVhXeDd5aHYKZ2xYRE1aaGg4SGJYU0Vtamk1dE5QWWNWbDZ5WlZhVjFoM0lUL0tVTkFzdHhIMFpSMU1HWTRYNkRCTFJEUDJ6WE00aG8xYXdTV2lmZwpQbFpoZWQwbUZYalA1d0g2YXlzc1ZFZUNWUThiWS9YKzNzTFMyU1JocDZVRGxxbGlJbGJpYTZPTXRIV0hBSUx4TmZCcENPZGVSSGxUCktSZWpQK1lJNjJkcE9nZ0xTZHN3SWZkd2dUTlJGT0piL0dkTTJRRFlYSUpWbURaT0pQNFE0elZzaE5YV0crK3VZK09NdFhHUXpLTFQKQ1NkZy9SMzh4WjZXZ3lGT2dMenM4QTBnR1U2aE5keUd0NkszYzRHUGZCNjdDVVh5cEVtdzF0STBwdk9laUcwRC93Ti9zWkZwWXZPQQpnaFVXcjJMRzRTUXhETnU5THZSd09vemtPSVdDUlJ5YzdHUFpPRG5BT1RhVFlIbWozREdCUDhhMmhHK2hQQjdSY2RFb29HQk5Ddms2CjdpVjVaY0gyY0lKVW44dkRDTXdsSnlsbWdVOHduMFkveStzZ1BvenRKVmpKb2NwMTBqR1lQOURnSE54elJjRGx6T3dJcnVWaWtwZFQKdno4V2UxaDdvUDRNaTNGTUN0OWk5bDYvMFI1QllnbzdVcURnc2dTclBGUmlQaVlQdXVYSlFOTHBUeFdFWnZqM2ZWb096SWpvZXM3Rwo4cW9saVVGdUJ0Z0JPQXE0TldIWGR3b3dJY0RubGdSOHFLOHU5RWNSUFJ0aXV5cmI1dkRlaSs3ODFNTkt6R2diQlV1Qmt6QjdUUGNFCnRkTnd6UDJpZThJZVpyL0hIRldETUFmNERuKzdtODNkKzcvVERDdmVHVlplYXhCVzQ5OGZwNXBvYllvenNBRG9PUWxycXgzZGpEUXAKL0FNTC9BL0tYTGVjOUVNbkNoamVKVmpsRzdSSzlPZHZGaFIxdWJZdnNleTFpOVhjOWZLOFd3cVdRbFdBVlZ4Rm9SbW1CRXNra2RWTwp0S0ptREhDR21uczlKbUh1Tm5FOTNLc2xXQ0pOVkZCZ3B5aGtic2M4dDRXeENoaEpzQjIreUpGZ0NXRzVuTzVVTXdCVzd5Q3gxWi9LCklWaE4xQWRFZ0dWQnVXMStKN00yWTJaZStUWGhWSlJLdFdCZDRLYmRLelFPaFVlcUtIOVdndVdZdytiN09XM3pmd0xYSkVTVFluVWMKbmV3NndpR1l3NTZLT09TTGlnRDlyQVZGMG94RXhEZHVTVFFuWjkvUjg1aERiZGlzeEgrbWpCVVVTTnBZVGh2V3MxaUsyaU93M1JsUgpYdUp5cXdpeXZLc20vTUlUWHZrWStCSGwyYVZNQWpQZGhHSkpCTWR1SDJDbVBKTUNCdit3Qk12UGwvc29sbDdqZUFsWFdZa3JKOVIzCldDcGRQelFCT3NmWVZpOWo2WDZ5emlLc29QRDBpSTdmR2Y5cG9WY1g2cXRoQ2RaSXJCN2dCajR1Nmk0c3hlcUp3RlRwU1dRMHdqSkQKeEpYdmF6bVdUdGNQVFFtV1VqbE03bUhkU2pCWlk0VWJ0MUhhN0ZvRTdDOXJvaGFzbW5xQTd3S0greEN1NzRCL1lmblZ6eWFhQ1AwOApDOVZoV05EcXZ3bFd0U2FzcGVpM0FUNjNhUUxhOEFMTUdKMUZMc2JTMTBSSmtEeGU4eWlqNCtnMjJMYm80MWp1SEs4c3dPb0k5bmZDCk54MVJDZ1BjRE9FUnJDWmUzUDUyUVI1RTNSTFNsdWNSckRCb2t2a0hjRVVaemhPa1dFYkJvUGVvT3ZJUVlKUjdIZWpqYzFPQWM5em4KYjVidStLWXZsbHRwTEdZNFRnclRBbnhtaDRSYyt3TGdTSUxWMlVzaXIyTlYwYU9tQ3RndXdPYytpVU93YWpnVXEwNDdDaXRaNVpYUApzR294L2R6VFFJSERoZW1CZVdxUHh2SXBKWTBnTnNyV0pDZVArU0szdlA0eTVmM2tVM2NmeThwd3JvNCt4enlZc1gxNm5JSlZXN2llCngreFZQWDE4YmdJV01UNEl5eFdVZCtmVHVsSHNYWUQvd1haYmp5T2NRcDFSelZLV0I3Qi85RXpRUFh5RzdSeXVUR25mbVlPbFhTNlgKblhoai9PZEJXMHlSaXV2bHRHMjB4Znc5Sm1LNXRmM1lLTVpoK1lzT2M4dWR2TEs0MXRQcmQ4QjdXSUsxOWdtLzdpbjRyNkRTRXRncApZZmZ4UE9uTjd2QXJyS1JkdWVnVzRET0xLRkxhTFE1amJCVndrUk9oQy9CZTBxb2Fxekt5cDN2U3ZaSkR3ZG9JcS83eUVyYmwzajRsCjE3MkFZRFVHdDAvZ3ZkeU03YkNsaVY4RDk1WDVuSHNFK014TUdzZzBHcWRnMVY3T1hPb0czOW40U3lkeUMxWisvUFJpVThpTU1Rd3IKWHJGOUNxODlpR0R0aEtYTVRScVhBSDlMU2J2ZlNmbGpCSnRqWmh5L3ZGN3NEVWxJTDlQVE5laDdic25vVmJqV0FEZTZoamtELzFWbQowMGlhYy9BSHFWSFhGeXZla1RTcWdWOENUeWE4elYraTlLeWhRZGdDL3daM3ZDeFprNVFQcXlkbWxIOE5jNFh3bXBabUJ2QlhiRWZ4CmI4ajVOS2xNeEp3Qy9kQVkyRDNCOTNTeWU5QW1rWSt3alpobE1aeDdqd0Rhc2p4dGdsWERicGdyeFAyWUk2bFhacnVuM2g1WW1hU2wKMG9oRU1TbmdzbkJ2eXBkOTFDOWZZK0V0U2V0cml6RTc3NHlZem45WVFKTkJVZmVYSkdjY1Bjek50dTdGRE8xZStSd3I0N1F2eWF2dgpsbWRXRVN5VDVWNEVjMEFzRisrNXZyb2dJZGV6QXR1WWVTMm04MitHUlZyNFpRd2UzSmJTa0NMNUdDeVAxcTNBMWo0K045WUoxeUEzCll4UHhNd2IvK2RCYVlCc3NTV1kwRnZ5ZkJDN0ZRdVBpNGxqODFTR3N3Vk54MjdUa2RHOEJuT0NlR2xmakwvWElHQ3kwWWhqbWZDcmkKNDJXQ0pjZnpzeGtURjNjQTU4WjhEYmRpanNSeGNuQ0F6eXdDL3BNbHdhcWhBK1pUOHA3ckhGNGorcGNETDJMMmtKOEQvNVYyeE1KOApZSHlBeiswRTdKcUMrL3N6dG5FVUJ5OENwOFo4LzNzUXpObjNTVHdtUEVocjFad093RlhBcTI3bTVYVUtXbzM1Y08yTXhTcldOZ0pICkdhOFlKRFFscTl3ZDhITm5wZVQrenNUY0NjckpGR3pITXU2d29SRUV5NEgxQWdWU3ltUkJzR3JZMGsyRFgvYjVkRm1OZVN3UGNRTmgKSHRGNmpSK1BQL3RibGhtTGYvY0dzRTJVN1ZKd2Y0dXhBUFJ5emVKbllVYi91QjJvdDhQc3pYNlpqWStvbGF6VUpld0QzT1J1L0ZBZgo5elVEdUI0WWlQbHloVzBuNllmbHNyK2Q1R1FlaUp1NVdFSkJ2MndJbkorU2Uvd1dzNXRPTHNPNXpzS2ovU2RpamlKWXBhUG44T0gwCm5iVkNxb09BQjdFZEJ6OCtYQjloQnYyd2xvVzkzWFc4Q096RCtsa1c4czZEQVQ5M0NNbks0RkNJVHpCNzZmY1JudU44ekY4eGJ0b1IKdkxUOW8zN2VuTVhLejFXWWNmMDF6QURxeDFPNnVzUno5OEhDak1aajFZR2FJK3JqUFlJWjM5dGd0cHEwOERLMnpSOEZ0d0pYSnVRKwp6OEQ4ci96eVgzeUdOMlc5VlAzUG5IQmRSN1F4YVoyeDdlUnhXQ0IzVTJsU1FaWUF0d1g4N0hIRWw1OCtDS093VkVCaE1nYmJMVThDClc1U3dWSDhJbnhzRmxUa1lISlhZenMzem1LRzlRNGpIN3NUYUJIcS9CNXBKaXp6amVTdTdEcTJ3Q2tCcFdtWmZnZTFPaHpVN1BSSlkKbUpCNyszUEFCL1FjNE85QkJuTmU2T0NXRXhPQkN5bk5DTjRLMi9sNzNRbVZkZ0Q5TTV2Z0xnNC9KcGlEWXB5Y0NqeFY0akdXWXZHeQozeVRrbnZiRnFtUUZYZEw2ZGlLdXpPRkEyUVRMWi9TdVd6TDZFYTRtV0hHSHNaaG5jemZwVGtuY1RQQ3k4UCtUc3FYM0tzd3cvVzdBCno2OXhEOG54Q2JtZktvSjcxYThoWUp4dlpZNEh5K2FZVWY0NUxPSytHRDkwOW9qN1NXYU9walF5bFdBdURyQTJqMXFhbU9WbWgwR0sKY3B5UDJYeVN3Z1VFeTNrRlZ1c3hVUDY2U28wWittSUc0T2V4bmIyNkRNYnNMUThCKzZ1NVF1Y0tpdFNpSzhBdnNXd09hZUlUTjB2MwprNUxtVGl5R05pbnNUbkJEKzB6Z1R3VGNrWmRncldVWVZ0UHZGU3gwNXdkWUlkTEhnUVBVUEpFeEYzUDZEY290V0xydE5QRUdaay8xCmtybmlHU3pyU0ZMbzVGWW1UVXY0dnFZR1Bia0VhLzMyR0lTNUo0ekhRaDVhcWxraTV5OVlHYTBnYkUxeS9KSDhjRGRXUGFvUVU3QzYKQlVrcUxYWWR3V3NLekhETHdaSUdxRmlmRnNBR2FvYXlNWi9TU3FjZlMvaStUdVhnMGdJRHVLYmlkSktLckp3TEhGM0M1NitreEN5bwpsU1EvejVCSTFndzBxa0lZOTJCMnhLQmNYT0pnaW92VHNJMmZ1b3drK0k1aUZPeUhsWllMeWdTc2FFekpIWENSeHFId3lGS0NPWHQ2CllRWG12UjAwMVhCanpEZzlQR1Z0dXRMTnBHb1hDTDRBbnpGMkViTUw4TEJyNHlCODc0UzUxTkEzS29rdjk3TklIMThCSDBaNC9QOVEKbWdHK0NXWWI2cHV5ZHYwT3k4ODJBNnRoY0ZtQ3J1MEh3QU9VRmhkN0NmQk9XRlA4cThKUVBwRUxyaTFEWDdrTTIvUUlTZ2VzM052RwpLV3ZiRDdIZDZOTVNkRTNiTzdIcVZzSXgzZ3BqS1ZoYnNON0djdGxNMVhnVURiRElMZGYrWFlaemZZOXQ0NWRpcXRnRmVCcmJnazhUCjcyTWJFRWxnVzh6L2NOc1NUUWduWVVrTlE2R0NYditmeG1aTExOL1FwbGhncVdaZG9pa3dEVE9HbDlzQWZEd1cvbFFLSDJQRzZ3bjYKS24zUkUwczhXYXAvMjFsWWdzelFxQzFZUWlTTm15aTlzTUlDekxOOHRKclRFd093SGR1dUpSN25BZGZ1b1NJL0xKRmt6Z3RoZHRURwpEWjZqMVp4Rk9SU0w3Q2hWckNZU2tYZStCRXNrbVpxUzY2WGFkVm9EOTJHN1ZhSitMblRDM3JiRTQ4eDFENGRJM0tVa1dDTHAvTmNOCmdLVWhEY3JIU1Yvc1laUjBkRUoxQ2NIOXJHcFlpV1dqK0RTcWk1VmdpVFF3R204cGdMeHdFSlloOWdnMUswTlpXeGs5REU2bHRHaUYKb2pTaVUyOTliU0lOZkFnc3c3SnFsRXBiTExCOVE4eFBhRm5PMnJLMW0xRmRSM2l1SCtkanBmSWlSWUlsMHNScldBR0x2VVBwKzFaYQovV0FzNWZCSE9XbkRtalJLaDRld0JLemhCaXljS0hJa1dDSnRqQWVXaHpUVEF2T0lQd3JZQ3NzSU9qMmo3ZFlYeXc1eEhXYTNDb3UvCllFVmV5b0lFUzZTUmNaaEhmSmlCemp0aHBkWTdZZWw3NTJha3JUcGdxYVN2d2lxUmg4bU53Sy9LZVRNU0xKSG01ZUZTTjlNS3ErUlgKWTJBM3pBamRBd3ZHWHBEUzl0a2VpOHY4RTJaY0Q3c0UzZG5BUmVXK0tYbTZpN1J6TkhBNzBkU0UvQTV6ZzdnTmM0YWNuL0MyYUFQMApCa2E0Wlc0VVNTaS94d3pzTjhSeGd4SXNrUVgydytJT08wUjRqcmV4MURWdll0NzNTWXExN1lQWnFFN0FBcitqWWlibVh2SmNYRGNxCndSSlpZVWNzOW5CZ3hPZFpCYnlBMmRIR1lnVWxsc2R3djd1NXBkNnVibGtjZFVydk43QTZuckh1cGtxd1JKWm9pZVdHTDFkT3FTWEEKWk15eit5M01WK3dONE51UXo5UEN6YUoyY1FLMUZkQWQ4NmNxQjNkaHh2WFk3WGtTTEpGRlRzSHErSlc3NHRFeVlCN21HdkV4dHR2NApGVERiTGFlS2xaanY0cGExSGJDa2Vac0R2VERiVk5zWTdtY3habGkvUGlsTFlBbVd5Q3I5Z2N1eHNtMUpvYnJvZUV3T3IyREc5VGVTCjlLVXFsbEJrbGZGWTFlN2Z1S1ZiTWlZSWhWOUpZQ2xXZ1dodzBzUUs1SWNsOGlGY3p3T2RnVzNVSEFVWkRSeUhGY0pJSkpwaGlUencKRnZCRDRDZVlrVnlzeTJUTWQrdFExMWFKUlRNc2tSZFdZNTdydDJONW03YkJzalhrbWVuQTM3RWtpYTlqTGh1SlJvSWw4c1lLektCYwpVeGgwMHh3SzF4VE1aKzFrWUJUSnNmRVZSYnVFSXUvMHdGTE1uSVQ1TjJXWkx6QnYvZHVBTDlONEExWHFyeUxuVEhLdmU0RjlzUEppCkF6SjJqeFBjMHU4VnpDOHN0V2lHSmNTNnRNUlN6WXdFOXNWMkY5TzJPVldOT2FvK0E5eUpGV2hkbElVdlJ6TXNJZFpsTVphNjVqVXMKUHU5UUxBOThUMkNIaEYvN3g4QW53Q05ZMWVaNVdmdHlOTU1Td2hzYnVDVmpmMkE3WUdkZ2s1aXZhUTZXOXVZZDkzcUo1S2ZBa1dBSgpFUVBiT3VIYUFndi8yUXpZbXVnQ2ttdmNNajRDUHNBTTZCKzRuNnZ6MHVnU0xDRktwekhtR3RFR0MxemVBcXVlM01rSldXZk05MnNyCkduYWhXSUs1RzFTNHBkd1VMRmo2Sy9mL2I5Mk1hbDZlRy9yL0FLdVZsd1drQnp0TEFBQUFBRWxGVGtTdVFtQ0MKJyBpZD0naW1hZ2UxMCcgeD0nMCcgeT0nMCcgLz48L3N2Zz4=", - "providedOnSchulstrukturknoten": 0 + "providedOnSchulstrukturknoten": 0, + "keycloakGroup": "Anleitungen-service", + "keycloakRole": "Anleitungen-user" }, { "id": 9, @@ -98,7 +116,9 @@ "kategorie": "HINWEISE", "logoMimeType": "image/jpeg", "logoBase64": "/9j/4AAQSkZJRgABAQEAYABgAAD/4QKcRXhpZgAATU0AKgAAAAgABAE7AAIAAAAOAAABSodpAAQAAAABAAABWJydAAEAAAAcAAACeOocAAcAAAEMAAAAPgAAAAAc6gAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQWRtaW5pc3RyYXRvcgAAAeocAAcAAAEMAAABagAAAAAc6gAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBAGQAbQBpAG4AaQBzAHQAcgBhAHQAbwByAAAA/+EDZmh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8APD94cGFja2V0IGJlZ2luPSfvu78nIGlkPSdXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQnPz4NCjx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iPjxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+PHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9InV1aWQ6ZmFmNWJkZDUtYmEzZC0xMWRhLWFkMzEtZDMzZDc1MTgyZjFiIiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iLz48cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0idXVpZDpmYWY1YmRkNS1iYTNkLTExZGEtYWQzMS1kMzNkNzUxODJmMWIiIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyI+PGRjOmNyZWF0b3I+PHJkZjpTZXEgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj48cmRmOmxpPkFkbWluaXN0cmF0b3I8L3JkZjpsaT48L3JkZjpTZXE+DQoJCQk8L2RjOmNyZWF0b3I+PC9yZGY6RGVzY3JpcHRpb24+PC9yZGY6UkRGPjwveDp4bXBtZXRhPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw/eHBhY2tldCBlbmQ9J3cnPz7/2wBDAAcFBQYFBAcGBQYIBwcIChELCgkJChUPEAwRGBUaGRgVGBcbHichGx0lHRcYIi4iJSgpKywrGiAvMy8qMicqKyr/2wBDAQcICAoJChQLCxQqHBgcKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKir/wAARCAOFBC4DASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD6RooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiue8T+OvDnhCEtrupxQy4ytuh3yv9EHP4nA96ai5OyE2krs6Gobq7trG2a4vbiK3hQZaWZwir9SeBXzv4s/aJ1S+L2/hKzXTYegubgCSY+4X7q/+PfWvKNX1/VteuPP1rUrq+k7GeUtt+gPA/Cu6ngpy1k7HJPFwXw6n1Frfxx8EaMzRx38mpSr1Sxi3j/vs4U/ga4PVf2lpyxXQ/D0aL2kvJyxP/AVAx/30a8Iorsjg6Ud9Tlliqj20PT779oHxvdZ+zyWFlnp5FrnH/fZasSX4v8AjyZiX8R3Az/cjjX+SiuLordUaa2ijF1aj6s6p/id42k+94m1Ef7sxX+VSRfFTxxD9zxLfH/fYN/MVyNFP2cOyF7Sfc7uH40+P4GBHiBnA7SW0LZ/NK37D9ovxbbYF7aabeL3LRMjH8VbH6V5LRUuhSe8UUq1RdT6F0j9pWxkcLrugT247yWkwl/8dYLj8zXoGi/FjwVru1bXXbeCVv8Alld5gbPp82AfwJr46orCWCpPbQ2ji6i31PvSORJo1kidXRhlWU5BH1p1fE3hzxp4h8JzeZoOqT2q5y0Od0b/AFQ5U/XGa9k8KftHQytHb+MNO8gng3lkCy/VozyPwJ+lcVTB1I6x1OqGKhLSWh7rRVLSdZ07XdPS+0e9hvbZ+kkLhhn0PofY81drjaa0Z17hRRRSAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAqtqOpWekafNfancx2trCu6SWVsKo/wA9qw/G3jvR/Amk/bNWkLzSZFvaxn95M3sOwHcngfXAPyz45+Iet+PNQ83U5fKs42zBZRE+XF7/AO03+0fwwOK6qGGlV12Rz1q8aenU9E8eftBXN4ZbDwQjWsHKtqEq/vH/ANxT90e559ga8VuLia7uJLi6lkmmkYs8kjFmYnqSTyTUVFexTpQpq0UeXOpKo7yCiip7KyutRvI7TT7eW5uJW2xxQoWZj7AVqZkFOVWd1RFLMxwFAySfSvb/AAd+ztdXSR3fjO8Noh+b7DakGT6M/IH0GfqK9o8P+CvDnhdANC0i2tXAx5wTdIfq5yx/OuKpjKcNI6nXTws5avQ+U9I+F3jTW9psvD12qN0kuVEC49cvjP4V19h+zn4ruMNfXum2a9x5jSMPwC4/WvpqiuOWOqPbQ6Y4Smtz55T9mfUD/rPElqv+7bMf/ZhUc37NOsKp+z6/YyHsHidf5Zr6KoqPrlbuX9Vpdj5X1P8AZ/8AG1gpa1isdRA5xbXOD+UgWuE1nw3rXh6UR63pd3YljhTPEVVvoeh/CvuOorq0t762e3vYIriCQYeKVA6sPcHg1rHHTXxK5nLBxfws+DqK+kPHX7P+m6lHJe+DWXTrzljZuxMMnsp6ofzHsOtfPeqaVfaLqc2n6rbSWt3A22SKQYIP9R6EcGvRpVoVV7pw1KUqb94p0UUVsZGt4e8Tax4W1Jb7Qr6W0mH3gpysg9GU8MPrX0d8Ovjbpnix4tN1xY9M1ZsKnzfubg/7JP3T/sn8CelfLdLWFahCqtdzanWlTemx960V86fCz43TaY8WieM7h5rI4WC/c7ng9Fc9WX36j3HT6JilSaJJYXWSN1DI6HIYHoQe4rxatGVKVpHq06saiuh1FFFYmoUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAVx/wAQ/iLpvgDRxNcAXGoTgi1tFOC5/vN6KPX8qt+OvHGneBPDz6hqB8yd8pa2obDTv6ewHc9vqQD8h+I/EWo+Ktdn1bWJ/NuZj0HCxr2VR2A9P612YbD+1fNLY5cRX9mrLcTxF4j1PxVrU2qa1cGe5lP0VF7Ko7Aen9ay6KK9pJJWR5TbbuwoorsPhz8Pr7x9r4tot0GnwENeXQH+rX+6PVj2H49qUpKK5mOMXJ2RB4G+H+sePNUNvpaCK2iI+0Xkg/dwj+reij9BzX1L4J+H+ieBdOEGlQeZcuP397KAZZT9ey/7I4+p5rY0LQtO8N6PDpmjWy21rCMKq9Se7E9ye5NaFeJXxMqrstEetRoRpq73CiiiuU6AooooAKKKKACiiigArhfif8NrTx7ohaFUh1i2Q/Zbg8bu/lv6qf0PPqD3VFVCThLmiTKKkrM+D7y0uLC9mtL2JobiBzHLG4wUYHBB/Goa9w/aJ8HJaX9p4qsowqXZFveBR/y0Ayj/AIqCD/uj1rw+voKVRVIKSPFqQdOTiwooorUzCvXfhB8XX8MzRaD4jmZ9HkbEM7HJtCf/AGQ/p19a8iorOpTjUjyyLhOUJcyPvVHWRFeNgysMqynII9aWvAvgZ8UNjQ+ENfn+Unbp07nof+eJP/oP5egr32vBq0pUpcrPZp1FUjzIKKKKyNAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKp6tqtnoekXOp6nMsFpaxmSR27D0HqT0A7k1cr5r+Pnj06vrg8MabN/oOnvm6KniWf0+idPqT6CtqNJ1Z8plVqKnG5wXjzxpeeOfFE2qXeY4B+7tbfPEMYPA+p6k+p9MVzVFFe/GKirI8Vtyd2FFFFUI1fDfh6+8U+ILXR9Kj33Fy+AT91F6lm9gOa+yPCfhew8H+G7bR9LTEcIy8hGGmc/edvc/oMDoK89+AvgYaF4a/wCEhvo/9P1VAYsjmO36j/vrhvptr1uvGxdbnlyLZHq4alyR5nuwooorhOsKKKKACiiigAooooAKKKKACiiigDk/iho6658MtctSoZ0tmuI/XdH84x9duPxr41r7u1CEXGmXULAFZIXQg+6kV8I162Al7skebjF7yYUUUV6JwhRRRQA5HeKRZI2ZHUgqynBBHcGvrj4S+Pl8c+FFN24/tWxxFeL/AH/7sg9mwfxB9q+Ra674Z+MX8FeNrXUHZvsUp8i8Ud4mPJx6qcN+GO9c2Jo+1hpujooVfZz8mfZFFIjrJGrxsGVhlWByCPWlrwT2AooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA4/4o+Mf+EK8DXV9AwF9Ofs9mD/AM9GH3v+AgFvwA718dySPLI0krM7uSzMxyST1JNem/Hfxd/wkHjptMtn3WejgwDB4aU/6w/gQF/4D715hXuYSlyU7vdnkYmpzzstkFFFFdZzBXQeBvDh8V+NtM0fDeXcTDzivURr8znPb5QfxxXP17j+zXoiy6prGtypn7PEltCx9XO5se4Cr/31WNafs6bka0oc81E+g4oo4IUihRUjjUKiKMBQOABTqKK+ePbCiiigAooooAKKKKACiiigAooooAKKKKAKWszfZ9Cv5unl20j/AJKTXwtX2b8TNR/sv4Y6/c52k2TxKfQyfIP1avjKvWwC92TPNxj95IKKKK9E4QooooAKKKKAPrL4JeKP+Ej+HNtBO+670s/ZJcnkqB+7P/fOB9VNeiV8z/s6a39h8c3elSNiPUrUlR6yR/MP/HS9fTFeDiYclVpHs4efPTQUUUVzG4UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABWT4q1yPw14T1LWJsYs7dpFDdGfoq/ixA/GtavHf2jtZNp4O0/SY32tqF0XcA/eSMZI/76ZD+Fa0Yc9RRM6kuSDkfN800lxcSTzuXlkYu7nqxJyTUdFFfRHhhRRRQAV9VfAHT1s/hXBcBcNfXU0zH1w3l/8AslfKtfY/wohEHwp8PoBjNqH/AO+mLf1rgxztTS8zswa99vyOvooorxz1AooooAKKKKACiiigAooooAKKKKACiiigDyv9obU/sfw1SzU/Nf3kcZHqq5cn81X86+Xa9z/aX1HfqmhaYrf6qGW4Yeu5go/9Ab868Mr3MHG1FeZ5GKleqwooorrOYKKKKACiiigDpPh5qH9l/EfQLvdtVb6JHPorNtb9GNfaVfBsErQXEcyHDRuGBHYg5r7xVgyhl5BGRXlY9axZ6ODejQtFFFead4UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABXzB+0Pq5vfiLFYKfk0+0RCP9t8uT+RT8q+n6+N/inff2h8VPEE2c7btoc/9cwI//Za7sDG9S/ZHHi5Wp2ORooor2TywooooAK+z/hsQ3wx8Okf9A+If+O18YV9ifCS4F18J9AkHa3Mf/fLsv9K8/HfAvU7cH8bOyoooryD0wooooAKKKKACiiigAooooAKKKKACiiigD5Y/aBvDc/FSWI/8utnDEPxBf/2evMK9H+PEBi+Ld+5/5bQwOP8Av2F/9lrzivoaH8KPoeJW/iS9QooorYyCiiigAooooAK+77EOun26yffEShvrgV8QaDpr6z4i07TIxlry6jhHtuYDP619zV5ePfwr1PQwa+JhRRRXmHoBRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFfDGuztdeItSuHOWlu5XJ9SXJr7n6V8GTSebPJIf42Lfma9PAby+RwYzaIyiiivUPOCiiigAr6o/Z/1AXnwsit882V3NDj6kSf+1K+V693/Zp1nbc63ojt99Eu4l+h2Of1SuTGR5qT8jpwsrVPU9/ooorwz1wooooAKKKKACiiigAooooAKKKKACiiigD58/aT0Fk1LSNfijOyWNrSZwOAyksmfchn/wC+a8Mr7Z8Z+F7bxj4TvdFujs89cxS4z5Ug5Vvz6+oyO9fGms6Re6BrN1peqQmG6tZDHIh9fUeoI5B7g17ODqqUOXqjysVTcZ83RlGiiiu45AooooAKKKkghlubiOC3jaSWVgiIgyWYnAAHrmgD034B+GpNZ+IS6m6/6LpEZlYkcGRgVRf/AEJv+A19S1yHwz8FR+BvB0Fg4U303768kHOZCPug+ijgfQnvXX14GJq+0qNrY9mhT9nCzCiiiuc3CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK+D7uH7Pezw9PLkZPyOK+8K+H/FMBtfGGs27DBiv50I9MSMK9LAPWSODGbRMmiiivVPOCiiigArq/hp4k/wCEV+IWl6jI+y2Mvk3OTx5b/KSfpkN/wGuUoqZRUk4scW4u6PvaivP/AINeNP8AhLvA0Ud1Ju1HTcW9zk8sAPkf8QPzVq9Ar52cXCTiz3YyUoqSCiiioKCiiigAooooAKKKKACiiigAooooAK4H4mfCyx8fWYuIGSz1mFcQ3JHyyD+4+Oo9D1Hv0PfUVcJyhLmiTKKmrM+H/EXhnV/CupvYa7ZSWsyn5Swykg9Vbow+lZNfdWqaRp+t2L2Wr2UF5bP1imQMPrz0PuOa8z1j9njwnfMX0ye+0xj0VJBKg/Bsn/x6vUp46LXvqx508JJP3T5hor3uX9mU+cPJ8VYjPXfYZI/8ic/pWnp37NeiQyBtU1u+u1HVYY1hz+e6tXi6K6maw1XsfO1vbzXdwkFrDJNNIdqRxqWZj6ADk19G/CL4OHw/JD4h8UIG1MDdbWh5Ftn+JvV/boPr09D8MeA/Dfg9D/YOmRwSsMNcOS8re29skD2GBXQ1xV8Y5rlhojro4ZQfNLVhRRRXAdgUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAV8g/GPTv7N+LGtIBhJpFuFPrvRWP/AI8TX19Xzh+0jpDW/izS9WVcR3doYSR/fjYk/o6/lXbgpWq27nJi43p37HjFFFFe0eUFFFFABRRRQB13w28bzeBPF0OoYZ7KYeTeRD+KMnqP9oHkfiO9fYVpdwX9nDd2cqzW86CSKRDkOpGQR+FfB9e3fAr4mDTp4/CWuTYtZn/0CZz/AKpyf9WfZj09Ccd+PPxlDmXPHdHbha3K+R7H0RRRRXkHphRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAV5p8etC/tb4ZzXUa5m0yZLkYHO37jD6YbP/Aa9LqrqenwatpN3p12N0F3C8MgH91gQf51dOXJNS7ETjzRcT4Toq/rek3Gha7e6VejE9nM0L8dcHGR7HqPrVCvo07q6PC2CiiimAUUUUAFKCQcjg0lFAH018GfiqviWzj8P6/PjV4ExDM5/wCPtAPX++B19Rz6165XwdbXM1ndRXNpK8M8Lh45EbDIwOQQexr6m+E/xWt/G1kum6syQa7AnzL0W6UfxqPX1X8Rx08jFYblfPDY9PD1+b3JbnpdFFFeedoUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAfOP7Rfhf7F4is/EdvHiHUE8m4IHSVBwT9UwP+AGvF6+1fHXhaHxj4NvtHl2iSVN1u7f8s5V5U/nwfYmvi+6tprK7mtbqNop4XMckbDBRgcEH6GvawdTnp8r3R5OKp8s79yKiiiu05QooooAKKKKACp7O8udPvYbyxmeC4gcPHLGcMjDoQagooA+qfhV8W7bxpbppesNHba5GvTot0B/Eno3qv4jjOPTa+DYJ5bW4jntpXimiYOkiMVZWHIII6GvpH4V/GmHxB5OieK5Eg1ThILo/Kl0ewPZX/Q9sHivIxOF5ffhselQxHN7s9z2GiiivPO4KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK+dP2g/AxsdUj8V6dF/o94RHeBR9yXHyv9GAx9R719F1R1rR7PX9Eu9K1OPzbW7jMci9x6EehBwQexArajVdKakZVaaqQ5T4Xorb8XeGL3wf4mutH1FfnhbMcmMCWM/dcexH5HI7ViV9Ammro8Vpp2YUUUUxBRRRQAUUUUAFLSUUAe4/C/wCOT2Qh0XxrM0luMJBqLctH6CT1H+11HfPUfQUM0dxCk1vIksUihkdGBVgehBHUV8GV6F8OPi3qngaVLO533+jM3zWzN80OerRk9PXb0PsTmvOxGEUvep7ndRxLj7sz60orK8O+JtJ8V6Smo6HdpcwNwwHDRt/dZeoNateU007M9FNNXQUUUUhhRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAed/GD4eDxt4b+06fGP7Y09S9vjrMvVoj9eo9/TJr5PZWRyjqVZTggjBBr70r57+O/w1NrcSeLtDh/cSnOoQoPuOf8AlqB6Hv789zj0sHXs/Zy+Rw4qjf34nhtFFFeqeaFFFFABRRRQAUUUUAFFFFAGz4Y8V6v4Q1ZdQ0K7aCUYDoeUlX+669x/Ltg19PfDz4taP45hS1lK2GsBfntHbiTHUxn+Ie3Ue45r5Ip8UskEySwu0ciMGR0OCpHQg9jXPWw8Kq13N6VaVN+R950V4F8N/j0U8nSfHLll4SLUwOR6CUd/94fj3Ne9QzRXMCTW8iSxSKGSRGDKwPQgjqK8WrSnSdpHq06kaivEfRRRWRoFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABTJ4Irm3kguI1lhlUpJG4yrKRggjuCKfRQB8l/Fj4azeBdc+0WSNJot45NtJ18pupiY+o7HuPcGvPa+5te0Ow8SaJc6Vq0ImtblNrDup7MD2IPINfIPj3wLqPgPxA1hfAy20mWtboLhZk/ow7jt9CCfawuI9ouWW55WIocj5o7HL0UUV2nIFFFFABRRRQAUUUUAFFFFABXf/AA6+LGr+BZ1tZC1/o7N89o7cx56tGf4T7dD9ea4CionCM1yyRUZOLvE+3/DXinSfF2kJqOh3S3ELcOvR4m/usvY/5GRWvXxF4Z8Vav4Q1hNR0O6aCVeHQ8pKv9117j/Iwa+pPh38UtJ8e2giUrZ6tGuZrJ26+rIf4l/Ud+xPj18LKn70dUepRxCqaPc7miiiuM6gooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoorP1zXtM8N6XJqOt3kdpax9Xc/ePoB1J9hzTSbdkJtLVmhXjnxr8c+D30C58O3SDVtTzmNbdgPskg6MX5wR3UZJ5BxnNcH8Qfjlq3iRpbDw4ZNK0s5UuDiece5H3R7D8SeleU16eHwbTU5nBWxKa5YCUUUV6Z54UUUUAFFFFABRRRQAUUUUAFFFFABU1rdXFjdxXVnNJBPCweOWNirIw6EEdKhooA+k/hd8boNdMOi+LpI7bUjhIbzhY7k+jdlf9D7HAPsdfBNe0fC343TaP5Oi+MJXnsOEgvmyz249H7svv1HuOnl4jCfap/cehQxP2Z/efR1FMgniubeOe2lSWGRQ6SIwZWU8ggjqKfXmHoBRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUV478U/jXF4febRPCbx3GpjKT3fDJbH0Xsz/oO+TkDSnTlUlyxInUjBXkdV8Q/ijpHgK0MTlbzVpFzDZI3I/wBpz/Cv6nt3I+XfFPjDWvGWqG+127aZhnyol4jhHoq9v5nuTWTdXVxfXct1eTSTzzMXklkYszk9SSetQ17VHDxpLzPJq15VH5BRRXp/w2+DGo+MPL1LWTJp2jHBVsYluR/sA9B/tH8Ae206kaa5pMzhCU3aJxPhrwprPi7UxY6DZPcycF36JEPVmPAH8+2a9+8Ofs9aDZ6JNF4jmkv9QuI9plhYolufWMdyD3br6DmvTtC8P6X4a0uPTtEs47S2T+FByx9WPVj7mtGvIrYyc3aOiPSpYWMVeWrPjTx78PtV8Bav9nv186zlJ+zXiLhJR6ezDuv8xzXKV9z61omneItJm0zWLVLq0mGGRx09CD1BHYivlj4lfCrUvAl211b77zRZGxFdAcxZ6JJjoffofY8V24fFKp7stzlr4dw96Ox5/RRRXacgUUUUAFFFFABRRRQAUUUUAFFFFAHpHwx+Ld94InTT9R8y80N2+aHOXtyerR57dyvQ+x6/UelarY63pkGo6Vcx3VpOu6OWM5BH9D2IPIr4UrtPh18SdT8A6pmLdc6ZMwNzZluD/tL6N/Poe2OHEYVVPehudlDEOHuy2PsKiszw94i0zxTosOqaLcrPbSj6Mjd1YdmHpWnXjtNOzPTTTV0FFFFIYUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFeA/GX4vM0lz4X8LT7UXMd9extyx7xofTsT+HrnWlSlVlyxM6lSNON2O+LnxoYST+HvBtzgDKXeoRNyT3SM/zb8vWvBqSivdpUo0o8sTx6lSVSV2FOVWdwqKWZjgADJJpY43mlWOJGeR2CqqjJYnoAPWvpb4S/B6Lw3FDrviWJZdYYB4YG5W0/xf37dvWlWrRpRux0qUqjsjH+FvwOWAQ6542gDS8Pb6a4yE9GlHc/7Pbv6D3UAAAAYA6AUUV4dSrKrK8j16dONNWiFFFFZGgVFdWsF9aS2t5DHPBMpSSKRQyup6gg9alooA+afil8Fbjw752teFY5LnShl5rYZaS1HcjuyD16jvnrXj9fe1eJ/FD4HRal52teC4Uhu+Xn09cKk3qY+yt7dD7Hr6mHxf2an3nn18N9qH3HzrRUk0MttO8FxG8UsbFXjdSrKR1BB6Go69M88KKKKACiiigAooooAKKKKACiiigDqPAnjzVPAeti809vNtpCBdWjNhJl/ow7N29xkH628L+KNL8X6FFquiz+ZDJw6Hh4n7ow7Ef/XHBr4hrpfA/jjVPAuurf6Y++F8Lc2rH5J09D6Edj2+mQePEYZVVzR3OqhXdN2ex9o0Vj+FvFGmeL9Bh1XRpvMhk4dD9+J+6MOxH/1xwa2K8Vpp2Z6qaaugooopDCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK4b4p/EKHwH4aLW5V9WvAUs4jztPeQj0XP4nA9cVCLnJRRMpKKuzk/jV8VTocMvhnw7PjUpVxd3CHm2Qj7qn++R37D3PHzdUtxcTXd1LcXUrSzTOXkkc5Z2JyST3JNRV79GlGlGyPGq1HUldhRRXrXwP8AhwPEmr/8JBrEO7SrCT91G44uJhzjHdV4J9Tgc81VSoqcXJkwg5y5Udn8E/hUulW0PijxFb5v5V3WVvIP+PdT/GR/fI6eg9zx7TRRXgVKkqkuaR7VOCpx5UFFFFZlhRRRQAUUUUAFFFFAHn3xI+Eul+OoHu7bZY60q/JdBfllx0WQDqO27qPccV8u+IPDuqeF9Xk03W7R7a5j5w3KuOzKehB9RX3HWD4t8G6P410g2Gt2+/GTDOnEkLeqt/Toe4rtw+KdP3Zao5a2HU9Y7nxPRXZeP/hprPgK+/0tftWnSNiC+jX5W/2WH8Lex/AmuNr2IyjNXieXKLi7MKKKKokKKKKACiiigAooooAKKKKAOp8BePNS8B68t7Yky2shC3VozYWZP6MOx7fQkV9d+HvEGneJ9Dt9W0ecTW065HZkPdWHYjuK+G67f4ZfEe88A65lt8+k3LAXdsD/AOPr6MP1HB7EcWJw/tFzR3OvD1+R8stj6/oqtp+oWuq6dBf6dOlxa3CCSKVDwymrNeLseqFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQBT1bVLTRNIutT1KUQ2trGZJHPYD09SegHc18aeNfFl3408VXWsXuVEh2QQ5yIYh91R/M+pJPevT/ANoPxybzUY/CenTfuLUiW+Kn78nVU+ijk+5Hda8Rr2MHR5Y873Z5eKq80uRbIKKKK7zjNbwx4fu/FXiay0awH726kClyMiNerMfYAE/hX2hoWi2fh3QrTSdMj8u2tIxGg7n1Y+5OSfc15H+zr4RFpo914ou4v314Tb2pI6RKfmYfVhj/AIB717ZXjYyrzz5Fsj1cLT5Y8z3YUUUVwnWFFFFABRRRQAUUUUAFFFFABRRRQBBe2NrqVjLZ6hbx3NtMu2SKVQysPQg184fE74I3Ph/ztY8KJJd6WMvLa8tLbDuR3ZB69R3zya+lqK2pVpUndGVSlGorM+CaK+kvid8D7fW/O1jwhHHa6icvLZjCx3B9V7K36H25J+c7q1uLG7ltbyGSC4hYpJFIpVkYdQQele3SrRqq8TyalKVN2ZDRRRWxkFFFFABRRRQAUUUUAFFFFAHq3wZ+KDeFNSXQ9am/4k13J8juf+PWQ/xf7p7+nX1z9QAggEHIPQivgmvov4E/Er+0rWPwnrc2bu3T/QJXP+tjA/1Z91HT1A9ufMxmH/5eR+Z34Wt9iXyPa6KKK8s9EKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK57x14pi8G+Db7WJdpljTZbxt/y0lbhR+fJ9ga6Gvmr9oXxadT8UweHrWTNtpi75gDw07DP/jqkD6s1b4en7Sol0Ma1T2cGzyS6up768muruVpp55GklkY5LsTkk/UmoaKK+gPFCrWmafPq2rWmnWi7p7uZIYx/tMQB/Oqtem/APRf7U+JsV265i023e4ORxuI2KPr82f8AgNZ1JckHLsXCPNJRPpzR9Lt9E0Wz0yyXbBaQrCnHUKMZPuetXaKK+dbu7nu7BRRRSAKKKKACiiigAooooAKKKKACiiigAooooAK4L4kfCvTPHlmbiPZZazGuIrsLw+OiSAdR79R29D3tFVCcoPmiTKKkrM+HNf8AD+p+GNYl0zW7V7a5j/hbow7Mp6EH1FZlfafjTwPo/jnRzZavFiRMm3ukH7yBvUH09QeD+RHyh418D6t4F1o2OrR7onybe6Qfu519R6H1HUfkT7WHxMaqs9zyq1B03dbHN0UUV1nMFFFFABRRRQAUUUUAFT2V5cadfQXllK0NxbyCSKRDyjA5BqCigD7M+HfjW38deEoNRj2pdx/uryEf8s5AOcex6j646g11VfIfwl8bnwV41ikuZCum3uILwE8KCflk/wCAnn6FvWvrwEMoKnIPII714OJo+ynpsz2KFX2kNdwooormOgKKKKACiiigAooooAKKKKACiiig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oAKKKKACiiigDwH9o3wmEksfFNpH9/8A0S7Kjv1jY/huXPsorwevt3xfoEfijwhqWjShc3UDLGW6LIOUb8GANfEssTwTPFMhSSNirqw5UjgivZwVTmp8r6HlYqHLPmXUZRRRXccgUUUUAFfSf7NjH/hCNUXsNRJH/ftK+bK+mf2b49vw91Bz/Fqjj8oov8a48Z/BOrC/xT12iiivEPWCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACua+Iunf2t8N9etANzNZSOg9WQb1/VRXS02SNJonjlUMjqVZT3B6iqi+Vpikrqx8F0Vo6/pT6H4j1HS5M7rO5khye4ViAfxHNZ1fSJ3V0eC1Z2CiiimIKKKKACux+GfjufwH4rjuyWfT7jEV7Cv8AEmeGA/vL1H4jvXHUVMoqUeVlRk4u6PvG1uoL6zhurSVZoJ0EkciHIdSMgj8Klr5x+B/xP/si6j8La9NixnfFlO54gkJ+4f8AZY9PQn0PH0dXgVqTpS5WezSqKpG6CiiisTUKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACvkT4zaH/YXxS1NUTbDekXkXHXf97/x8PX13Xgf7S+l/NoWrIvUS20jfkyj/ANDrswcuWrbucuKjenfseC0UUV7Z5IUUUUAFfVnwDtPs/wAJ7WXGPtNzNL9cNs/9kr5Tr7M+GGnHS/hfoFsRgmzWYj0MmZD/AOhVwY52ppeZ2YNe+2dVRRRXjnqBRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQB8tfH/QTpXxGOoIuINUgWYEDjeo2MP0U/wDAq8ur6l+Pvho618P/AO0YE3XGky+fwOTE3yuP/QW+i18tV7uFnz0l5aHj4iHLUfmFFFFdRzhRRRQAUUUUAFfR/wAFvix/bUMXhnxJP/xMY122lzIf+PlR/Ax/vgd+49+vzhT4pZIJklgdo5I2DI6HBUjkEHsaxrUo1Y2ZrSqOnK6PvOivLfhH8WIfF9nHo+uSrHrkKcMeBdqP4h/tY6j8RxkD1KvBqU5U5csj2ITU48yCiiioLCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACvLP2hbL7T8MVmA5tb6KXPoCGT/ANnFep1wHxwTd8HtZP8AdMBH/f8AjH9a2oO1WPqZVlenL0PkiiiivoTxAooooAtabYy6pqtpYWwzNdTJDGP9pmAH6mvui2t47S1it4RiOFAiD0AGBXyf8D9FOsfFOwdk3RWCPdye20YX/wAfZa+tK8nHSvJR7HpYONouQUUUV5x3BRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQBFdW0N7ZzWt1GJIJ42jkQ9GVhgj8jXxN4s8Pz+FvFeoaNc7t1rMVRiPvp1RvxUg/jX29XiP7RHg77Xpdt4qso8y2mILzaOsZPyMfoxx/wACHpXbg6vJPlfU5MVT5ocy6HzvRRRXtHlBRRRQAUUUUAFFFFAEttczWd1Fc2srwzxOHjkjbDIwOQQexr6h+E3xag8Y2qaTrciQa5EvB+6t2oH3l9G9V/EcZA+WakgnltbiOe2leKaJg6SIxVlYcggjoawrUY1Y2e5tSqypu6PvKivI/hN8YovEyQ6H4llSHWANsM5wq3f+D+3Q9vSvXK8OpTlTlyyPXhOM1eIUUUVmWFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAV5z8d5vK+EeoJ/z2mgT/AMiK3/stejV5D+0dqIt/AljYg/Pd3wbH+yiMT+pWtsOr1Y+plWdqbPmeiiivoTxAooqa0tZr++gtLVDJPcSLFGg6szHAH5mgD6I/Zw8P/ZfDeo67MmHvphBESP8AlnH1I+rMR/wGvaKyvDGhQ+GfC+n6NbYKWcCxlgPvt1ZvxYk/jWrXztaftKjke5ShyQUQooorI0CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAqC+srfUrCeyvolmtriNopY26MpGCPyqeigD4r8deE7jwV4uu9HuNzRod9vKR/rYj91vr2PuDXO19a/F34fL438MGWxjH9r2AMlqehlH8UR+uOPQ49TXyY6NG7JIpVlOGVhgg+le9h63tYX6njV6Xs5eQ2iiiukwCiiigAooooAKKKKAHKzI4dGKspyGBwQa+gvhV8bVu/J0LxpcBJ+Et9RkOBJ6LIex/2u/fnk/PdFZVaUasbSNKdSVN3R97UV82fCz41y6AIdE8WSSXGmDCQXZyz2w9G7sn6j3GAPo62uYLy1jubSZJ4JVDxyRsGV1PQgjqK8OrRlSlZnr06saiuiWiiisTUKKKKACiiigAooooAKKKKACiiigAooooAKKKKACvnH9pPVRceKNJ0tHB+yWrTMAejSNjB98Rg/jX0aWCqWYgADJJ7V8VeOfEB8UeONV1fcWjuLgiHPaNflT/AMdAruwUL1ObsceLlaHL3Ofooor2Tywr1n4AeEjrXjJ9buUzaaQu5MjhpmyFH4DLexC+teURxvLIscSs7uQqqoyST0AFfZPw28JDwZ4FstMdQLth592R3lbqPfAwv0WuPF1eSnZbs6sNT553eyOrooorxD1gooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo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n8QPiBpvgHRDc3ZE97MCLWzDYaVvU+ijuf61T+I3xQ0vwDY+Wdt3q0q5gs1bp/tuf4V/U9u5Hyr4h8Q6l4p1ubVdauDPczH6Ki9lUdgPSu3D4Z1HzS2OSviFD3Y7h4h8Q6l4p1ufVdZuDPczH6Ki9lUdlHpWXRRXspJKyPLbbd2Fem/CX4VTeNb5dT1dHh0KB/mPQ3TD+BT6erfgOeQz4WfCa78bXSalqqvbaFE3zP0a5IPKp7erfgOen1LZWVtp1jDZ2MCW9tAgSKKMYVFHQAVw4rE8nuQ3OzD4fm96Ww+CCK1t44LaNYoYlCRxouFVQMAAdhipKKK8c9MKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigDnvGfgrSfHGiNp+rxYZctBcoP3kDeqn09R0P5V8meNPBWq+BtcbT9WjyjZa3uUH7udfUH19R1H5E/alZHifwvpXi/RJNL1u3EsL8qw4eJuzKexH/wBY5FdeHxDpOz2OatQVRXW58QUV2XxB+G+reAdS23INzp0zEW96i/K/+yw/hbHbv2zXG17UZKavE8qUXF2YUUUVRIUUUUAFFFFABRRRQAUUUUAT2d7c6dexXlhPJb3MLB45YmKshHcEV9L/AAs+M1t4pEOjeI2jtdZwFjl+7Hd/T+6/t0Pb0HzDSqxVgykgg5BHasK1GNVWZrSqypu6PvWivDPhP8axdeToHjO4Cz8JbajIeJPRZD2Po3fvzyfXPEnirRvCemm+16+jtYudik5eU+iqOSf8mvEnRnCXK0evCrGceZM168g+JHxysdBWbSvCjx32p4KPdDDQ259v77D06DvnBFec/EL426r4sSXTtFWTS9JbKsA376df9sjoP9kfiTXl1d9DB/aqfccdbFdIfeWL29utSvpby/nkubmZi8ksrFmc+pNV6KmtLS4v7uK1soJLi4mYLHFEpZnJ7ADrXpaJHn7kNev/AAt+Ctx4iMGteKY3ttK4eK2OVkuh2J7qh9ep7Y611nwy+BkWlNFrHjSOO4vBhobDIaOE+r9mb26D37e115uIxf2af3noUcN9qf3Edvbw2ltHb2sSQwxKEjjjUKqKOAAB0FSUUV5Z6AUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAVdT0uy1nTZtP1S2jurSddskUgyGH9D79RXy/8T/hDe+Cpn1LSRJeaGzffxl7bP8L+3o34HBxn6qpssUc8LxTIskcilXRxkMD1BHcVvRrypPTYxq0Y1FrufBdFe6fE/wCBj23na14IhaSHl59NXlk9TF6j/Z6jtnoPDCCpIIwRwQe1e3TqxqxvE8mpTlTdpCUUUVqZhRRRQAUUUUAFFFFABRRRQAVYvNQvNQeN7+6muWjjEaGaQuVQDAUZ6AelV6KACiivdPhp8C7XUrG013xVdR3NtOglhsrWTKsD03uP/QV/PqKyqVY0o3kaU6cqjtE818FfDvXvHN5s0q38u0VsS3swIij9s/xH2H44HNfTfgP4ZaH4Dtc2SfatRdcS30yje3qFH8K+w/EmurtLO2sLOO1sYI7e3iXbHFEgVUHoAOlTV49bEzq6bI9Slh409d2FFFFcp0BRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABXlfxO+DFl4sWXVfD6x2Ws8s6/djuj/tf3W/2u/f1HqlFXTqSpy5okThGatI+E9S0y90fUZrDVLaS1uoG2yRSLgqf8PfvVWvsrx18O9F8ead5eox+Rexri3vYlHmR+x/vL/sn8MHmvlnxn4F1nwNqv2TWIMxOT5F1GCY5h7HsfUHkfka9qhiY1VbZnlVqEqevQ5uiiiuo5wooooAKKKKACiiigAooooAK9T+DnxRbwhqI0fWpidEun4djn7I5/iH+ye4/H1z5ZRUVIRqR5ZFwm4S5kfeqOsiK6MGVhlWByCPWlr5++B3xSMMkHhLxDP+6Y7NOuJD9w9oSfQ/w+nT0x9A14FWlKlLlZ7NOoqkboKKKKyNAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKo6zouneINLl07WLSO7tJhho5B+oPUEdiORV6imm07oN9z5Y+JXwa1Hwc0mpaN5moaLnJbGZLYf7YHUf7Q/HHfzCvvUgMpVgCCMEHvXiPxL+BMV75ur+CIkguOWl00HaknvH2U/7PT0x0PqUMZf3an3nnVsLb3ofcfPFFSXFvNaXElvdRPDNExSSORSrIw6gg9DUdekcAUUUUAFFFFABRRRQAUUUUAKCQQQcEdCK+oPgv8Tf+Es0z+xNamzrFmnyyMebqMfxf7w7+vX1x8vVb0rVLzRdVttS0ydoLq2kEkUi9iP5jsR3FYV6Kqxt1NqNV05XPuuiuY8AeNbTx14Wh1O32x3C/u7u3B/1UgHI+h6g+nuDXT14MouLsz2YtSV0FFFFSMKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigDgfiP8KNL8d2zXMWyx1lFxHdqvEmOiyAdR79R7jivlvxD4c1TwtrEuma3atbXEfIzyrr2ZT0IPrX3FXP+MfBWj+N9HNjrMGWXJguE4kgb1U/zHQ124fFOn7stUctbDqesdz4porqfHXgDV/AerfZtSTzbWQn7NeRr8kw/o3qp/Uc1y1exGSkro8qUXF2YUUUVQgooooAKKKKACiiigDsPhp46n8CeLI7wln0+4xFewj+JM/eA/vL1H4jvX2DbXMN7aRXVpKs0EyCSORDkOpGQQfTFfB1fQP7Pnj3zoW8H6nLl4w0unsx6r1eP8OWHtu9BXnYyjzL2i3R3YWrZ8jPdaKKK8k9IKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAoa3oeneItJm0zWbVLq1mGGRx0PYg9QR2Ir5W+Jfwt1DwFfefDvu9GmbEN1jlD/ckx0b36H8wPriq9/YWuqWE1lqFvHc206lJIpFyrCuihXlSfkYVqMaq8z4Ror0v4q/Ca58E3TalpIkuNClbhjy1sx6I/t6N+B56+aV7kJxnHmieRODg7MKKKKskKKKKACiiigAq3pepXWjata6jp8hiubWVZYnHZgc/iPaqlFLcNj7d8JeI7bxb4VsdZs8BbmPLpnPluOGX8CCP1rZr52/Zz8VG11m98M3Mn7q8U3FspPSRR8wH1Xn/gFfRNfP16fs6jie3Rqe0gmFFFFYmoUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQBFdWsF7aS2t5Ck8EyFJIpF3K6nqCO4r5b+LPwpm8FXjanpCPNoU78H7zWrH+Bj/AHfRvwPPJ+qahvbO21Gxms76BJ7adCkkUgyrqeoIrejWlSldbGNWkqkbPc+D6K9A+KnwzufAer+faB5tFunP2eY8mM9fLc+o7HuPocef17sJxnHmiePKLg7MKKKKskKKKKACiiigDQ0HWLjw/wCILHVrM/vrOdZVGcbsHlT7EZB+tfb2n3sOpabbX1q26C6hSaNvVWAI/Q18I19X/ArXf7Z+GFrBI26bTZXtXyedo+ZPw2sB/wABrzsdC8VM7sHO0nE9HoooryT0gooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAoa3otj4h0W50rVoRNa3KbHU9R6EHsQeQexFfH3jzwVfeBfEsum3uZIG+e1ucYE0eeD7EdCOx9sGvtCuW+IXgi08deFptOnCpdxgyWdwRzFJ/8AEnoR6e4FdWGrulKz2ZzV6PtI3W58ZUVZ1DT7rStSuLDUIWgubaQxyxt1VgcGq1e6eQFFFFABRRRQAV7f+zVq3la3rWkM3E9ulygPqjbT/wCjB+VeIV6D8Dr/AOw/FrTFJwlyksDfjGxH/jyisMRHmpSRtQly1Ez61ooor589oKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK87+JvxZsPAtu1jZBLzW5FykGflgB6NJj8wvU+w5q4QlOXLEmUlBXkdlrfiLSPDdmLrXdRt7GEnCmZ8Fz6KOrH2Fea6t+0X4Xs5mj0uyvtSA/5ahREh+m75vzAr521vXtU8R6m+oa3ey3ly/8ch+6PRR0Uew4rOr1KeBgl7+p508XJv3dD6Di/aZtDMRN4YmSPsyXgY/lsH866nQfjx4M1hlju7ifSZicAXkfyk/765A/HFfKdFaSwdJrTQhYqotz7yguIbq3Se1lSaGRQySRsGVh6gjgipK+NfBPxF13wNfo+nXDTWJbM1hKxMUg74H8Lf7Q/HI4r6t8IeL9L8a6DHqmjyEoTtlifh4XxyrD+vQ15tfDypa7o7qNeNTTqbtFFFcx0BRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAHiH7QPgJbuwXxdpkP8ApFuBHfqo+/H0WT6r0PsR/dr54r7xu7WC+s5rS7jWWCeNo5Y26MrDBB/A18WeNPDM3hDxhf6LMSy28n7pz/HGeUb8iM++a9fBVeaPI+h5mLp8r511MGiiivQOIKKKKACuk+Hdz9k+JXh2XOB/aMKE+zOFP865utbwq/l+MdGf+7fwH/yItTPWLRUdJI+4KKKK+aPeCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAOW+IvjOLwL4Pn1RlWS6YiG0iY8PKc4z7AAk/THevjvUL+61XUZ7/AFCZp7q4kMksj9WY9TXpfx/8TS6v4+Oko+bTSYxGqg8GRwGc/qq/8BryuvbwlJQp83Vnk4mo5zt0QUUUV2HKFFFFABXZ/DDxzP4G8Ww3Bc/2ddMsV9F2KZ+/j1XOR+I71xlFTKKlFxZUZOLuj71V1dFdGDKwyGByCKWvP/glr0mu/C+x+0SeZNYO1m7H0TBT/wAcZR+FegV87OLhJxfQ9yMuaKkgoooqCgooooAKKKKACiiigAooooAKKKKACvCf2kvDitbaX4kgT50Y2dwQOoOWQ/gQ4/EV7tXK/E3Rv7e+Gut2YXdILYzRDHO+P5wB9duPxrahPkqJmVaPPTaPjOiiivoTxAooooAK2PCUfneNdEj/AL+oQL+ci1j10nw8ga4+JXhxFGSNSgcj2Vwx/QVM9IsqOskfaVFFFfNHvBRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFIc7Tjg44oA+HvEt8+p+KtVvpW3NcXkshP1cmsunNned/3s859abX0yVlY8Bu7uFFFFMQUUUUAFFFFAH0F+zNdM1h4htCx2xywShfdg4J/8dFe6V8+fsz7v7U8QYPy+TBke+58f1r6DrwsWrVmexhv4SCiiiuU6AooooAKKKKACiiigAooooAKKKKACkdFkRkcBlYYIPcUtFAHwrq1i2ma1e2D/etbiSE59VYr/SqddT8TLYWvxQ8Qxj+K/kk/76O7+tctX0sXeKZ4MlaTQUUUVRIV6B8ELL7Z8XNJJGVtxLM34RsB+pFef17P+zbpRn8V6rqrDKWloIR/vSNn+UZ/OsMRLlpSZrRV6iR9H0UUV8+e2FFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAfC2sW7WeuX1s42tDcyRkehDEVSrr/itpx0v4qa9CV2iS6M49xIBJ/7NXIV9LB80UzwZK0mgoooqiQooooAKKKKAPoD9ma1xa+Iroj7728YP0Dk/+hCvdq8q/Z4077J8NpLpl+a9vpJAfVVCoP1Vq9VrwMS71pHs4dWpIKKKK5zcKKKKACiiigAooooAKKKKACiiigAooooA+Pfi9gfFrXtvTz1/9AWuLrpviNeC/wDiV4gnXlft8qAjuFbaD/47XM19HT0gl5HhVNZsKKKK0ICvqH9nrRzYfDqS/kTD6jdvIpx1RcIP1D/nXzLZ2k1/fQWdqm+e4kWKNR/EzHAH5mvuDQdJh0Hw/YaVbf6qzt0hBxjdtGCfqTz+Nefjp2go9ztwcbycuxfoooryD0wooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD5y/aS0X7P4l0rWY1wt5btA5A/jjOQT9Q4H/Aa8Wr68+MXhj/hJ/hvfJCm67sR9st8DklAdw/FSwx64r5Dr28HPmpW7Hk4qHLUv3Ciiiuw5QooooAKKK1fDGl/234s0rTCMrd3kULeyswBP5ZpN2VxpXdj6++Huk/2H8O9DsCu147NHkX0dxvb/wAeY10dAGBgcCivmpPmbbPeSsrBRRRSGFFFFABRRRQAUUUUAFFFFABRRRQAVR1vVItD0C+1S4/1VnbvMw9dqk4/HGKvV49+0N4rGm+Fbfw9bP8A6Rqj75gOqwoQf1bH4K1aUoe0momdSfJByPm6aZ7ieSaZi0kjF3Y9yTkmo6KK+jPDCiilVS7BVBZicAAck0AepfATwmdd8df2tcJm00dRLk9GmOQg/Dlv+Aj1r6jrjfhX4QPgzwHaWVwgW+uP9Iu/USN/D/wEAL9QfWuyrwMTU9pUbWx7NCnyQSCiiiuc3CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAAjIwa+QPiz4N/4Q3x1cwW8e3T7z/SbTA4Ck8p/wE5H0x619f1xPxU8CJ468IyQQKo1O0zNZOeMtjlCfRgMfUA9q6sNW9lPXZnPiKftIabo+P6KfLFJBM8UyNHJGxV0YYKkcEEetMr3TxwooooAK9A+CFiL34t6UWGUt1lmI+kbAfqRXn9eofs+yInxSVX+89lMqfX5T/IGsa7tSl6GtHWpH1Pqaiiivnj2wooooAKKKKACiiigAooooAKKKKACiiigCvqF/baXp1xf38qw21tG0ssjdFUDJNfGXjnxZc+NPF13rFyCiSHZbxE/6qIfdX+p9ya9I+OfxM/ta6k8KaHNmxt3/ANNmQ8TSA/cH+yp6+pHtz4tXsYOjyLnluzy8VV5nyrZBRRRXecYV638BfAv9veJD4g1CLNhpbjygw4ln6j/vnhvrtrgPB/hW+8Z+JrbR9NGGkO6WUjKwxj7zn6fqSB3r7I8PaDY+GNBtdI0qLy7a2TauerHuxPck5JrhxdbkjyLdnXhqXPLmeyNKiiivGPVCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKK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+LbLc2mz2GpJ2VJTG5/BgB/49XJ33wu8b6fn7R4av2x18iPzv/QM11RrU5bSRzulUjujk6Ku3Oj6nZSbLzTru3f+7LAyn9RVVopE++jL9RitLpmdmMoqWK1uJv8AUwSSf7iE1et/DeuXRxa6NqEx9I7V2/kKLpDs2ZlFdVafDLxresFh8MakpPTzoDF+r4rrNK/Z58X3u1tQksNNXusk3mOPwQEfrWcq1OO8kWqU5bI8pp0cbyyLHEjO7HCqoySfQCvo3Rf2btEtir67q93fsOTHAggQ+x+8T+BFeleHvBXhzwrGBoOkW9q+MGYLukP1dst+Ga5p42mvh1OiOEm/i0Pmvwr8EvFviR0kurX+x7NuTNegq5H+zH94/jge9e6eDPg/4Z8HSR3SQtqOopyLu6AOw+qL0X68n3rvaK8+riqlTTZHZTw8Ia7sKKKK5joCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD//Z", - "providedOnSchulstrukturknoten": 0 + "providedOnSchulstrukturknoten": 0, + "keycloakGroup": "Schulrecht A-Z-service", + "keycloakRole": "Schulrecht A-Z-user" }, { "id": 10, @@ -108,7 +128,9 @@ "kategorie": "HINWEISE", "logoMimeType": "image/svg+xml", "logoBase64": "PHN2ZyBpZD0nRWJlbmVfMScgZGF0YS1uYW1lPSdFYmVuZSAxJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAxNSAxNSc+PGRlZnM+PHN0eWxlPi5jbHMtMXtmaWxsOiMwMDMwNjQ7fTwvc3R5bGU+PC9kZWZzPjx0aXRsZT5zdXBwb3J0PC90aXRsZT48ZyBpZD0nRWJlbmVfMicgZGF0YS1uYW1lPSdFYmVuZSAyJz48cGF0aCBjbGFzcz0nY2xzLTEnIGQ9J00xMSw5Yy0xLDEtMSwyLTIsMlM3LDEwLDYsOSw0LDcsNCw2LDUsNSw2LDQsNCwwLDMsMCwwLDMsMCwzYzAsMiwyLjA1LDYuMDUsNCw4czYsNCw4LDRjMCwwLDMtMiwzLTNTMTIsOCwxMSw5WicvPjwvZz48L3N2Zz4=", - "providedOnSchulstrukturknoten": 0 + "providedOnSchulstrukturknoten": 0, + "keycloakGroup": "Helpdesk kontaktieren-service", + "keycloakRole": "Helpdesk kontaktieren-user" }, { "id": 11, @@ -118,7 +140,9 @@ "kategorie": "HINWEISE", "logoMimeType": "image/svg+xml", "logoBase64": "PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0ndXRmLTgnPz48IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMjUuMy4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAtLT48c3ZnIHZlcnNpb249JzEuMScgaWQ9J0ViZW5lXzEnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgeG1sbnM6eGxpbms9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsnIHg9JzBweCcgeT0nMHB4JyB2aWV3Qm94PScwIDAgMTUwIDE1MCcgc3R5bGU9J2VuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMTUwIDE1MDsnIHhtbDpzcGFjZT0ncHJlc2VydmUnPjxzdHlsZSB0eXBlPSd0ZXh0L2Nzcyc+IC5zdDB7ZmlsbDojODU4NjgxO30KPC9zdHlsZT48cGF0aCBjbGFzcz0nc3QwJyBkPSdNOTMuNSw2My40Yy0xLjgtMS45LTQuMy0yLjktNi44LTIuOGMtMC4xLDAtMC4yLDAtMC40LDAuMWMtNS43LDYuMy0xNS40LDYuNy0yMS43LDFjLTAuMy0wLjMtMC43LTAuNi0xLTEgYy0wLjEtMC4xLTAuMi0wLjEtMC40LTAuMWMtMi42LTAuMS01LjEsMS02LjgsMi45YzUuMSw1LDYuMiwxMi43LDIuNywxOC45YzMuNywwLjQsNi45LDIuNiw4LjgsNS43aDE0YzEuOS0zLjIsNS4xLTUuMyw4LjgtNS43IEM4Ny4zLDc2LjEsODguNCw2OC40LDkzLjUsNjMuNHonLz48ZWxsaXBzZSBjbGFzcz0nc3QwJyBjeD0nNzUnIGN5PSc1MCcgcng9JzEyLjUnIHJ5PScxMi43Jy8+PGVsbGlwc2UgY2xhc3M9J3N0MCcgY3g9JzEwNC4zJyBjeT0nNzQuNicgcng9JzEyLjUnIHJ5PScxMi43Jy8+PGVsbGlwc2UgY2xhc3M9J3N0MCcgY3g9JzQ1LjcnIGN5PSc3NC42JyByeD0nMTIuNScgcnk9JzEyLjcnLz48cGF0aCBjbGFzcz0nc3QwJyBkPSdNMTE2LDg1LjJjLTAuMSwwLTAuMiwwLTAuNCwwLjFjLTUuNyw2LjMtMTUuNCw2LjctMjEuNywxYy0wLjMtMC4zLTAuNy0wLjYtMS0xYy0wLjEtMC4xLTAuMi0wLjEtMC40LTAuMSBjLTkuNiwwLTExLjMsMTEuNS0xMS4zLDE4LjljMCw1LjMsMy41LDguNiw4LjcsOC42aDI4LjZjNS4yLDAsOC43LTMuMiw4LjctOC42QzEyNy4zLDk2LjcsMTI1LjYsODUuMiwxMTYsODUuMnonLz48cGF0aCBjbGFzcz0nc3QwJyBkPSdNNTcuNCw4NS4yYy0wLjEsMC0wLjIsMC0wLjQsMC4xYy01LjcsNi4zLTE1LjQsNi43LTIxLjcsMWMtMC4zLTAuMy0wLjctMC42LTEtMWMtMC4xLTAuMS0wLjItMC4xLTAuNC0wLjEgYy05LjYsMC0xMS4zLDExLjUtMTEuMywxOC45YzAsNS4zLDMuNSw4LjYsOC43LDguNkg2MGM1LjIsMCw4LjctMy4yLDguNy04LjZDNjguNyw5Ni43LDY2LjksODUuMiw1Ny40LDg1LjJ6Jy8+PC9zdmc+", - "providedOnSchulstrukturknoten": 0 + "providedOnSchulstrukturknoten": 0, + "keycloakGroup": "Psychosoziales Beratungsangebot-service", + "keycloakRole": "Psychosoziales Beratungsangebot-user" } ] } diff --git a/src/console/dbseed/domain/db-seed.service.spec.ts b/src/console/dbseed/domain/db-seed.service.spec.ts index 2c2837790..5b5c211fe 100644 --- a/src/console/dbseed/domain/db-seed.service.spec.ts +++ b/src/console/dbseed/domain/db-seed.service.spec.ts @@ -30,6 +30,7 @@ import { ServiceProvider } from '../../../modules/service-provider/domain/servic import { GleicheRolleAnKlasseWieSchuleError } from '../../../modules/personenkontext/specification/error/gleiche-rolle-an-klasse-wie-schule.error.js'; import { PersonenkontextFactory } from '../../../modules/personenkontext/domain/personenkontext.factory.js'; import { OrganisationRepository } from '../../../modules/organisation/persistence/organisation.repository.js'; +import { KeycloakGroupRoleService } from '../../../modules/keycloak-administration/domain/keycloak-group-role.service.js'; describe('DbSeedService', () => { let module: TestingModule; @@ -95,6 +96,10 @@ describe('DbSeedService', () => { provide: KeycloakUserService, useValue: createMock(), }, + { + provide: KeycloakGroupRoleService, + useValue: createMock(), + }, ], }).compile(); dbSeedService = module.get(DbSeedService); diff --git a/src/console/dbseed/domain/db-seed.service.ts b/src/console/dbseed/domain/db-seed.service.ts index d8ef11636..1933f2717 100644 --- a/src/console/dbseed/domain/db-seed.service.ts +++ b/src/console/dbseed/domain/db-seed.service.ts @@ -177,6 +177,8 @@ export class DbSeedService { referencedOrga.id, file.logoBase64 ? Buffer.from(file.logoBase64, 'base64') : undefined, file.logoMimeType, + file.keycloakGroup, + file.keycloakRole, ); const persistedServiceProvider: ServiceProvider = diff --git a/src/console/dbseed/file/service-provider-file.ts b/src/console/dbseed/file/service-provider-file.ts index badb3f1b1..d6f62cae6 100644 --- a/src/console/dbseed/file/service-provider-file.ts +++ b/src/console/dbseed/file/service-provider-file.ts @@ -19,4 +19,8 @@ export class ServiceProviderFile { public logoBase64?: string; public logoMimeType?: string; + + public keycloakGroup?: string; + + public keycloakRole?: string; } diff --git a/src/modules/keycloak-administration/domain/keycloak-group-role.service.spec.ts b/src/modules/keycloak-administration/domain/keycloak-group-role.service.spec.ts new file mode 100644 index 000000000..07c0af317 --- /dev/null +++ b/src/modules/keycloak-administration/domain/keycloak-group-role.service.spec.ts @@ -0,0 +1,274 @@ +import { faker } from '@faker-js/faker'; +import { createMock, DeepMocked } from '@golevelup/ts-jest'; +import { Test, TestingModule } from '@nestjs/testing'; +import { KeycloakAdminClient } from '@s3pweb/keycloak-admin-client-cjs'; + +import { ConfigTestModule, LoggingTestModule } from '../../../../test/utils/index.js'; +import { DomainError, KeycloakClientError } from '../../../shared/error/index.js'; +import { PersonService } from '../../person/domain/person.service.js'; +import { KeycloakAdministrationService } from './keycloak-admin-client.service.js'; +import { KeycloakGroupRoleService } from './keycloak-group-role.service.js'; + +describe('KeycloakGroupRoleService', () => { + let module: TestingModule; + let service: KeycloakGroupRoleService; + let adminService: DeepMocked; + let kcGroupsMock: DeepMocked; + let kcRolesMock: DeepMocked; + + beforeAll(async () => { + kcGroupsMock = createMock(); + kcRolesMock = createMock(); + + module = await Test.createTestingModule({ + imports: [ConfigTestModule, LoggingTestModule], + providers: [ + KeycloakGroupRoleService, + { + provide: KeycloakAdministrationService, + useValue: createMock({ + getAuthedKcAdminClient() { + return Promise.resolve({ + ok: true, + value: createMock({ + groups: kcGroupsMock, + roles: kcRolesMock, + }), + }); + }, + }), + }, + { + provide: PersonService, + useValue: createMock(), + }, + ], + }).compile(); + service = module.get(KeycloakGroupRoleService); + adminService = module.get(KeycloakAdministrationService); + }); + + beforeEach(() => { + jest.restoreAllMocks(); + }); + + afterAll(async () => { + await module.close(); + }); + + it('should be defined', () => { + expect(service).toBeDefined(); + }); + + describe('createGroup', () => { + const groupName: string = faker.internet.userName(); + const groupId: string = faker.string.numeric(); + + describe('when KeycloakAdminClient cannot be obtained', () => { + it('should return an error result', async () => { + adminService.getAuthedKcAdminClient.mockResolvedValueOnce({ + ok: false, + error: new KeycloakClientError('Authentication failed'), + }); + + const result: Result = await service.createGroup(groupName); + + expect(result).toEqual({ + ok: false, + error: new KeycloakClientError('Authentication failed'), + }); + }); + }); + + describe('when group already exists', () => { + it('should return an error result', async () => { + kcGroupsMock.find.mockResolvedValueOnce([{ name: groupName }]); + + const result: Result = await service.createGroup(groupName); + + expect(result).toEqual({ + ok: false, + error: new KeycloakClientError('Group name already exists'), + }); + }); + }); + + describe('when group is successfully created', () => { + it('should return the id of the created group', async () => { + kcGroupsMock.find.mockResolvedValueOnce([]); + kcGroupsMock.create.mockResolvedValueOnce({ id: groupId }); + + const result: Result = await service.createGroup(groupName); + + expect(result).toEqual({ + ok: true, + value: groupId, + }); + }); + }); + + describe('when an error occurs during group creation', () => { + it('should return an error result', async () => { + kcGroupsMock.find.mockResolvedValueOnce([]); + kcGroupsMock.create.mockRejectedValueOnce(new Error('Creation failed')); + + const result: Result = await service.createGroup(groupName); + + expect(result).toEqual({ + ok: false, + error: new KeycloakClientError('Could not create group'), + }); + }); + }); + }); + + describe('createRole', () => { + const roleName: string = faker.internet.userName(); + + describe('when KeycloakAdminClient cannot be obtained', () => { + it('should return an error result', async () => { + adminService.getAuthedKcAdminClient.mockResolvedValueOnce({ + ok: false, + error: new KeycloakClientError('Authentication failed'), + }); + + const result: Result = await service.createRole(roleName); + + expect(result).toEqual({ + ok: false, + error: new KeycloakClientError('Authentication failed'), + }); + }); + }); + + describe('when role already exists', () => { + it('should return an error result', async () => { + kcRolesMock.findOneByName.mockResolvedValueOnce({ name: roleName }); + + const result: Result = await service.createRole(roleName); + + expect(result).toEqual({ + ok: false, + error: new KeycloakClientError('Role name already exists'), + }); + }); + }); + + describe('when role is successfully created', () => { + it('should return the name of the created role', async () => { + kcRolesMock.findOneByName.mockResolvedValueOnce(undefined); + kcRolesMock.create.mockResolvedValueOnce({ roleName }); + + const result: Result = await service.createRole(roleName); + + expect(result).toEqual({ + ok: true, + value: roleName, + }); + }); + }); + + describe('when an error occurs during role creation', () => { + it('should return an error result', async () => { + kcRolesMock.findOneByName.mockResolvedValueOnce(undefined); + kcRolesMock.create.mockRejectedValueOnce(new Error('Creation failed')); + + const result: Result = await service.createRole(roleName); + + expect(result).toEqual({ + ok: false, + error: new KeycloakClientError('Could not create role'), + }); + }); + }); + }); + + describe('addRoleToGroup', () => { + const groupId: string = faker.string.uuid(); + const roleName: string = faker.internet.userName(); + + describe('when KeycloakAdminClient cannot be obtained', () => { + it('should return an error result', async () => { + adminService.getAuthedKcAdminClient.mockResolvedValueOnce({ + ok: false, + error: new KeycloakClientError('Authentication failed'), + }); + + const result: Result = await service.addRoleToGroup(groupId, roleName); + + expect(result).toEqual({ + ok: false, + error: new KeycloakClientError('Authentication failed'), + }); + }); + }); + + describe('when role does not exist or id/name is undefined', () => { + it('should return an error result', async () => { + adminService.getAuthedKcAdminClient.mockResolvedValueOnce({ + ok: true, + value: createMock({ + roles: { + findOneByName: jest.fn().mockResolvedValueOnce(undefined), + }, + }), + }); + + const result: Result = await service.addRoleToGroup(groupId, roleName); + + expect(result).toEqual({ + ok: false, + error: new KeycloakClientError('Role not found or id/name is undefined'), + }); + }); + }); + + describe('when role is successfully added to group', () => { + it('should return true', async () => { + adminService.getAuthedKcAdminClient.mockResolvedValueOnce({ + ok: true, + value: createMock({ + roles: { + findOneByName: jest.fn().mockResolvedValueOnce({ id: faker.string.uuid(), name: roleName }), + }, + groups: { + addRealmRoleMappings: jest.fn().mockResolvedValueOnce(undefined), + }, + }), + }); + + const result: Result = await service.addRoleToGroup(groupId, roleName); + + expect(result).toEqual({ + ok: true, + value: true, + }); + }); + }); + + describe('when an error occurs during adding role to group', () => { + it('should return an error result', async () => { + adminService.getAuthedKcAdminClient.mockResolvedValueOnce({ + ok: true, + value: createMock({ + roles: { + findOneByName: jest.fn().mockResolvedValueOnce({ id: faker.string.uuid(), name: roleName }), + }, + groups: { + addRealmRoleMappings: jest + .fn() + .mockRejectedValueOnce(new Error('Add role to group failed')), + }, + }), + }); + + const result: Result = await service.addRoleToGroup(groupId, roleName); + + expect(result).toEqual({ + ok: false, + error: new KeycloakClientError('Could not add role to group'), + }); + }); + }); + }); +}); diff --git a/src/modules/keycloak-administration/domain/keycloak-group-role.service.ts b/src/modules/keycloak-administration/domain/keycloak-group-role.service.ts new file mode 100644 index 000000000..93b685b48 --- /dev/null +++ b/src/modules/keycloak-administration/domain/keycloak-group-role.service.ts @@ -0,0 +1,119 @@ +import { Injectable } from '@nestjs/common'; +import { GroupRepresentation, KeycloakAdminClient, RoleRepresentation } from '@s3pweb/keycloak-admin-client-cjs'; +import { ClassLogger } from '../../../core/logging/class-logger.js'; +import { DomainError, KeycloakClientError } from '../../../shared/error/index.js'; +import { KeycloakAdministrationService } from './keycloak-admin-client.service.js'; + +export type FindUserFilter = { + username?: string; + email?: string; +}; + +@Injectable() +export class KeycloakGroupRoleService { + public constructor( + private readonly kcAdminService: KeycloakAdministrationService, + private readonly logger: ClassLogger, + ) {} + + public async createGroup(group: string): Promise> { + const kcAdminClientResult: Result = + await this.kcAdminService.getAuthedKcAdminClient(); + + if (!kcAdminClientResult.ok) { + return kcAdminClientResult; + } + + const groupName: string = group; + const [existingGroup]: GroupRepresentation[] = await kcAdminClientResult.value.groups.find({ + search: groupName, + }); + + if (existingGroup) { + this.logger.info(`Group already exists: ${groupName}`); + return { ok: false, error: new KeycloakClientError('Group name already exists') }; + } + + try { + const groupRepresentation: GroupRepresentation = { + name: groupName, + }; + + const response: { id: string } = await kcAdminClientResult.value.groups.create(groupRepresentation); + this.logger.info(`keycloack group created: ${groupName}`); + return { ok: true, value: response.id }; + } catch (err) { + this.logger.error(`Could not create group, message: ${JSON.stringify(err)} `); + return { ok: false, error: new KeycloakClientError('Could not create group') }; + } + } + + public async createRole(role: string): Promise> { + const kcAdminClientResult: Result = + await this.kcAdminService.getAuthedKcAdminClient(); + + if (!kcAdminClientResult.ok) { + return kcAdminClientResult; + } + + try { + const roleName: string = role; + const existingRole: RoleRepresentation | undefined = await kcAdminClientResult.value.roles.findOneByName({ + name: roleName, + }); + + if (existingRole) { + this.logger.info(`Role already exists: ${roleName}`); + return { ok: false, error: new KeycloakClientError('Role name already exists') }; + } + + const roleRepresentation: RoleRepresentation = { + name: roleName, + }; + + const response: { roleName: string } = await kcAdminClientResult.value.roles.create(roleRepresentation); + this.logger.info(`Keycloak role created: ${roleName}`); + return { ok: true, value: response.roleName }; + } catch (err) { + this.logger.error(`Could not create role, message: ${JSON.stringify(err)} `); + return { ok: false, error: new KeycloakClientError('Could not create role') }; + } + } + + public async addRoleToGroup(groupId: string, createdRole: string): Promise> { + const kcAdminClientResult: Result = + await this.kcAdminService.getAuthedKcAdminClient(); + + if (!kcAdminClientResult.ok) { + return kcAdminClientResult; + } + + try { + const roleName: string = createdRole; + const role: RoleRepresentation | undefined = await kcAdminClientResult.value.roles.findOneByName({ + name: roleName, + }); + + if (!role || !role.id || !role.name) { + this.logger.error(`Role not found or id/name is undefined for: ${roleName}`); + return { ok: false, error: new KeycloakClientError('Role not found or id/name is undefined') }; + } + + await kcAdminClientResult.value.groups.addRealmRoleMappings({ + id: groupId, + roles: [ + { + id: role.id, + name: role.name, + }, + ], + }); + + this.logger.info(`Role ${roleName} added to group with ID: ${groupId}`); + return { ok: true, value: true }; + } catch (err) { + this.logger.error(`Could not add role to group, message: ${JSON.stringify(err)}`); + return { ok: false, error: new KeycloakClientError('Could not add role to group') }; + } + } +} diff --git a/src/modules/keycloak-administration/keycloak-administration.module.ts b/src/modules/keycloak-administration/keycloak-administration.module.ts index e74b037e4..c5ee2407e 100644 --- a/src/modules/keycloak-administration/keycloak-administration.module.ts +++ b/src/modules/keycloak-administration/keycloak-administration.module.ts @@ -6,10 +6,17 @@ import { UserMapperProfile } from './domain/keycloak-client/user.mapper.profile. import { KeycloakUserService } from './domain/keycloak-user.service.js'; import { LoggerModule } from '../../core/logging/logger.module.js'; import { KeycloakConfigModule } from './keycloak-config.module.js'; +import { KeycloakGroupRoleService } from './domain/keycloak-group-role.service.js'; @Module({ imports: [LoggerModule.register(KeycloakAdministrationModule.name), KeycloakConfigModule], - providers: [UserMapperProfile, KeycloakAdminClient, KeycloakUserService, KeycloakAdministrationService], - exports: [KeycloakUserService], + providers: [ + UserMapperProfile, + KeycloakAdminClient, + KeycloakUserService, + KeycloakGroupRoleService, + KeycloakAdministrationService, + ], + exports: [KeycloakUserService, KeycloakGroupRoleService], }) export class KeycloakAdministrationModule {} diff --git a/src/modules/person/person.module.ts b/src/modules/person/person.module.ts index 131f46545..2606c2e0a 100644 --- a/src/modules/person/person.module.ts +++ b/src/modules/person/person.module.ts @@ -4,10 +4,7 @@ import { PersonService } from './domain/person.service.js'; import { PersonPersistenceMapperProfile } from './persistence/person-persistence.mapper.profile.js'; import { PersonRepo } from './persistence/person.repo.js'; import { UsernameGeneratorService } from './domain/username-generator.service.js'; -import { KeycloakUserService } from '../keycloak-administration/index.js'; import { KeycloakAdministrationModule } from '../keycloak-administration/keycloak-administration.module.js'; -import { KeycloakAdministrationService } from '../keycloak-administration/domain/keycloak-admin-client.service.js'; -import { KeycloakAdminClient } from '@s3pweb/keycloak-admin-client-cjs'; import { PersonRepository } from './persistence/person.repository.js'; import { PersonFactory } from './domain/person.factory.js'; import { DBiamPersonenkontextRepo } from '../personenkontext/persistence/dbiam-personenkontext.repo.js'; @@ -17,9 +14,10 @@ import { OrganisationRepo } from '../organisation/persistence/organisation.repo. import { RolleFactory } from '../rolle/domain/rolle.factory.js'; import { ServiceProviderRepo } from '../service-provider/repo/service-provider.repo.js'; import { OrganisationRepository } from '../organisation/persistence/organisation.repository.js'; +import { EventModule } from '../../core/eventbus/event.module.js'; @Module({ - imports: [KeycloakAdministrationModule, LoggerModule.register(PersonModule.name)], + imports: [KeycloakAdministrationModule, LoggerModule.register(PersonModule.name), EventModule], providers: [ PersonPersistenceMapperProfile, PersonRepo, @@ -28,9 +26,6 @@ import { OrganisationRepository } from '../organisation/persistence/organisation PersonService, PersonFactory, UsernameGeneratorService, - KeycloakUserService, - KeycloakAdministrationService, - KeycloakAdminClient, PersonenkontextFactory, RolleRepo, OrganisationRepo, diff --git a/src/modules/personenkontext/persistence/personenkontext.repo.integration-spec.ts b/src/modules/personenkontext/persistence/personenkontext.repo.integration-spec.ts index 36072844f..fc9db828d 100644 --- a/src/modules/personenkontext/persistence/personenkontext.repo.integration-spec.ts +++ b/src/modules/personenkontext/persistence/personenkontext.repo.integration-spec.ts @@ -23,6 +23,7 @@ import { Rolle as RolleAggregate } from '../../rolle/domain/rolle.js'; import { RolleFactory } from '../../rolle/domain/rolle.factory.js'; import { ServiceProviderRepo } from '../../service-provider/repo/service-provider.repo.js'; import { OrganisationRepository } from '../../organisation/persistence/organisation.repository.js'; +import { EventModule } from '../../../core/eventbus/event.module.js'; describe('PersonenkontextRepo', () => { let module: TestingModule; @@ -34,7 +35,12 @@ describe('PersonenkontextRepo', () => { beforeAll(async () => { module = await Test.createTestingModule({ - imports: [ConfigTestModule, DatabaseTestModule.forRoot({ isDatabaseRequired: true }), MapperTestModule], + imports: [ + ConfigTestModule, + DatabaseTestModule.forRoot({ isDatabaseRequired: true }), + MapperTestModule, + EventModule, + ], providers: [ PersonPersistenceMapperProfile, PersonenkontextRepo, diff --git a/src/modules/personenkontext/persistence/personenkontext.scope.integration-spec.ts b/src/modules/personenkontext/persistence/personenkontext.scope.integration-spec.ts index a8b6fd482..3b08d3ca2 100644 --- a/src/modules/personenkontext/persistence/personenkontext.scope.integration-spec.ts +++ b/src/modules/personenkontext/persistence/personenkontext.scope.integration-spec.ts @@ -23,6 +23,7 @@ import { RolleFactory } from '../../rolle/domain/rolle.factory.js'; import { ServiceProviderRepo } from '../../service-provider/repo/service-provider.repo.js'; import { faker } from '@faker-js/faker'; import { OrganisationRepository } from '../../organisation/persistence/organisation.repository.js'; +import { EventModule } from '../../../core/eventbus/event.module.js'; describe('PersonenkontextScope', () => { let module: TestingModule; @@ -33,7 +34,12 @@ describe('PersonenkontextScope', () => { beforeAll(async () => { module = await Test.createTestingModule({ - imports: [ConfigTestModule, DatabaseTestModule.forRoot({ isDatabaseRequired: true }), MapperTestModule], + imports: [ + ConfigTestModule, + DatabaseTestModule.forRoot({ isDatabaseRequired: true }), + MapperTestModule, + EventModule, + ], providers: [ PersonPersistenceMapperProfile, RolleFactory, diff --git a/src/modules/rolle/repo/rolle.repo.spec.ts b/src/modules/rolle/repo/rolle.repo.spec.ts index 53bbdab5a..1c3d67e3d 100644 --- a/src/modules/rolle/repo/rolle.repo.spec.ts +++ b/src/modules/rolle/repo/rolle.repo.spec.ts @@ -7,12 +7,14 @@ import { DEFAULT_TIMEOUT_FOR_TESTCONTAINERS, DatabaseTestModule, DoFactory, + LoggingTestModule, } from '../../../../test/utils/index.js'; import { Rolle } from '../domain/rolle.js'; import { RolleRepo } from './rolle.repo.js'; import { RolleFactory } from '../domain/rolle.factory.js'; import { ServiceProviderRepo } from '../../service-provider/repo/service-provider.repo.js'; import { ServiceProvider } from '../../service-provider/domain/service-provider.js'; +import { EventService } from '../../../core/eventbus/index.js'; import { OrganisationRepository } from '../../organisation/persistence/organisation.repository.js'; describe('RolleRepo', () => { @@ -24,8 +26,8 @@ describe('RolleRepo', () => { beforeAll(async () => { module = await Test.createTestingModule({ - imports: [ConfigTestModule, DatabaseTestModule.forRoot({ isDatabaseRequired: true })], - providers: [RolleRepo, RolleFactory, ServiceProviderRepo, OrganisationRepository], + imports: [ConfigTestModule, LoggingTestModule, DatabaseTestModule.forRoot({ isDatabaseRequired: true })], + providers: [RolleRepo, RolleFactory, ServiceProviderRepo, OrganisationRepository, EventService], }).compile(); sut = module.get(RolleRepo); diff --git a/src/modules/service-provider/domain/service-provider.factory.spec.ts b/src/modules/service-provider/domain/service-provider.factory.spec.ts index 6a1703017..3f6f01b88 100644 --- a/src/modules/service-provider/domain/service-provider.factory.spec.ts +++ b/src/modules/service-provider/domain/service-provider.factory.spec.ts @@ -35,6 +35,8 @@ describe('ServiceProviderFactory', () => { const created: Date = faker.date.past(); const updated: Date = faker.date.recent(); const id: string = faker.string.uuid(); + const keycloakGroup: string = faker.string.alpha(); + const keycloakRole: string = faker.string.alpha(); const example: ServiceProvider = { id: id, createdAt: created, @@ -46,6 +48,8 @@ describe('ServiceProviderFactory', () => { providedOnSchulstrukturknoten: ssk, logo: undefined, logoMimeType: undefined, + keycloakGroup: keycloakGroup, + keycloakRole: keycloakRole, }; const serviceProvider: ServiceProvider = sut.construct( id, @@ -58,6 +62,8 @@ describe('ServiceProviderFactory', () => { ssk, undefined, undefined, + keycloakGroup, + keycloakRole, ); expect(serviceProvider).toEqual(example); diff --git a/src/modules/service-provider/domain/service-provider.factory.ts b/src/modules/service-provider/domain/service-provider.factory.ts index 9c8143239..550560e82 100644 --- a/src/modules/service-provider/domain/service-provider.factory.ts +++ b/src/modules/service-provider/domain/service-provider.factory.ts @@ -15,6 +15,8 @@ export class ServiceProviderFactory { providedOnSchulstrukturknoten: string, logo: Buffer | undefined, logoMimeType: string | undefined, + keycloakGroup: string | undefined, + keycloakRole: string | undefined, ): ServiceProvider { return ServiceProvider.construct( id, @@ -27,6 +29,8 @@ export class ServiceProviderFactory { providedOnSchulstrukturknoten, logo, logoMimeType, + keycloakGroup, + keycloakRole, ); } @@ -38,6 +42,8 @@ export class ServiceProviderFactory { providedOnSchulstrukturknoten: string, logo: Buffer | undefined, logoMimeType: string | undefined, + keycloakGroup: string | undefined, + keycloakRole: string | undefined, ): ServiceProvider { return ServiceProvider.createNew( name, @@ -47,6 +53,8 @@ export class ServiceProviderFactory { providedOnSchulstrukturknoten, logo, logoMimeType, + keycloakGroup, + keycloakRole, ); } } diff --git a/src/modules/service-provider/domain/service-provider.ts b/src/modules/service-provider/domain/service-provider.ts index 2dc281688..3b0f3b603 100644 --- a/src/modules/service-provider/domain/service-provider.ts +++ b/src/modules/service-provider/domain/service-provider.ts @@ -12,6 +12,8 @@ export class ServiceProvider { public providedOnSchulstrukturknoten: string, public logo: Buffer | undefined, public logoMimeType: string | undefined, + public keycloakGroup: string | undefined, + public keycloakRole: string | undefined, ) {} public static construct( @@ -25,6 +27,8 @@ export class ServiceProvider { providedOnSchulstrukturknoten: string, logo: Buffer | undefined, logoMimeType: string | undefined, + keycloakGroup: string | undefined, + keycloakRole: string | undefined, ): ServiceProvider { return new ServiceProvider( id, @@ -37,6 +41,8 @@ export class ServiceProvider { providedOnSchulstrukturknoten, logo, logoMimeType, + keycloakGroup, + keycloakRole, ); } @@ -48,6 +54,8 @@ export class ServiceProvider { providedOnSchulstrukturknoten: string, logo: Buffer | undefined, logoMimeType: string | undefined, + keycloakGroup: string | undefined, + keycloakRole: string | undefined, ): ServiceProvider { return new ServiceProvider( undefined, @@ -60,6 +68,8 @@ export class ServiceProvider { providedOnSchulstrukturknoten, logo, logoMimeType, + keycloakGroup, + keycloakRole, ); } } diff --git a/src/modules/service-provider/repo/service-provider-event-handler.spec.ts b/src/modules/service-provider/repo/service-provider-event-handler.spec.ts new file mode 100644 index 000000000..22983f42e --- /dev/null +++ b/src/modules/service-provider/repo/service-provider-event-handler.spec.ts @@ -0,0 +1,75 @@ +import { DeepMocked, createMock } from '@golevelup/ts-jest'; +import { ClassLogger } from '../../../core/logging/class-logger.js'; +import { KeycloakClientError } from '../../../shared/error/index.js'; +import { CreateGroupAndRoleEvent } from '../../../shared/events/kc-group-and-role-event.js'; +import { KeycloakGroupRoleService } from '../../keycloak-administration/domain/keycloak-group-role.service.js'; +import { CreateGroupAndRoleHandler } from './service-provider-event-handler.js'; + +describe('CreateGroupAndRoleHandler', () => { + let keycloakGroupRoleServiceMock: DeepMocked; + let loggerMock: DeepMocked; + let createGroupAndRoleHandler: CreateGroupAndRoleHandler; + + beforeEach(() => { + keycloakGroupRoleServiceMock = createMock(); + loggerMock = createMock(); + createGroupAndRoleHandler = new CreateGroupAndRoleHandler(keycloakGroupRoleServiceMock, loggerMock); + }); + + describe('handleCreateGroupAndRoleEvent', () => { + const groupName: string = 'testGroup'; + const roleName: string = 'testRole'; + const groupId: string = 'groupId'; + const encodedRoleName: string = encodeURIComponent(roleName); + const event: CreateGroupAndRoleEvent = new CreateGroupAndRoleEvent(groupName, roleName); + + it('should successfully create group, role, and add role to group', async () => { + keycloakGroupRoleServiceMock.createGroup.mockResolvedValue({ ok: true, value: groupId }); + keycloakGroupRoleServiceMock.createRole.mockResolvedValue({ ok: true, value: encodedRoleName }); + keycloakGroupRoleServiceMock.addRoleToGroup.mockResolvedValue({ ok: true, value: true }); + + await createGroupAndRoleHandler.handleCreateGroupAndRoleEvent(event); + + expect(keycloakGroupRoleServiceMock.createGroup).toHaveBeenCalledWith(groupName); + expect(keycloakGroupRoleServiceMock.createRole).toHaveBeenCalledWith(roleName); + expect(keycloakGroupRoleServiceMock.addRoleToGroup).toHaveBeenCalledWith(groupId, roleName); + expect(loggerMock.error).not.toHaveBeenCalled(); + }); + + it('should log an error if creating the group fails', async () => { + keycloakGroupRoleServiceMock.createGroup.mockResolvedValue({ + ok: false, + error: new KeycloakClientError('Group creation failed'), + }); + + await createGroupAndRoleHandler.handleCreateGroupAndRoleEvent(event); + + expect(loggerMock.error).toHaveBeenCalledWith(expect.stringContaining('Could not create group')); + }); + + it('should log an error if creating the role fails', async () => { + keycloakGroupRoleServiceMock.createGroup.mockResolvedValue({ ok: true, value: groupId }); + keycloakGroupRoleServiceMock.createRole.mockResolvedValue({ + ok: false, + error: new KeycloakClientError('Role creation failed'), + }); + + await createGroupAndRoleHandler.handleCreateGroupAndRoleEvent(event); + + expect(loggerMock.error).toHaveBeenCalledWith(expect.stringContaining('Could not create role')); + }); + + it('should log an error if adding role to group fails', async () => { + keycloakGroupRoleServiceMock.createGroup.mockResolvedValue({ ok: true, value: groupId }); + keycloakGroupRoleServiceMock.createRole.mockResolvedValue({ ok: true, value: encodedRoleName }); + keycloakGroupRoleServiceMock.addRoleToGroup.mockResolvedValue({ + ok: false, + error: new KeycloakClientError('Add role to group failed'), + }); + + await createGroupAndRoleHandler.handleCreateGroupAndRoleEvent(event); + + expect(loggerMock.error).toHaveBeenCalledWith(expect.stringContaining('Could not add role to group')); + }); + }); +}); diff --git a/src/modules/service-provider/repo/service-provider-event-handler.ts b/src/modules/service-provider/repo/service-provider-event-handler.ts new file mode 100644 index 000000000..f5092aa54 --- /dev/null +++ b/src/modules/service-provider/repo/service-provider-event-handler.ts @@ -0,0 +1,41 @@ +import { Injectable } from '@nestjs/common'; +import { EventHandler } from '../../../core/eventbus/decorators/event-handler.decorator.js'; +import { ClassLogger } from '../../../core/logging/class-logger.js'; +import { DomainError } from '../../../shared/error/domain.error.js'; +import { CreateGroupAndRoleEvent } from '../../../shared/events/kc-group-and-role-event.js'; +import { KeycloakGroupRoleService } from '../../keycloak-administration/domain/keycloak-group-role.service.js'; + +@Injectable() +export class CreateGroupAndRoleHandler { + public constructor( + private readonly keycloakGroupRoleService: KeycloakGroupRoleService, + private readonly logger: ClassLogger, + ) {} + + @EventHandler(CreateGroupAndRoleEvent) + public async handleCreateGroupAndRoleEvent(event: CreateGroupAndRoleEvent): Promise { + this.logger.info(`Received CreateGroupAndRoleEvent, groupName: ${event.groupName}`); + + const group: Result = await this.keycloakGroupRoleService.createGroup(event.groupName); + if (!group.ok) { + this.logger.error(`Could not create group, error: ${group.error.message}`); + return; + } + const groupId: string = group.value; + + const role: Result = await this.keycloakGroupRoleService.createRole(event.roleName); + if (!role.ok) { + this.logger.error(`Could not create role, error: ${role.error.message}`); + return; + } + const roleName: string = decodeURIComponent(role.value); + + const addRoleToGroup: Result = await this.keycloakGroupRoleService.addRoleToGroup( + groupId, + roleName, + ); + if (!addRoleToGroup.ok) { + this.logger.error(`Could not add role to group, message: ${addRoleToGroup.error.message}`); + } + } +} diff --git a/src/modules/service-provider/repo/service-provider.entity.ts b/src/modules/service-provider/repo/service-provider.entity.ts index 7b3b7747a..786b176fe 100644 --- a/src/modules/service-provider/repo/service-provider.entity.ts +++ b/src/modules/service-provider/repo/service-provider.entity.ts @@ -25,4 +25,10 @@ export class ServiceProviderEntity extends TimestampedEntity { @Property({ nullable: true }) public logoMimeType?: string; + + @Property({ nullable: true }) + public keycloakGroup?: string; + + @Property({ nullable: true }) + public keycloakRole?: string; } diff --git a/src/modules/service-provider/repo/service-provider.repo.spec.ts b/src/modules/service-provider/repo/service-provider.repo.spec.ts index 3808b30d5..a4de29eca 100644 --- a/src/modules/service-provider/repo/service-provider.repo.spec.ts +++ b/src/modules/service-provider/repo/service-provider.repo.spec.ts @@ -6,9 +6,12 @@ import { DEFAULT_TIMEOUT_FOR_TESTCONTAINERS, DatabaseTestModule, DoFactory, + LoggingTestModule, } from '../../../../test/utils/index.js'; import { ServiceProvider } from '../domain/service-provider.js'; import { ServiceProviderRepo } from './service-provider.repo.js'; +import { EventService } from '../../../core/eventbus/index.js'; +import { createMock } from '@golevelup/ts-jest'; describe('ServiceProviderRepo', () => { let module: TestingModule; @@ -18,14 +21,19 @@ describe('ServiceProviderRepo', () => { beforeAll(async () => { module = await Test.createTestingModule({ - imports: [ConfigTestModule, DatabaseTestModule.forRoot({ isDatabaseRequired: true })], - providers: [ServiceProviderRepo], + imports: [ConfigTestModule, DatabaseTestModule.forRoot({ isDatabaseRequired: true }), LoggingTestModule], + providers: [ + ServiceProviderRepo, + { + provide: EventService, + useValue: createMock(), + }, + ], }).compile(); sut = module.get(ServiceProviderRepo); orm = module.get(MikroORM); em = module.get(EntityManager); - await DatabaseTestModule.setupDatabase(orm); }, DEFAULT_TIMEOUT_FOR_TESTCONTAINERS); @@ -63,6 +71,18 @@ describe('ServiceProviderRepo', () => { expect(savedServiceProvider).toEqual(existingServiceProvider); }); + it('should publish an event when a new service-provider is saved', async () => { + const serviceProvider: ServiceProvider = DoFactory.createServiceProvider(false); + + serviceProvider.keycloakGroup = 'someGroup'; + serviceProvider.keycloakRole = 'someRole'; + + const mockEventService: EventService = module.get(EventService); + + await sut.save(serviceProvider); + + expect(mockEventService.publish).toHaveBeenCalledTimes(1); + }); }); describe('find', () => { diff --git a/src/modules/service-provider/repo/service-provider.repo.ts b/src/modules/service-provider/repo/service-provider.repo.ts index 90e7e1398..6f704c19c 100644 --- a/src/modules/service-provider/repo/service-provider.repo.ts +++ b/src/modules/service-provider/repo/service-provider.repo.ts @@ -3,6 +3,8 @@ import { Injectable } from '@nestjs/common'; import { ServiceProvider } from '../domain/service-provider.js'; import { ServiceProviderEntity } from './service-provider.entity.js'; +import { CreateGroupAndRoleEvent } from '../../../shared/events/kc-group-and-role-event.js'; +import { EventService } from '../../../core/eventbus/index.js'; /** * @deprecated Not for use outside of service-provider-repo, export will be removed at a later date @@ -20,6 +22,8 @@ export function mapAggregateToData( providedOnSchulstrukturknoten: serviceProvider.providedOnSchulstrukturknoten, logo: serviceProvider.logo, logoMimeType: serviceProvider.logoMimeType, + keycloakGroup: serviceProvider.keycloakGroup, + keycloakRole: serviceProvider.keycloakRole, }; } @@ -35,6 +39,8 @@ function mapEntityToAggregate(entity: ServiceProviderEntity): ServiceProvider>> { const exclude: readonly ['logo'] | undefined = options?.withLogo ? undefined : ['logo']; @@ -84,6 +93,12 @@ export class ServiceProviderRepo { await this.em.persistAndFlush(serviceProviderEntity); + if (serviceProviderEntity.keycloakGroup && serviceProviderEntity.keycloakRole) { + this.eventService.publish( + new CreateGroupAndRoleEvent(serviceProviderEntity.keycloakGroup, serviceProviderEntity.keycloakRole), + ); + } + return mapEntityToAggregate(serviceProviderEntity); } diff --git a/src/modules/service-provider/service-provider.module.spec.ts b/src/modules/service-provider/service-provider.module.spec.ts index ac8d7d705..83aac694d 100644 --- a/src/modules/service-provider/service-provider.module.spec.ts +++ b/src/modules/service-provider/service-provider.module.spec.ts @@ -1,5 +1,5 @@ import { Test, TestingModule } from '@nestjs/testing'; -import { ConfigTestModule, DatabaseTestModule } from '../../../test/utils/index.js'; +import { ConfigTestModule, DatabaseTestModule, MapperTestModule } from '../../../test/utils/index.js'; import { ServiceProviderModule } from './service-provider.module.js'; describe('ServiceProviderModule', () => { @@ -7,7 +7,7 @@ describe('ServiceProviderModule', () => { beforeAll(async () => { module = await Test.createTestingModule({ - imports: [ConfigTestModule, DatabaseTestModule.forRoot(), ServiceProviderModule], + imports: [ConfigTestModule, DatabaseTestModule.forRoot(), ServiceProviderModule, MapperTestModule], }).compile(); }); diff --git a/src/modules/service-provider/service-provider.module.ts b/src/modules/service-provider/service-provider.module.ts index 74b75cf1e..9fd0f5824 100644 --- a/src/modules/service-provider/service-provider.module.ts +++ b/src/modules/service-provider/service-provider.module.ts @@ -4,9 +4,14 @@ import { LoggerModule } from '../../core/logging/logger.module.js'; import { ServiceProviderRepo } from './repo/service-provider.repo.js'; import { ServiceProviderFactory } from './domain/service-provider.factory.js'; +import { KeycloakAdministrationModule } from '../keycloak-administration/keycloak-administration.module.js'; + +import { CreateGroupAndRoleHandler } from './repo/service-provider-event-handler.js'; +import { EventModule } from '../../core/eventbus/event.module.js'; + @Module({ - imports: [LoggerModule.register(ServiceProviderModule.name)], - providers: [ServiceProviderRepo, ServiceProviderFactory], + imports: [LoggerModule.register(ServiceProviderModule.name), KeycloakAdministrationModule, EventModule], + providers: [ServiceProviderRepo, ServiceProviderFactory, CreateGroupAndRoleHandler], exports: [ServiceProviderRepo, ServiceProviderFactory], }) export class ServiceProviderModule {} diff --git a/src/shared/events/kc-group-and-role-event.ts b/src/shared/events/kc-group-and-role-event.ts new file mode 100644 index 000000000..c3a6b9f18 --- /dev/null +++ b/src/shared/events/kc-group-and-role-event.ts @@ -0,0 +1,10 @@ +import { BaseEvent } from './base-event.js'; + +export class CreateGroupAndRoleEvent extends BaseEvent { + public constructor( + public readonly groupName: string, + public readonly roleName: string, + ) { + super(); + } +}