diff --git a/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/auth/etc/nevis/k8s-nevisauth-ac27dd7daad0ca2b7229bfaf.yaml b/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/auth/etc/nevis/k8s-nevisauth-ac27dd7daad0ca2b7229bfaf.yaml
index 674fdf7..40f18fa 100644
--- a/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/auth/etc/nevis/k8s-nevisauth-ac27dd7daad0ca2b7229bfaf.yaml
+++ b/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/auth/etc/nevis/k8s-nevisauth-ac27dd7daad0ca2b7229bfaf.yaml
@@ -11,8 +11,8 @@ metadata:
spec:
type: "NevisAuth"
replicas: 1
- version: "8.2411.3"
- gitInitVersion: "1.3.0"
+ version: "8.2505.5"
+ gitInitVersion: "1.4.0"
runAsNonRoot: true
ports:
management: 9000
@@ -39,13 +39,14 @@ spec:
management:
httpGet:
path: "/nevisauth/liveness"
+ initialDelaySeconds: 50
periodSeconds: 5
timeoutSeconds: 6
- failureThreshold: 50
+ failureThreshold: 30
podDisruptionBudget:
maxUnavailable: "50%"
git:
- tag: "r-153c4f15e7495a3864d7ae40ed58b6b28b543733"
+ tag: "r-a067bc8dc88872382ee82b06c8c85326557df02e"
dir: "DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/auth"
credentials: "git-credentials"
keystores:
diff --git a/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/auth/var/opt/nevisauth/default/conf/IdentProcessAndDispatch.groovy b/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/auth/var/opt/nevisauth/default/conf/IdentProcessAndDispatch.groovy
index 2881bab..ec191d0 100644
--- a/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/auth/var/opt/nevisauth/default/conf/IdentProcessAndDispatch.groovy
+++ b/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/auth/var/opt/nevisauth/default/conf/IdentProcessAndDispatch.groovy
@@ -1,78 +1,79 @@
-import groovy.json.JsonSlurper
-
-def cleanSession(boolean rpcodeToo) {
- def s = request.getAuthSession(true)
-
- if (rpcodeToo) {
- s.removeAttribute('agov.ident.rpcode.backup')
- s.removeAttribute('agov.ident.rpcode')
- s.removeAttribute('agov.ident.entityId')
- }
- def sessionKeySet = new HashSet(session.keySet())
- sessionKeySet.each { key ->
- if ( key ==~ /ch.nevis.auth.saml..*/ ) {
- LOG.debug("Deleted session attribute '${key}'")
- s.removeAttribute(key)
- }
- }
-}
-
-// for auditing
-def sourceIp = request.getLoginContext()['connection.HttpHeader.X-Real-IP'] ?: 'unknown'
-def userAgent = request.getLoginContext()['connection.HttpHeader.user-agent'] ?: request.getLoginContext()['connection.HttpHeader.User-Agent'] ?: 'unknown'
-def referer = request.getLoginContext()['connection.HttpHeader.referer'] ?: request.getLoginContext()['connection.HttpHeader' +
- '.Referer'] ?: '-'
-def origin = request.getLoginContext()['connection.HttpHeader.origin'] ?: request.getLoginContext()['connection.HttpHeader' +
- '.Origin'] ?: '-'
-
-// 0) clean up, if we have a SAML Response in session
-if (session['ch.nevis.auth.saml.response.id']) {
- // keep rpcode in session, if retrying after SAML error
- def keepRpcode = session['ch.nevis.auth.saml.response.statusCode'] == 'urn:oasis:names:tc:SAML:2.0:status:Responder'
- cleanSession(!keepRpcode)
-}
-
-// 1) we need to know the code of the RP
-def rpcode = inargs['rpcode'] ?: inargs['RelayState'] ?: session['agov.ident.rpcode']
-def rpcodeBackup = session['agov.ident.rpcode']
-def rpentity = '-'
-
-if (rpcode)
-{
- if (rpcodeBackup) {
- response.setSessionAttribute('agov.ident.rpcode.backup', rpcodeBackup)
- }
- response.setSessionAttribute('agov.ident.rpcode', rpcode)
-} else {
- cleanSession(true)
- LOG.info("Event='IDENT-INVALIDREQ', rpcode='missing', SourceIp=${sourceIp}, UserAgent='${userAgent}', Referer='${referer}', Origin='${origin}'")
- response.setResult('inavlidurl')
- return
-}
-
-// 2) load rp settings in session (if needed)
-if (rpcode != rpcodeBackup) {
- def slurper = new JsonSlurper()
- def rpMap = slurper.parseText(parameters['rpcode.list'])
- LOG.debug(">>> rpMaP: ${rpMap}")
- if (!rpMap[rpcode]) {
- cleanSession(true)
- LOG.info("Event='IDENT-INVALIDREQ', rpcode='${rpcode}', SourceIp=${sourceIp}, UserAgent='${userAgent}', Referer='${referer}', Origin='${origin}'")
- response.setResult('inavlidurl')
- return
- }
- rpentity=rpMap[rpcode]
- response.setSessionAttribute('agov.ident.entityId', rpMap[rpcode])
-}
-
-// 3) if we have a response ...
-if (inargs['SAMLResponse']) {
- response.setResult('processResponse')
- return
-}
-
-// 4) otherwise
-LOG.info("Event='IDENT-INITREQ', rpcode='${rpcode}', rpentity='${rpentity}', SourceIp=${sourceIp}, UserAgent='${userAgent}', Referer='${referer}', " +
- "Origin='${origin}'")
-response.setResult('sendAuthnRequest')
-return
+import groovy.json.JsonSlurper
+
+def cleanSession(boolean rpcodeToo) {
+ def s = request.getAuthSession(true)
+
+ if (rpcodeToo) {
+ s.removeAttribute('agov.ident.rpcode.backup')
+ s.removeAttribute('agov.ident.rpcode')
+ s.removeAttribute('agov.ident.entityId')
+ }
+ def sessionKeySet = new HashSet(session.keySet())
+ sessionKeySet.each { key ->
+ if ( key ==~ /ch.nevis.auth.saml..*/ ) {
+ LOG.debug("Deleted session attribute '${key}'")
+ s.removeAttribute(key)
+ }
+ }
+}
+
+// for auditing
+def sourceIp = request.getLoginContext()['connection.HttpHeader.X-Real-IP'] ?: 'unknown'
+def userAgent = request.getLoginContext()['connection.HttpHeader.user-agent'] ?: request.getLoginContext()['connection.HttpHeader.User-Agent'] ?: 'unknown'
+def referer = request.getLoginContext()['connection.HttpHeader.referer'] ?: request.getLoginContext()['connection.HttpHeader' +
+ '.Referer'] ?: '-'
+def origin = request.getLoginContext()['connection.HttpHeader.origin'] ?: request.getLoginContext()['connection.HttpHeader' +
+ '.Origin'] ?: '-'
+
+// 0) clean up, if we have a SAML Response in session
+if (session['ch.nevis.auth.saml.response.id']) {
+ // keep rpcode in session, if retrying after SAML error
+ def keepRpcode = session['ch.nevis.auth.saml.response.statusCode'] == 'urn:oasis:names:tc:SAML:2.0:status:Responder'
+ cleanSession(!keepRpcode)
+}
+
+// 1) we need to know the code of the RP
+def rpcode = inargs['rpcode'] ?: inargs['RelayState'] ?: session['agov.ident.rpcode']
+def rpcodeBackup = session['agov.ident.rpcode']
+def rpentity = '-'
+
+if (rpcode)
+{
+ if (rpcodeBackup) {
+ response.setSessionAttribute('agov.ident.rpcode.backup', rpcodeBackup)
+ }
+ response.setSessionAttribute('agov.ident.rpcode', rpcode)
+} else {
+ cleanSession(true)
+ LOG.info("Event='IDENT-INVALIDREQ', rpcode='missing', SourceIp=${sourceIp}, UserAgent='${userAgent}', Referer='${referer}', Origin='${origin}'")
+ response.setResult('inavlidurl')
+ return
+}
+
+// 2) load rp settings in session (if needed)
+if (rpcode != rpcodeBackup) {
+ def slurper = new JsonSlurper()
+ def rpMap = slurper.parseText(parameters['rpcode.list'])
+ LOG.debug(">>> rpMaP: ${rpMap}")
+ if (!rpMap[rpcode]) {
+ cleanSession(true)
+ LOG.info("Event='IDENT-INVALIDREQ', rpcode='${rpcode}', SourceIp=${sourceIp}, UserAgent='${userAgent}', Referer='${referer}', Origin='${origin}'")
+ response.setResult('inavlidurl')
+ return
+ }
+ rpentity=rpMap[rpcode]
+ response.setSessionAttribute('agov.ident.entityId', rpMap[rpcode])
+}
+
+// 3) if we have a response ...
+if (inargs['SAMLResponse']) {
+ response.setResult('processResponse')
+ return
+}
+
+// 4) otherwise
+LOG.info("Event='IDENT-INITREQ', rpcode='${rpcode}', rpentity='${rpentity}', SourceIp=${sourceIp}, UserAgent='${userAgent}', Referer='${referer}', " +
+ "Origin='${origin}'")
+response.setResult('sendAuthnRequest')
+return
+
diff --git a/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/auth/var/opt/nevisauth/default/conf/LitDict.properties b/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/auth/var/opt/nevisauth/default/conf/LitDict.properties
index f9304a0..66b2ded 100644
--- a/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/auth/var/opt/nevisauth/default/conf/LitDict.properties
+++ b/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/auth/var/opt/nevisauth/default/conf/LitDict.properties
@@ -17,7 +17,7 @@ deputy.profile.label=(Deputy Profile)
dimilar.confirm_identity.checkbox=I confirm this is my data
dimilar.confirm_identity.description=Please confirm the data below is yours in order to proceed:
dimilar.confirm_identity.error=Please confirm the data is yours to proceed.
-dimilar.confirm_identity.link=If this is not your data, please visit https://agov.ch/dimilar.
+dimilar.confirm_identity.link=If this is not your data, please visit agov.ch/dimhelp.
dimilar.confirm_identity.title=Confirm data
dimilar.select_onboarding.description=Welcome to AGOV. Please complete your onboarding by connecting to an existing or new AGOV account.
dimilar.select_onboarding.error-banner=Please select one option to continue
@@ -25,14 +25,16 @@ dimilar.select_onboarding.existing-account=Onboard with an existing AGOV account
dimilar.select_onboarding.proceeding=How would you like to proceed?
dimilar.select_onboarding.registering-account=Onboard with a new AGOV account
dimilar.select_onboarding.title=Hello !!!FIRSTNAME!!! !!!LASTNAME!!!,
-dimilar.token_error.support=For support please visit https://agov.ch/dimilar.
+dimilar.token_error.support=For support please visit agov.ch/dimhelp.
dimilar.token_error.token_expired=Token expired or already used.
-dimilar_onboarding.aborted.link=If you require support please visit https://agov.ch/dimilar.
+dimilar_onboarding.aborted.link=If you require support please visit agov.ch/dimhelp.
dimilar_onboarding.aborted.message=Onboarding aborted. Please try again.
-dimilar_onboarding.failed.link=https://agov.ch/dimilar.
+dimilar_onboarding.failed.link=agov.ch/dimhelp.
dimilar_onboarding.failed.message=Onboarding aborted. Please contact support at
-dimilar_onboarding.successful.message=Onboarding with AGOV account successful. You are now able to log in to Dimilar at https://www.armee.ch/dim.
+dimilar_onboarding.successful.message=Onboarding with AGOV account successful. You are now able to log in to the Service Manager at agov.ch/dim.
dimilar_onboarding.title=Register
+envbanner.label=Runtime Environment
+error.account.exists=Account already exists. Continue to log in.
error.saml.failed=Please close your browser and try again.
error_1=Please check your input.
error_10=Please select the correct user account.
@@ -88,7 +90,7 @@ general.contactSupport=Contact Support
general.continue=Continue
general.data.birthDate=Date of birth
general.data.birthDateFormat=DD.MM.YYYY
-general.data.enrollmentNumber=Enrolment number (SSN/AHV number)
+general.data.enrollmentNumber=SSN/AHV number (Service Manager)
general.data.firstname=First name
general.data.lastname=Last name
general.edit=Edit
@@ -111,7 +113,7 @@ general.moreOptions=MORE OPTIONS
general.or=OR
general.otherLoginMethods=Other login methods
general.recovery=Recovery
-general.recovery.help.link=https://help.agov.ch/?c=100recovery
+general.recovery.help.link=https://agov.ch/recovery
general.recoveryCode.downloadPdf=Download as PDF
general.recoveryCode.inputLabel=Recovery code
general.recoveryCode.repeatCodeError=The code you entered was incorrect. Please ensure you have stored it correctly and try again.
@@ -262,7 +264,7 @@ providePhoneNumber.laterModal.title=Continue without a phone number?
providePhoneNumber.modal.description=To ensure you have recorded your phone number correctly, please repeat it below. An incorrectly stored phone number can make it more difficult to recover your account.
providePhoneNumber.modal.inputLabel=Phone number
providePhoneNumber.modal.title=Repeat phone number
-providePhoneNumber.saveButtonText=Save
+providePhoneNumber.saveButtonText=Continue
providePhoneNumber.title=Add phone number
qrCode.label=Click to open QR code in pop-up window.
recovery_accessapp_auth.accessAppRegistered=AGOV access app already registered
@@ -283,7 +285,7 @@ recovery_check_code.too_many_tries.instruction1=The recovery code you have enter
recovery_check_code.too_many_tries.instruction2=Please go to AGOV help in order to contact a support agent. They will be able to help you with the recovery process.
recovery_check_noCode.banner.error=Too many attempts.
recovery_check_noCode.instruction1=You might have tried to enter the recovery code too many times.
-recovery_check_noCode.instruction2=Please close the web browser and start the account recovery again in ten minutes from https://agov.ch/me.
+recovery_check_noCode.instruction2=Please close the web browser and start the account recovery again in ten minutes from agov.ch/me.
recovery_code.banner.error=Please reveal your recovery code to be able to continue.
recovery_code.instruction=Recovery codes help you gain access to your account in case you lost all of your login factors. Please store the recovery code in a safe place.
recovery_code.newRecoveryCode=Introducing recovery code
@@ -311,9 +313,9 @@ recovery_questionnaire_loginfactor.no=No
recovery_questionnaire_loginfactor.question=Have you registered more than one login factor (AGOV access app or security key) to your account?
recovery_questionnaire_loginfactor.yes=Yes
recovery_questionnaire_no_recovery.explanation1=Based on your answers, the AGOV recovery option does not seem necessary right now.
-recovery_questionnaire_no_recovery.explanation2=Should you need further information, please visit https://agov.ch/help for support articles.
-recovery_questionnaire_no_recovery.instruction1=If you have issues logging in to an application, please visit https://agov.ch/me and test if you can log in successfully.
-recovery_questionnaire_no_recovery.instruction2=If you have several login factors registered but lost access to one of them, please visit https://agov.ch/me to remove the one you have lost access to.
+recovery_questionnaire_no_recovery.explanation2=Should you need further information, please visit agov.ch/help for support articles.
+recovery_questionnaire_no_recovery.instruction1=If you have issues logging in to an application, please visit agov.ch/me and test if you can log in successfully.
+recovery_questionnaire_no_recovery.instruction2=If you have several login factors registered but lost access to one of them, please visit agov.ch/me to remove the one you have lost access to.
recovery_questionnaire_reason_selection.answer1=I have trouble logging in, even though I have my app / security key
recovery_questionnaire_reason_selection.answer10=I lost one of my login factors (AGOV access app or security key)
recovery_questionnaire_reason_selection.answer2=I was unable to finish my registration
@@ -327,9 +329,11 @@ recovery_questionnaire_reason_selection.answer9=I have issues with one of my log
recovery_questionnaire_reason_selection.banner.error=Please select a reason.
recovery_questionnaire_reason_selection.instruction=Please select the reason you are starting the recovery process:
recovery_start_info.banner.warning=You will not be able to use your account until the recovery process has been concluded.
-recovery_start_info.instruction=During the recovery process you will register a new login factor. If your account contains any verified information you might also have to go through a verification process to finish the recovery.
+recovery_start_info.instruction=During the recovery process you will register a new login factor. If your account contains any verified information you might also have to go through a verification process to finish the recovery.
recovery_start_info.title=You are about to start the recovery process
reject.button.label=Deny
+signup.button.label=Signup
+skip.button.label=Skip
submit.button.label=Submit
tan.sent=Please enter the security code which has been sent to your mobile phone.
timeout.description=Your session has timed out. Please close this window and try logging in again.
@@ -340,6 +344,7 @@ title.logout.confirmation=Logout
title.logout.reminder=Logout
title.oauth.consent=Client Authorization
title.saml.failed=Error
+title.signup=Create account
title.timeout.page=Logout
user_input.invalid.email=Please enter a valid email address
user_input.invalid.email.required=Field required
diff --git a/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/auth/var/opt/nevisauth/default/conf/LitDict_de.properties b/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/auth/var/opt/nevisauth/default/conf/LitDict_de.properties
index 99f0857..e8c0eb8 100644
--- a/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/auth/var/opt/nevisauth/default/conf/LitDict_de.properties
+++ b/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/auth/var/opt/nevisauth/default/conf/LitDict_de.properties
@@ -17,7 +17,7 @@ deputy.profile.label=(Profil Stellvertreter)
dimilar.confirm_identity.checkbox=Ich bestätige, dass dies meine Angaben sind
dimilar.confirm_identity.description=Bitte bestätigen Sie, dass die folgenden Angaben Ihnen gehören, um fortzufahren:
dimilar.confirm_identity.error=Bitte bestätigen Sie, dass die Angaben Ihnen gehören, um fortzufahren.
-dimilar.confirm_identity.link=Wenn diese nicht Ihre Angaben sind, besuchen Sie bitte https://agov.ch/dim.
+dimilar.confirm_identity.link=Wenn diese nicht Ihre Angaben sind, besuchen Sie bitte agov.ch/dimhelp.
dimilar.confirm_identity.title=Angaben bestätigen
dimilar.select_onboarding.description=Willkommen bei AGOV. Bitte komplettieren Sie Ihr Onboarding, indem Sie ein bestehendes oder neues AGOV Konto verbinden.
dimilar.select_onboarding.error-banner=Bitte wählen Sie eine Option aus, um fortzufahren
@@ -25,14 +25,16 @@ dimilar.select_onboarding.existing-account=Onboarding mit einem existierenden AG
dimilar.select_onboarding.proceeding=Wie möchten Sie fortfahren?
dimilar.select_onboarding.registering-account=Onboarding mit einem neuen AGOV-Konto
dimilar.select_onboarding.title=Hallo !!!FIRSTNAME!!! !!!LASTNAME!!!
-dimilar.token_error.support=Um Hilfe zu erhalten, besuchen Sie bitte agov.ch/dim.
+dimilar.token_error.support=Um Hilfe zu erhalten, besuchen Sie bitte agov.ch/dimhelp.
dimilar.token_error.token_expired=Token abgelaufen oder bereits verwendet.
-dimilar_onboarding.aborted.link=Wenn Sie Hilfe benötigen, besuchen Sie bitte https://agov.ch/dim.
+dimilar_onboarding.aborted.link=Wenn Sie Hilfe benötigen, besuchen Sie bitte agov.ch/dimhelp.
dimilar_onboarding.aborted.message=Onboarding abgebrochen. Bitte versuchen Sie es erneut.
-dimilar_onboarding.failed.link=agov.ch/dim.
+dimilar_onboarding.failed.link=agov.ch/dimhelp.
dimilar_onboarding.failed.message=Onboarding abgebrochen. Bitte kontaktieren Sie den Support unter
-dimilar_onboarding.successful.message=Onboarding mit AGOV-Konto erfolgreich. Sie können sich nun bei Dimilar unter https://www.armee.ch/de/dim einloggen.
+dimilar_onboarding.successful.message=Onboarding mit AGOV-Konto erfolgreich. Sie können sich nun beim Dienstmanager unter agov.ch/dim einloggen.
dimilar_onboarding.title=Registrieren
+envbanner.label=Laufzeitumgebung
+error.account.exists=Konto existiert bereits. Melden Sie sich an.
error.saml.failed=Bitte schliessen Sie Ihren Browser und versuchen Sie es erneut.
error_1=Bitte überprüfen Sie Ihre Eingaben.
error_10=Bitte wählen Sie das richtige Benutzerkonto aus.
@@ -70,7 +72,7 @@ error_9905=Es gibt ein Problem mit Ihrem Operations-Konto. Kontaktieren Sie bitt
error_9909=Es ist ein interner Fehler aufgetreten. Bitten Sie den Support um einen neuen Onboarding-Link.
errors.duplicateValue=Ihr Konto ist bereits mit einem anderen Operations-Zugang verknüpft.
fido2_auth.cancel.fido=Die Authentifizierung mit dem Sicherheitsschlüssel wurde unterbrochen. Bitte vergewissern Sie sich, dass Ihr FIDO-Schlüssel registriert ist und Ihre E-Mail korrekt ist.
-fido2_auth.instruction1=Klicken Sie auf "Weiter"
+fido2_auth.instruction1=Klicken Sie auf «Weiter»
fido2_auth.instruction2=Ein Authentifizierungsfenster wird erscheinen
fido2_auth.instruction3=Folgen Sie den Anweisungen
fido2_auth.skipInstructions=Anweisungen nächstes Mal überspringen
@@ -111,7 +113,7 @@ general.moreOptions=WEITERE OPTIONEN
general.or=ODER
general.otherLoginMethods=Andere Login-Methoden
general.recovery=Wiederherstellung
-general.recovery.help.link=https://help.agov.ch/?c=100recovery
+general.recovery.help.link=https://agov.ch/recovery
general.recoveryCode.downloadPdf=Als PDF herunterladen
general.recoveryCode.inputLabel=Wiederherstellungscode
general.recoveryCode.repeatCodeError=Der von Ihnen eingegebene Code war nicht korrekt. Bitte vergewissern Sie sich, dass Sie ihn richtig abgespeichert haben, und versuchen Sie es erneut.
@@ -283,13 +285,13 @@ recovery_check_code.too_many_tries.instruction1=Der von Ihnen eingegebene Wieder
recovery_check_code.too_many_tries.instruction2=Gehen Sie bitte zur AGOV-Hilfe, um jemanden vom Support zu kontaktieren. Die Person wird Sie beim Wiederherstellungsprozess unterstützen.
recovery_check_noCode.banner.error=Zu viele Versuche.
recovery_check_noCode.instruction1=Möglicherweise haben Sie zu oft versucht, den Wiederherstellungscode einzugeben.
-recovery_check_noCode.instruction2=Bitte schliessen Sie den Webbrowser und starten Sie die Kontowiederherstellung in zehn Minuten erneut auf https://agov.ch/me.
+recovery_check_noCode.instruction2=Bitte schliessen Sie den Webbrowser und starten Sie die Kontowiederherstellung in zehn Minuten erneut auf agov.ch/me.
recovery_code.banner.error=Bitte enthüllen Sie den Code, um fortfahren zu können.
recovery_code.instruction=Der Wiederherstellungscode hilft Ihnen, Zugriff auf Ihr AGOV-Login zu erhalten, falls Sie alle Ihre Login-Faktoren verloren haben. Bitte bewahren Sie den Wiederherstellungscode an einem sicheren Ort auf.
recovery_code.newRecoveryCode=Einführung von Wiederherstellungscode
recovery_code.validUntil=Gültig bis:
recovery_fidokey_auth.button=Schlüsselauthentifizierung starten
-recovery_fidokey_auth.fidoInstruction=Klicken Sie auf "Schlüsselauthentifizierung starten"
+recovery_fidokey_auth.fidoInstruction=Klicken Sie auf «Schlüsselauthentifizierung starten»
recovery_fidokey_auth.instruction1=Sie haben bereits einen neuen Sicherheitsschlüssel !!!SECURITY_KEY_NAME!!! im Rahmen des Wiederherstellungsprozesses registriert.
recovery_fidokey_auth.instruction2=Bitte verwenden Sie !!!SECURITY_KEY_NAME!!! und befolgen Sie die untenstehenden Schritte, um sich zu identifizieren.
recovery_fidokey_auth.keyRegistered=Sicherheitsschlüssel schon registriert
@@ -311,9 +313,9 @@ recovery_questionnaire_loginfactor.no=Nein
recovery_questionnaire_loginfactor.question=Haben Sie mehr als einen Loginfaktor (AGOV access App oder Sicherheitsschlüssel) für Ihren AGOV-Login registriert?
recovery_questionnaire_loginfactor.yes=Ja
recovery_questionnaire_no_recovery.explanation1=Ausgehend von Ihren Antworten scheint eine Wiederherstellung Ihres AGOV-Logins im Moment nicht notwendig zu sein.
-recovery_questionnaire_no_recovery.explanation2=Falls Sie weitere Informationen benötigen, besuchen Sie bitte https://agov.ch/help für Support-Artikel.
-recovery_questionnaire_no_recovery.instruction1=Wenn Sie Probleme haben, sich bei einer Anwendung anzumelden, besuchen Sie bitte https://agov.ch/me und testen Sie, ob Sie sich erfolgreich anmelden können.
-recovery_questionnaire_no_recovery.instruction2=Wenn Sie mehrere Loginfaktoren registriert haben, aber den Zugriff zu einem von ihnen verloren haben, besuchen Sie bitte https://agov.ch/me, um den verlorenen Loginfaktor zu entfernen.
+recovery_questionnaire_no_recovery.explanation2=Falls Sie weitere Informationen benötigen, besuchen Sie bitte agov.ch/help für Support-Artikel.
+recovery_questionnaire_no_recovery.instruction1=Wenn Sie Probleme haben, sich bei einer Anwendung anzumelden, besuchen Sie bitte agov.ch/me und testen Sie, ob Sie sich erfolgreich anmelden können.
+recovery_questionnaire_no_recovery.instruction2=Wenn Sie mehrere Loginfaktoren registriert haben, aber den Zugriff zu einem von ihnen verloren haben, besuchen Sie bitte agov.ch/me, um den verlorenen Loginfaktor zu entfernen.
recovery_questionnaire_reason_selection.answer1=Ich habe Probleme mich anzumelden, obwohl ich meine App / meinen Sicherheitsschlüssel habe
recovery_questionnaire_reason_selection.answer10=Ich habe einen meiner Loginfaktoren verloren (AGOV access App oder Sicherheitsschlüssel)
recovery_questionnaire_reason_selection.answer2=Ich konnte meine Registrierung nicht abschliessen
@@ -330,6 +332,8 @@ recovery_start_info.banner.warning=Sie können Ihr Konto nicht nutzen, bis d
recovery_start_info.instruction=Während des Wiederherstellungsprozesses werden Sie einen neuen Login-Faktor registrieren. Wenn Ihr Konto verifizierte Informationen enthält, müssen Sie zum Abschluss des Wiederherstellungsprozesses möglicherweise auch einen Verifikationsprozess durchlaufen.
recovery_start_info.title=Sie sind dabei, den Wiederherstellungsprozess zu starten
reject.button.label=Ablehnen
+signup.button.label=Registrieren
+skip.button.label=Überspringen
submit.button.label=Senden
tan.sent=Bitte erfassen Sie den Sicherheitscode, welcher an Ihr Mobiltelefon gesendet wurde.
timeout.description=Ihre Sitzung ist abgelaufen. Bitte schliessen Sie dieses Fenster und versuchen Sie erneut, sich einzuloggen.
@@ -340,6 +344,7 @@ title.logout.confirmation=Logout
title.logout.reminder=Logout
title.oauth.consent=Client Authorisierung
title.saml.failed=Error
+title.signup=Konto erstellen
title.timeout.page=Logout
user_input.invalid.email=Bitte geben Sie eine gültige E-Mail ein
user_input.invalid.email.required=Erforderliches Feld
diff --git a/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/auth/var/opt/nevisauth/default/conf/LitDict_en.properties b/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/auth/var/opt/nevisauth/default/conf/LitDict_en.properties
index f9304a0..66b2ded 100644
--- a/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/auth/var/opt/nevisauth/default/conf/LitDict_en.properties
+++ b/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/auth/var/opt/nevisauth/default/conf/LitDict_en.properties
@@ -17,7 +17,7 @@ deputy.profile.label=(Deputy Profile)
dimilar.confirm_identity.checkbox=I confirm this is my data
dimilar.confirm_identity.description=Please confirm the data below is yours in order to proceed:
dimilar.confirm_identity.error=Please confirm the data is yours to proceed.
-dimilar.confirm_identity.link=If this is not your data, please visit https://agov.ch/dimilar.
+dimilar.confirm_identity.link=If this is not your data, please visit agov.ch/dimhelp.
dimilar.confirm_identity.title=Confirm data
dimilar.select_onboarding.description=Welcome to AGOV. Please complete your onboarding by connecting to an existing or new AGOV account.
dimilar.select_onboarding.error-banner=Please select one option to continue
@@ -25,14 +25,16 @@ dimilar.select_onboarding.existing-account=Onboard with an existing AGOV account
dimilar.select_onboarding.proceeding=How would you like to proceed?
dimilar.select_onboarding.registering-account=Onboard with a new AGOV account
dimilar.select_onboarding.title=Hello !!!FIRSTNAME!!! !!!LASTNAME!!!,
-dimilar.token_error.support=For support please visit https://agov.ch/dimilar.
+dimilar.token_error.support=For support please visit agov.ch/dimhelp.
dimilar.token_error.token_expired=Token expired or already used.
-dimilar_onboarding.aborted.link=If you require support please visit https://agov.ch/dimilar.
+dimilar_onboarding.aborted.link=If you require support please visit agov.ch/dimhelp.
dimilar_onboarding.aborted.message=Onboarding aborted. Please try again.
-dimilar_onboarding.failed.link=https://agov.ch/dimilar.
+dimilar_onboarding.failed.link=agov.ch/dimhelp.
dimilar_onboarding.failed.message=Onboarding aborted. Please contact support at
-dimilar_onboarding.successful.message=Onboarding with AGOV account successful. You are now able to log in to Dimilar at https://www.armee.ch/dim.
+dimilar_onboarding.successful.message=Onboarding with AGOV account successful. You are now able to log in to the Service Manager at agov.ch/dim.
dimilar_onboarding.title=Register
+envbanner.label=Runtime Environment
+error.account.exists=Account already exists. Continue to log in.
error.saml.failed=Please close your browser and try again.
error_1=Please check your input.
error_10=Please select the correct user account.
@@ -88,7 +90,7 @@ general.contactSupport=Contact Support
general.continue=Continue
general.data.birthDate=Date of birth
general.data.birthDateFormat=DD.MM.YYYY
-general.data.enrollmentNumber=Enrolment number (SSN/AHV number)
+general.data.enrollmentNumber=SSN/AHV number (Service Manager)
general.data.firstname=First name
general.data.lastname=Last name
general.edit=Edit
@@ -111,7 +113,7 @@ general.moreOptions=MORE OPTIONS
general.or=OR
general.otherLoginMethods=Other login methods
general.recovery=Recovery
-general.recovery.help.link=https://help.agov.ch/?c=100recovery
+general.recovery.help.link=https://agov.ch/recovery
general.recoveryCode.downloadPdf=Download as PDF
general.recoveryCode.inputLabel=Recovery code
general.recoveryCode.repeatCodeError=The code you entered was incorrect. Please ensure you have stored it correctly and try again.
@@ -262,7 +264,7 @@ providePhoneNumber.laterModal.title=Continue without a phone number?
providePhoneNumber.modal.description=To ensure you have recorded your phone number correctly, please repeat it below. An incorrectly stored phone number can make it more difficult to recover your account.
providePhoneNumber.modal.inputLabel=Phone number
providePhoneNumber.modal.title=Repeat phone number
-providePhoneNumber.saveButtonText=Save
+providePhoneNumber.saveButtonText=Continue
providePhoneNumber.title=Add phone number
qrCode.label=Click to open QR code in pop-up window.
recovery_accessapp_auth.accessAppRegistered=AGOV access app already registered
@@ -283,7 +285,7 @@ recovery_check_code.too_many_tries.instruction1=The recovery code you have enter
recovery_check_code.too_many_tries.instruction2=Please go to AGOV help in order to contact a support agent. They will be able to help you with the recovery process.
recovery_check_noCode.banner.error=Too many attempts.
recovery_check_noCode.instruction1=You might have tried to enter the recovery code too many times.
-recovery_check_noCode.instruction2=Please close the web browser and start the account recovery again in ten minutes from https://agov.ch/me.
+recovery_check_noCode.instruction2=Please close the web browser and start the account recovery again in ten minutes from agov.ch/me.
recovery_code.banner.error=Please reveal your recovery code to be able to continue.
recovery_code.instruction=Recovery codes help you gain access to your account in case you lost all of your login factors. Please store the recovery code in a safe place.
recovery_code.newRecoveryCode=Introducing recovery code
@@ -311,9 +313,9 @@ recovery_questionnaire_loginfactor.no=No
recovery_questionnaire_loginfactor.question=Have you registered more than one login factor (AGOV access app or security key) to your account?
recovery_questionnaire_loginfactor.yes=Yes
recovery_questionnaire_no_recovery.explanation1=Based on your answers, the AGOV recovery option does not seem necessary right now.
-recovery_questionnaire_no_recovery.explanation2=Should you need further information, please visit https://agov.ch/help for support articles.
-recovery_questionnaire_no_recovery.instruction1=If you have issues logging in to an application, please visit https://agov.ch/me and test if you can log in successfully.
-recovery_questionnaire_no_recovery.instruction2=If you have several login factors registered but lost access to one of them, please visit https://agov.ch/me to remove the one you have lost access to.
+recovery_questionnaire_no_recovery.explanation2=Should you need further information, please visit agov.ch/help for support articles.
+recovery_questionnaire_no_recovery.instruction1=If you have issues logging in to an application, please visit agov.ch/me and test if you can log in successfully.
+recovery_questionnaire_no_recovery.instruction2=If you have several login factors registered but lost access to one of them, please visit agov.ch/me to remove the one you have lost access to.
recovery_questionnaire_reason_selection.answer1=I have trouble logging in, even though I have my app / security key
recovery_questionnaire_reason_selection.answer10=I lost one of my login factors (AGOV access app or security key)
recovery_questionnaire_reason_selection.answer2=I was unable to finish my registration
@@ -327,9 +329,11 @@ recovery_questionnaire_reason_selection.answer9=I have issues with one of my log
recovery_questionnaire_reason_selection.banner.error=Please select a reason.
recovery_questionnaire_reason_selection.instruction=Please select the reason you are starting the recovery process:
recovery_start_info.banner.warning=You will not be able to use your account until the recovery process has been concluded.
-recovery_start_info.instruction=During the recovery process you will register a new login factor. If your account contains any verified information you might also have to go through a verification process to finish the recovery.
+recovery_start_info.instruction=During the recovery process you will register a new login factor. If your account contains any verified information you might also have to go through a verification process to finish the recovery.
recovery_start_info.title=You are about to start the recovery process
reject.button.label=Deny
+signup.button.label=Signup
+skip.button.label=Skip
submit.button.label=Submit
tan.sent=Please enter the security code which has been sent to your mobile phone.
timeout.description=Your session has timed out. Please close this window and try logging in again.
@@ -340,6 +344,7 @@ title.logout.confirmation=Logout
title.logout.reminder=Logout
title.oauth.consent=Client Authorization
title.saml.failed=Error
+title.signup=Create account
title.timeout.page=Logout
user_input.invalid.email=Please enter a valid email address
user_input.invalid.email.required=Field required
diff --git a/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/auth/var/opt/nevisauth/default/conf/LitDict_fr.properties b/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/auth/var/opt/nevisauth/default/conf/LitDict_fr.properties
index e82d4b2..161da8f 100644
--- a/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/auth/var/opt/nevisauth/default/conf/LitDict_fr.properties
+++ b/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/auth/var/opt/nevisauth/default/conf/LitDict_fr.properties
@@ -15,24 +15,26 @@ continue.button.label=Continuer
darkModeSwitch.aria.label=Activer l'apparence sombre
deputy.profile.label=(Profil du suppléant)
dimilar.confirm_identity.checkbox=Je confirme que ce sont mes données
-dimilar.confirm_identity.description=Veuillez confirmer que les données ci-dessous vous appartiennent afin de poursuivre :
+dimilar.confirm_identity.description=Veuillez confirmer que les données ci-dessous vous appartiennent afin de poursuivre :
dimilar.confirm_identity.error=Veuillez confirmer que les données vous appartiennent afin de poursuivre.
-dimilar.confirm_identity.link=Si ces données ne sont pas les vôtres, veuillez vous rendre sur https://agov.ch/fr/dim.
+dimilar.confirm_identity.link=Si ces données ne sont pas les vôtres, veuillez vous rendre sur agov.ch/dimhelp.
dimilar.confirm_identity.title=Confirmer les données
dimilar.select_onboarding.description=Bienvenue sur AGOV. Veuillez terminer votre intégration en vous connectant à un compte AGOV existant ou en créant un nouveau compte.
dimilar.select_onboarding.error-banner=Veuillez sélectionner une option pour continuer
dimilar.select_onboarding.existing-account=Se connecter avec un compte AGOV existant
-dimilar.select_onboarding.proceeding=Comment voulez-vous procéder ?
+dimilar.select_onboarding.proceeding=Comment voulez-vous procéder ?
dimilar.select_onboarding.registering-account=Se connecter avec un nouveau compte AGOV
dimilar.select_onboarding.title=Bonjour !!!FIRSTNAME!!! !!!LASTNAME!!!,
-dimilar.token_error.support=Si vous avez besoin d'aide veuillez vous rendre sur https://agov.ch/fr/dimf.
+dimilar.token_error.support=Si vous avez besoin d'aide veuillez vous rendre sur agov.ch/dimhelp.
dimilar.token_error.token_expired=Jeton expiré ou déjà utilisé.
-dimilar_onboarding.aborted.link=Si vous avez besoin d'aide veuillez vous rendre sur https://agov.ch/fr/dimf.
+dimilar_onboarding.aborted.link=Si vous avez besoin d'aide veuillez vous rendre sur agov.ch/dimhelp.
dimilar_onboarding.aborted.message=Le processus d’intégration a été annulé. Veuillez réessayer.
-dimilar_onboarding.failed.link=https://agov.ch/fr/dimf.
+dimilar_onboarding.failed.link=agov.ch/dimhelp.
dimilar_onboarding.failed.message=Le processus d'intégration a été annulé. Veuillez contacter le service de support à
-dimilar_onboarding.successful.message=L’intégration avec le compte AGOV a réussi. Vous pouvez maintenant vous connecter sur le gestionnaire de service https://www.armee.ch/fr/dimf.
+dimilar_onboarding.successful.message=L’intégration avec le compte AGOV a réussi. Vous pouvez maintenant vous connecter sur le gestionnaire de service agov.ch/dim.
dimilar_onboarding.title=Créer un compte
+envbanner.label=Environnement d'exécution
+error.account.exists=Le compte existe déjà. Continuez à vous connecter.
error.saml.failed=Fermez votre navigateur et r;eacute;essayez.
error_1=Veuillez vérifier votre saisie.
error_10=Veuillez sélectionner le compte d’utilisateur correct.
@@ -70,14 +72,14 @@ error_9905=Il y a un problème avec votre compte AGOV operations. Veuillez
error_9909=Un problème interne s’est produit. Veuillez demander un nouveau lien d’enregistrement au service d’assistance.
errors.duplicateValue=Votre compte est déjà lié à un autre accès à AGOV operations.
fido2_auth.cancel.fido=L'authentification avec la clé de sécurité a été interrompue. Veuillez vous assurer que votre clé FIDO est enregistrée et que votre adresse e-mail est correcte, puis suivez les étapes ci-dessous.
-fido2_auth.instruction1=Cliquez sur "Continuer"
+fido2_auth.instruction1=Cliquez sur « Continuer »
fido2_auth.instruction2=Une fenêtre d'authentification s'affichera
fido2_auth.instruction3=Suivez les instructions
fido2_auth.skipInstructions=Passer les instructions la fois suivante
fido2_auth.switchLogin=S'AUTHENTIFIER AVEC
footer.link=https://agov.ch
footer.link.label=Contact
-footer.text=Service d'authentification des autorités suisses AGOV - une collaboration entre les cantons, leurs communes et l'administration fédérale. -
+footer.text=Service d'authentification des autorités suisses AGOV – une collaboration entre les cantons, leurs communes et l'administration fédérale. -
general.AGOVAccessApp=Application AGOV access
general.accessApp=Application AGOV access
general.authenticate=Authentification
@@ -111,18 +113,18 @@ general.moreOptions=PLUS D'OPTIONS
general.or=OU
general.otherLoginMethods=Autres méthodes de connexion
general.recovery=Récupération
-general.recovery.help.link=https://help.agov.ch/?c=100recovery
+general.recovery.help.link=https://agov.ch/recovery
general.recoveryCode.downloadPdf=Télécharger en format PDF
general.recoveryCode.inputLabel=Code de récupération
general.recoveryCode.repeatCodeError=Le code que vous avez saisi est incorrect. Veuillez vous assurer que l'avez enregistré correctement et réessayer.
-general.recoveryCode.repeatCodeModal.description=Pour vous assurer que vous avez correctement enregistré votre code, veillez le répéter ci-dessous. Un code de récupération perdu ou mal enregistré peut rendre la récupération de votre compte plus difficile.
+general.recoveryCode.repeatCodeModal.description=Pour vous assurer que vous avez correctement enregistré votre code, veuillez le répéter ci-dessous. Un code de récupération perdu ou mal enregistré peut rendre la récupération de votre compte plus difficile.
general.recoveryCode.repeatCodeModal.title=Répéter le code de récupération
general.recoveryCode.reveal=Révéler le code de récupération
general.recoveryOngoing=Récupération en cours
general.register=Créer un compte
-general.registerNow=Enregistrez-vous dès maintenant!
+general.registerNow=Enregistrez-vous dès maintenant !
general.registration=Enregistrement
-general.registration.dontHaveAnAccountYet=Vous n'avez pas encore de compte AGOV ?
+general.registration.dontHaveAnAccountYet=Vous n'avez pas encore de compte AGOV ?
general.registration.seeOptions=Voir les options d'enregistrement
general.securityKey=Clé de sécurité
general.skip.content=Passer au contenu principal
@@ -144,9 +146,9 @@ languageDropdown.aria.label=Sélectionner la langue
loainfo.description.200=Pour accéder à l'application, nous devons vérifier vos données. Ce processus peut prendre jusqu'à 2–3 jours.
loainfo.description.300=Pour accéder à l'application, nous devons vérifier vos données. Vous pouvez choisir la procédure que vous préférez à l'étape suivante.
loainfo.description.400=Veuillez saisir votre numéro AVS pour accéder à l'application.
-loainfo.helper=Vos données doivent être vérifiées!
+loainfo.helper=Vos données doivent être vérifiées !
loainfo.later=Plus tard
-loainfo.startNow=Voulez-vous commencer le processus maintenant?
+loainfo.startNow=Voulez-vous commencer le processus maintenant ?
loainfo.startVerification=Démarrer la vérification
loainfo.title=Vérifiez vos données
loggedout.description=Vous vous êtes déconnecté avec succès.
@@ -158,12 +160,12 @@ mauth_usernameless.EID=Continuer avec l'e-ID suisse
mauth_usernameless.banner.error=Authentification interrompue. Veuillez réessayer lorsque la page sera rechargée.
mauth_usernameless.banner.info=Scan réussi. Veuillez continuer dans l'application AGOV access.
mauth_usernameless.banner.success=Authentification réussie. Veuillez attendre d'être connecté.
-mauth_usernameless.cannotLogin=Avez-vous perdu l'accès à votre application / votre clé de sécurité ?
-mauth_usernameless.cannotLogin.accessApp=Vous avez perdu l'accès à votre application AGOV access ?
-mauth_usernameless.cannotLogin.securityKey=Avez-vous perdu l'accès à votre clé de sécurité ?
+mauth_usernameless.cannotLogin=Avez-vous perdu l'accès à votre application / votre clé de sécurité ?
+mauth_usernameless.cannotLogin.accessApp=Vous avez perdu l'accès à votre application AGOV access ?
+mauth_usernameless.cannotLogin.securityKey=Avez-vous perdu l'accès à votre clé de sécurité ?
mauth_usernameless.hideQR=Cacher le code QR
mauth_usernameless.instructions=Connectez-vous en scannant le code QR avec l'application AGOV access
-mauth_usernameless.noAccount=Vous n'avez pas encore de compte AGOV ?
+mauth_usernameless.noAccount=Vous n'avez pas encore de compte AGOV ?
mauth_usernameless.selectLoginMethod=Séléctionner la méthode de connexion
mauth_usernameless.showQR=Afficher le code QR
mauth_usernameless.startRecovery=Commencer la récupération du compte
@@ -181,7 +183,7 @@ method.securid.label=SecurID
method.ticket.label=Ticket
onboard_linking_account_auth.fido_instructions=Une clé de sécurité physique offre un moyen sûr de se connecter à son compte sans devoir utiliser son téléphone.
onboard_linking_account_auth.instructions=Connectez-vous avec votre compte AGOV en scannant le code QR avec votre application AGOV access
-onboarding.cancel-onboarding=Êtes-vous sûr de vouloir annuler la procédure d'intégration ?
+onboarding.cancel-onboarding=Êtes-vous sûr de vouloir annuler la procédure d'intégration ?
onboarding.cancel-onboarding-description=Pour procéder à la récupération de votre compte, vous devrez annuler le processus d’intégration.
onboarding.cancel-proceed-recovery=Oui, annuler et procéder à la récupération
onboarding.login-factor=Étape 1 - Facteur de connexion
@@ -218,7 +220,7 @@ op-onboarding.done.message=L’enregistrement a été effectu&ea
op-onboarding.done.title=TERMINÉ
op-onboarding.failed.title=ERREUR
op-onboarding.intro.message1=Pour terminer l’enregistrement de votre accès à AGOV operations, vous devez disposer d’un compte AGOV ou d’un compte FED-LOGIN.
-op-onboarding.intro.message2=Après avoir cliqué sur "Continuer", vous serez redirigé vers l’authentification.
+op-onboarding.intro.message2=Après avoir cliqué sur « Continuer », vous serez redirigé vers l’authentification.
op-onboarding.intro.message3=Si vous utilisez AGOV et que votre compte n’a pas encore atteint le niveau de qualité d’authentification requis, vous aurez la possibilité de démarrer la vérification d’identité nécessaire pour l’atteindre.
op-onboarding.intro.title=DÉMARRER
op-onboarding.onboarding=Enregistrement de l’accès à AGOV op
@@ -258,8 +260,8 @@ providePhoneNumber.inputLabel=Numéro de téléphone (facultat
providePhoneNumber.laterModal.description1=Sans numéro de téléphone, la récupération de votre compte peut prendre jusqu'à 4 jours si vous perdez l'accès à votre code de récupération.
providePhoneNumber.laterModal.description2=Ajouter un numéro de téléphone vous permet de récupérer votre compte en quelques minutes.
providePhoneNumber.laterModal.description3=Ce numéro de téléphone ne sera pas utilisé pour vous contacter.
-providePhoneNumber.laterModal.title=Continuer sans numéro de téléphone ?
-providePhoneNumber.modal.description=Pour vous assurer que vous avez correctement enregistré votre numéro de téléphone, veillez le répéter ci-dessous. Un numéro de téléphone mal enregistré peut rendre la récupération de votre compte plus difficile.
+providePhoneNumber.laterModal.title=Continuer sans numéro de téléphone ?
+providePhoneNumber.modal.description=Pour vous assurer que vous avez correctement enregistré votre numéro de téléphone, veillez le répéter ci-dessous. Un numéro de téléphone mal enregistré peut rendre la récupération de votre compte plus difficile.
providePhoneNumber.modal.inputLabel=Numéro de téléphone
providePhoneNumber.modal.title=Répéter votre numéro de téléphone
providePhoneNumber.saveButtonText=Sauvegarder
@@ -272,24 +274,24 @@ recovery_check_code.banner.lockedError=Trop de saisies erronées. Veuillez
recovery_check_code.codeIncorrect=Le code saisi est incorrect. Veuillez réessayer.
recovery_check_code.enterRecoveryCode=Code de récupération
recovery_check_code.expired=Trop de tentatives ou votre code de récupération a expiré.
-recovery_check_code.instruction=Veuillez saisir votre code de récupération à 12 chiffres. Lors de votre inscription, vous avez reçu le code de récupération sous la forme d’un fichier PDF ou dans « AGOV me ».
+recovery_check_code.instruction=Veuillez saisir votre code de récupération à 12 chiffres. Lors de votre inscription, vous avez reçu le code de récupération sous la forme d’un fichier PDF ou dans AGOV me.
recovery_check_code.invalid.code=Le code est invalide
recovery_check_code.invalid.code.required=Code requis
recovery_check_code.invalid.code.tooLong=Le code est trop long
recovery_check_code.noAccess=Je n’ai pas accès à mon code de récupération
-recovery_check_code.noCodeAccess=Êtes-vous sûr de ne pas avoir accès à votre code de récupération ?
+recovery_check_code.noCodeAccess=Êtes-vous sûr de ne pas avoir accès à votre code de récupération ?
recovery_check_code.noCodeAccessInstructions=En cas de perte de votre code de récupération, veuillez vous rendre sur AGOV help et contacter le service d’assistance AGOV. Un agent pourra vous aider dans le processus de récupération.
recovery_check_code.too_many_tries.instruction1=Le code de récupération que vous avez saisi a peut-être expiré ou vous avez peut-être essayé de le saisir trop de fois.
recovery_check_code.too_many_tries.instruction2=Veuillez vous rendre sur AGOV help et contacter le service d’assistance. Un agent pourra vous aider dans le processus de récupération.
recovery_check_noCode.banner.error=Trop de tentatives.
recovery_check_noCode.instruction1=Vous avez peut-être essayé de saisir le code de récupération trop de fois.
-recovery_check_noCode.instruction2=Veuillez fermer le navigateur web et recommencer la récupération du compte dans dix minutes à partir de https://agov.ch/me.
+recovery_check_noCode.instruction2=Veuillez fermer le navigateur web et recommencer la récupération du compte dans dix minutes à partir de agov.ch/me.
recovery_code.banner.error=Veuillez révéler votre code de récupération pour pouvoir continuer.
recovery_code.instruction=Les codes de récupération vous permettent d'accéder à votre compte au cas où vous auriez perdu tous vos identifiants. Conservez le code de récupération en lieu sûr.
recovery_code.newRecoveryCode=Introduction du code de récupération
-recovery_code.validUntil=Valable jusqu'au:
+recovery_code.validUntil=Valable jusqu'au :
recovery_fidokey_auth.button=Démarrer l'authentification par clé de sécurité
-recovery_fidokey_auth.fidoInstruction=Cliquez sur "Démarrer l'enregistrement de la clé"
+recovery_fidokey_auth.fidoInstruction=Cliquez sur « Démarrer l'enregistrement de la clé »
recovery_fidokey_auth.instruction1=Vous avez déjà enregistré une nouvelle clé de sécurité !!!SECURITY_KEY_NAME!!! dans le cadre du processus de récupération.
recovery_fidokey_auth.instruction2=Veuillez utiliser !!!SECURITY_KEY_NAME!!! pour suivre les étapes ci-dessous afin de vous identifier.
recovery_fidokey_auth.keyRegistered=Clé de sécurité déjà enregistrée
@@ -297,8 +299,8 @@ recovery_intro_email.banner.error=Le lien que vous avez utilisé a expir&e
recovery_intro_email.banner.info=Veuillez saisir votre adresse e-mail. Nous vous enverrons un e-mail vous permettant de démarrer le processus de récupération.
recovery_intro_email.important=Important:
recovery_intro_email.process=Le processus de récupération ne doit être utilisé que si vous avez perdu l'accès à vos facteurs de connexion (application AGOV access supprimée, clé de sécurité perdue, téléphone perdu, etc.).
-recovery_intro_email_sent.banner.button=Vous n’avez pas reçu l'email?
-recovery_intro_email_sent.banner.success=Merci! Vous recevrez dans un instant un e-mail contenant un lien de récupération et des instructions.
+recovery_intro_email_sent.banner.button=Vous n’avez pas reçu l'email ?
+recovery_intro_email_sent.banner.success=Merci ! Vous recevrez dans un instant un e-mail contenant un lien de récupération et des instructions.
recovery_on_going.finishRecovery=Terminer la récupération
recovery_on_going.instruction=Vous n’avez pas encore terminé le processus de récupération. Dans le cadre du processus de récupération, votre identité peut faire l’objet d’une vérification. Pour accéder à des applications au moyen de votre identifiant AGOV, vous devez terminer la vérification d’identité.
recovery_on_going.title=Veuillez terminer le processus de récupération.
@@ -308,12 +310,12 @@ recovery_questionnaire_instructions.instruction1=Fournissez l'adresse éle
recovery_questionnaire_instructions.instruction2=Suivez les étapes pour récupérer votre compte (les étapes varient en fonction du niveau de vérification de votre compte)
recovery_questionnaire_loginfactor.banner.error=Veuillez choisir une réponse.
recovery_questionnaire_loginfactor.no=Non
-recovery_questionnaire_loginfactor.question=Avez-vous enregistré plus d'un facteur d'authentification (application AGOV access ou clé de sécurité) sur votre compte ?
+recovery_questionnaire_loginfactor.question=Avez-vous enregistré plus d'un facteur d'authentification (application AGOV access ou clé de sécurité) sur votre compte ?
recovery_questionnaire_loginfactor.yes=Oui
recovery_questionnaire_no_recovery.explanation1=D'après vos réponses, l'option de récupération d'AGOV ne semble pas nécessaire pour l'instant.
-recovery_questionnaire_no_recovery.explanation2=Si vous avez besoin de plus amples informations, veuillez consulter https://agov.ch/help pour obtenir des articles de soutien.
-recovery_questionnaire_no_recovery.instruction1=Si vous rencontrez des difficultés pour vous connecter à une application, visitez https://agov.ch/me et vérifiez si vous pouvez vous connecter avec succès.
-recovery_questionnaire_no_recovery.instruction2=Si vous avez enregistré plusieurs facteurs de connexion mais que vous avez perdu l'accès à l'un d'entre eux, veuillez consulter https://agov.ch/me pour supprimer celui auquel vous avez perdu l'accès.
+recovery_questionnaire_no_recovery.explanation2=Si vous avez besoin de plus amples informations, veuillez consulter agov.ch/help pour obtenir des articles de soutien.
+recovery_questionnaire_no_recovery.instruction1=Si vous rencontrez des difficultés pour vous connecter à une application, visitez agov.ch/me et vérifiez si vous pouvez vous connecter avec succès.
+recovery_questionnaire_no_recovery.instruction2=Si vous avez enregistré plusieurs facteurs de connexion mais que vous avez perdu l'accès à l'un d'entre eux, veuillez consulter agov.ch/me pour supprimer celui auquel vous avez perdu l'accès.
recovery_questionnaire_reason_selection.answer1=Je n'arrive pas à me connecter, même si j'ai mon application / ma clé de sécurité
recovery_questionnaire_reason_selection.answer10=J'ai perdu l'un de mes facteurs d'authentification (application AGOV access ou clé de sécurité)
recovery_questionnaire_reason_selection.answer2=Je n'ai pas pu terminer mon inscription
@@ -325,11 +327,13 @@ recovery_questionnaire_reason_selection.answer7=J'ai mes clés de sé
recovery_questionnaire_reason_selection.answer8=J'ai perdu l'accès à toutes mes clés de sécurité et aux applications AGOV access
recovery_questionnaire_reason_selection.answer9=J'ai des problèmes avec l'un de mes facteurs d'authentification (effacé, réinitialisé, PIN oublié)
recovery_questionnaire_reason_selection.banner.error=Veuillez sélectionner un motif.
-recovery_questionnaire_reason_selection.instruction=Veuillez sélectionner la raison pour laquelle vous entamez le processus de récupération :
+recovery_questionnaire_reason_selection.instruction=Veuillez sélectionner la raison pour laquelle vous entamez le processus de récupération :
recovery_start_info.banner.warning=Vous ne pourrez pas utiliser votre compte tant que le processus de récupération n'aura pas été terminé.
recovery_start_info.instruction=Le processus de récupération nécessitera l’enregistrement d’un nouveau facteur d’authentification. Si votre compte contient des informations ayant déjà été vérifiées, il se peut que vous deviez les faire vérifier à nouveau pour terminer la récupération.
recovery_start_info.title=Vous êtes sur le point de démarrer le processus de récupération.
reject.button.label=Refuser
+signup.button.label=Inscription
+skip.button.label=Passer
submit.button.label=Envoyer
tan.sent=Veuillez saisir le code de sécurité que vous avez reçu au votre téléphone mobile.
timeout.description=Votre session a expiré. Veuillez fermer cette fenêtre et essayer de vous reconnecter.
@@ -340,6 +344,7 @@ title.logout.confirmation=Logout
title.logout.reminder=Logout
title.oauth.consent=Autorisation du client
title.saml.failed=Error
+title.signup=Créer un compte
title.timeout.page=Logout
user_input.invalid.email=Veuillez saisir un e-mail valable.
user_input.invalid.email.required=Champ requis
diff --git a/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/auth/var/opt/nevisauth/default/conf/LitDict_it.properties b/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/auth/var/opt/nevisauth/default/conf/LitDict_it.properties
index e55c2be..a54c990 100644
--- a/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/auth/var/opt/nevisauth/default/conf/LitDict_it.properties
+++ b/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/auth/var/opt/nevisauth/default/conf/LitDict_it.properties
@@ -1,5 +1,5 @@
-accept.button.label=Accettare
+accept.button.label=Accetta
agov-ident.done.message=Il vostro conto AGOV è ora pronto per l'uso. Può chiudere questa pagina.
agov-ident.done.title=Finito
agov-ident.failed.instruction=Per completare la registrazione è necessario disporre di un account AGOV e superare la verifica dei dati suggerita. Riprova.
@@ -10,14 +10,14 @@ agov-ident.invalid-url.message=Il link non può essere elaborato
agov-ident.invalid-url.title=Link non valido
agov-ident.onboarding=Registrazione e verifica
agov-ident.retry=Riprova
-cancel.button.label=Abortire
+cancel.button.label=Annulla
continue.button.label=Continua
darkModeSwitch.aria.label=Attivare la modalità scura
deputy.profile.label=(profilo del delegato)
dimilar.confirm_identity.checkbox=Confermo che questi sono i miei dati
dimilar.confirm_identity.description=Confermi che i dati riportati di seguito le appartengono per poter procedere:
dimilar.confirm_identity.error=Confermi che i dati sono i suoi per poter procedere.
-dimilar.confirm_identity.link=Se questi non sono i suoi dati, visiti https://agov.ch/dim.
+dimilar.confirm_identity.link=Se questi non sono i suoi dati, visiti agov.ch/dimhelp.
dimilar.confirm_identity.title=Confermare i dati
dimilar.select_onboarding.description=Benvenuto in AGOV. Completi la procedura di registrazione collegando un account AGOV esistente o creandone uno nuovo.
dimilar.select_onboarding.error-banner=Selezioni un’opzione per continuare
@@ -25,14 +25,16 @@ dimilar.select_onboarding.existing-account=Proceda con un account AGOV esistente
dimilar.select_onboarding.proceeding=Come desidera procedere?
dimilar.select_onboarding.registering-account=Proceda con un nuovo account AGOV
dimilar.select_onboarding.title=Buongiorno !!!FIRSTNAME!!! !!!LASTNAME!!!,
-dimilar.token_error.support=Per assistenza visita https://agov.ch/dim.
+dimilar.token_error.support=Per assistenza visita agov.ch/dimhelp.
dimilar.token_error.token_expired=Token scaduto o già utilizzato.
-dimilar_onboarding.aborted.link=Se ha bisogno di assistenza, visiti https://agov.ch/dim.
+dimilar_onboarding.aborted.link=Se ha bisogno di assistenza, visiti agov.ch/dimhelp.
dimilar_onboarding.aborted.message=La procedura di registrazione è stata interrotta. Provi di nuovo.
-dimilar_onboarding.failed.link=https://agov.ch/dim.
+dimilar_onboarding.failed.link=agov.ch/dimhelp.
dimilar_onboarding.failed.message=La procedura di registrazione è stata interrotta. Contatti il supporto al
-dimilar_onboarding.successful.message=Registrazione con l’account AGOV completata con successo. Ora può accedere alla Gestione dei servizi su https://www.armee.ch/dim.
+dimilar_onboarding.successful.message=Registrazione con l’account AGOV completata con successo. Ora può accedere alla Gestione dei servizi su agov.ch/dim.
dimilar_onboarding.title=Registrarsi
+envbanner.label=Ambiente di esecuzione
+error.account.exists=L'account esiste gi�. Prosegui col login.
error.saml.failed=Chiudi il browser e riprova.
error_1=Verificare i dati inseriti.
error_10=Scegliere l’account utente corretto.
@@ -70,14 +72,14 @@ error_9905=Si è verificato un problema con l’account AGOV operation
error_9909=Si è verificato un errore interno. Richiedere al supporto un nuovo link di registrazione.
errors.duplicateValue=Il suo account è già collegato ad un altro accesso operativo.
fido2_auth.cancel.fido=L'autenticazione con la chiave di sicurezza è stata interrotta. Assicurarsi che la chiave FIDO sia registrata e che l'indirizzo e-mail sia corretto, poi seguire le istruzioni.
-fido2_auth.instruction1=Cliccare su "Continua"
+fido2_auth.instruction1=Cliccare su «Continua».
fido2_auth.instruction2=A breve si aprirà una finestra per l'autenticazione.
fido2_auth.instruction3=Seguire le istruzioni.
fido2_auth.skipInstructions=Non mostrare più le istruzioni
fido2_auth.switchLogin=ACCEDERE CON
footer.link=https://agov.ch
footer.link.label=Contatto
-footer.text=Servizio di autenticazione delle autorità Svizzere AGOV - una collaborazione tra Cantoni, Comuni e l'Amministrazione federale. -
+footer.text=Servizio di autenticazione delle autorità Svizzere AGOV – una collaborazione tra Cantoni, Comuni e l'Amministrazione federale. -
general.AGOVAccessApp=App AGOV access
general.accessApp=App AGOV access
general.authenticate=Autentifica
@@ -111,7 +113,7 @@ general.moreOptions=ALTRE OPZIONI
general.or=O
general.otherLoginMethods=Altri metodi di login
general.recovery=Ripristino
-general.recovery.help.link=https://help.agov.ch/?c=100recovery
+general.recovery.help.link=https://agov.ch/recovery
general.recoveryCode.downloadPdf=Salva come PDF
general.recoveryCode.inputLabel=Codice di ripristino
general.recoveryCode.repeatCodeError=Il codice inserito non è corretto. Verifichi di averlo salvato correttamente e riprovi.
@@ -218,8 +220,8 @@ op-onboarding.done.message=La registrazione è riuscita. Ora l’acces
op-onboarding.done.title=FINITO
op-onboarding.failed.title=ERRORE
op-onboarding.intro.message1=Per completare la registrazione per l'accesso AGOV operations, è necessario avere un account AGOV o FED-LOGIN.
-op-onboarding.intro.message2=Dopo aver cliccato su "Continua", si è reindirizzati al servizio di autenticazione.
-op-onboarding.intro.message3=Se utilizza AGOV e l’account non soddisfa ancora il livello richiesto AGOVaq, potrà avviare la verifica dell’identità richiesta.
+op-onboarding.intro.message2=Dopo aver cliccato su «Continua», si è reindirizzati al servizio di autenticazione.
+op-onboarding.intro.message3=Se utilizza AGOV e l’account non soddisfa ancora il livello richiesto AGOVaq, potrà iniziare la verifica dell’identità richiesta.
op-onboarding.intro.title=INIZIARE
op-onboarding.onboarding=Registrazione AGOV op
op-onboarding.process.message=Qualcosa non ha funzionato. Contattare il supporto AGOV e, se necessario, richiedere un nuovo link di registrazione.
@@ -283,13 +285,13 @@ recovery_check_code.too_many_tries.instruction1=Il codice di ripristino inserito
recovery_check_code.too_many_tries.instruction2=Si prega di andare alla guida di AGOV aiuto per contattare un agente dell'assistenza. Saranno in grado di aiutarla con il processo di recupero.
recovery_check_noCode.banner.error=Troppi tentativi.
recovery_check_noCode.instruction1=Potresti aver tentato di inserire il codice di ripristino troppe volte.
-recovery_check_noCode.instruction2=Chiudi il browser web e inizia nuovamente il processo di ripristino dell'account tra dieci minuti da https://agov.ch/me.
+recovery_check_noCode.instruction2=Chiudi il browser web e inizia nuovamente il processo di ripristino dell'account tra dieci minuti da agov.ch/me.
recovery_code.banner.error=Mostri il suo codice di ripristino per poter continuare.
recovery_code.instruction=Il codice di ripristino le aiuta ad accedere al suo conto in caso in cui lei abbia perso le credentiali di accesso. Per favore, conservi il codice di ripristino in un luogo sicuro.
recovery_code.newRecoveryCode=Introduzione del codice di ripristino
recovery_code.validUntil=Valido fino a:
recovery_fidokey_auth.button=Inizi l'authenticazione della chiave
-recovery_fidokey_auth.fidoInstruction=Clicchi su "Inizi l'authenticazione della chiave"
+recovery_fidokey_auth.fidoInstruction=Clicchi su «Inizi l'authenticazione della chiave»
recovery_fidokey_auth.instruction1=Ha già registrato una nuova chiave di sicurezza !!!SECURITY_KEY_NAME!!! come parte del processo di recupero.
recovery_fidokey_auth.instruction2=Si prega di usare !!!SECURITY_KEY_NAME!!! per poter seguire i passaggi seguenti per identificarti.
recovery_fidokey_auth.keyRegistered=Chiave di sicurezza già registrata
@@ -311,9 +313,9 @@ recovery_questionnaire_loginfactor.no=No
recovery_questionnaire_loginfactor.question=Ha registrato più di un fattore di accesso (app AGOV access o chiave di sicurezza) al suo account?
recovery_questionnaire_loginfactor.yes=Si
recovery_questionnaire_no_recovery.explanation1=In base alle sue risposte, l'opzione di ripristino AGOV non sembra necessaria al momento.
-recovery_questionnaire_no_recovery.explanation2=Se ha bisogno di ulteriori informazioni, visiti https://agov.ch/help per articoli di supporto.
-recovery_questionnaire_no_recovery.instruction1=Se riscontra problemi di accesso a un'applicazione, visiti https://agov.ch/me e verifichi se può accedere con successo.
-recovery_questionnaire_no_recovery.instruction2=Se ha registrato più fattori di accesso ma ha perso l'accesso a uno di essi, visit https://agov.ch/me per rimuovere quello a cui ha perso l'accesso.
+recovery_questionnaire_no_recovery.explanation2=Se ha bisogno di ulteriori informazioni, visiti agov.ch/help per articoli di supporto.
+recovery_questionnaire_no_recovery.instruction1=Se riscontra problemi di accesso a un'applicazione, visiti agov.ch/me e verifichi se può accedere con successo.
+recovery_questionnaire_no_recovery.instruction2=Se ha registrato più fattori di accesso ma ha perso l'accesso a uno di essi, visit agov.ch/me per rimuovere quello a cui ha perso l'accesso.
recovery_questionnaire_reason_selection.answer1=Ho problemi ad accedere, anche se ho la mia app/chiave di sicurezza
recovery_questionnaire_reason_selection.answer10=Ho perso uno dei miei fattori di accesso (app AGOV access o chiave di sicurezza)
recovery_questionnaire_reason_selection.answer2=Non sono riuscito a completare la registrazione
@@ -329,7 +331,9 @@ recovery_questionnaire_reason_selection.instruction=Selezioni il motivo per cui
recovery_start_info.banner.warning=Non è possibile utilizzare l’account finché il processo di ripristino non sarà concluso.
recovery_start_info.instruction=Durante il processo di ripristino registrerà un nuovo fattore di login. Se il suo account contiene informazioni verificate, potrebbe dover effettuare anche un processo di verificazione per completare il ripristino.
recovery_start_info.title=Sta per iniziare il processo di ripristino
-reject.button.label=Rifiuti
+reject.button.label=Rifiuta
+signup.button.label=Iscriviti
+skip.button.label=Salta
submit.button.label=Continua
tan.sent=Inserisci il codice di sicurezza che è stato inviato al tuo telefono cellulare.
timeout.description=La sessione è scaduta. Chiuda questa finestra e provi ad accedere nuovamente.
@@ -340,6 +344,7 @@ title.logout.confirmation=Logout
title.logout.reminder=Logout
title.oauth.consent=Autorizzazione del client
title.saml.failed=Error
+title.signup=Crea un account
title.timeout.page=Logout
user_input.invalid.email=Inserire un'e-mail valida.
user_input.invalid.email.required=Campo obbligatorio
diff --git a/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/auth/var/opt/nevisauth/default/conf/OpOnbrdng-PreProcessing.groovy b/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/auth/var/opt/nevisauth/default/conf/OpOnbrdng-PreProcessing.groovy
index 78a31e7..1117956 100644
--- a/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/auth/var/opt/nevisauth/default/conf/OpOnbrdng-PreProcessing.groovy
+++ b/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/auth/var/opt/nevisauth/default/conf/OpOnbrdng-PreProcessing.groovy
@@ -131,4 +131,4 @@ if (response.getNote('lasterror') != null) {
cleanSession()
}
-response.setStatus(AuthResponse.AUTH_CONTINUE)
\ No newline at end of file
+response.setStatus(AuthResponse.AUTH_CONTINUE)
diff --git a/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/auth/var/opt/nevisauth/default/conf/env.conf b/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/auth/var/opt/nevisauth/default/conf/env.conf
index 88fcd73..15db7e4 100644
--- a/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/auth/var/opt/nevisauth/default/conf/env.conf
+++ b/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/auth/var/opt/nevisauth/default/conf/env.conf
@@ -13,8 +13,9 @@ JAVA_OPTS=(
"-javaagent:/opt/agent/opentelemetry-javaagent.jar"
"-Dotel.javaagent.logging=application"
"-Dotel.javaagent.configuration-file=/var/opt/nevisauth/default/conf/otel.properties"
- "-Dotel.resource.attributes=service.version=8.2411.3,service.instance.id=$HOSTNAME"
+ "-Dotel.resource.attributes=service.version=8.2505.5,service.instance.id=$HOSTNAME"
"-Djavax.net.ssl.trustStore=/var/opt/keys/trust/auth-default-tls-trust/truststore.p12"
"-Djavax.net.ssl.trustStorePassword=\${exec:/var/opt/keys/trust/auth-default-tls-trust/keypass}"
)
+
diff --git a/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/auth/var/opt/nevisauth/default/conf/esauth4.xml b/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/auth/var/opt/nevisauth/default/conf/esauth4.xml
index 636c727..cc247ab 100644
--- a/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/auth/var/opt/nevisauth/default/conf/esauth4.xml
+++ b/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/auth/var/opt/nevisauth/default/conf/esauth4.xml
@@ -45,6 +45,8 @@
+
+
@@ -65,6 +67,8 @@
+
+
@@ -101,7 +105,7 @@
-
+
@@ -358,7 +362,7 @@
-
+
@@ -374,222 +378,21 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
-
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
+
@@ -795,6 +598,12 @@
+
+
+
+
+
+
@@ -1137,8 +946,6 @@
-
-
@@ -1157,6 +964,12 @@
+
+
+
+
+
+
@@ -1234,7 +1047,7 @@
-
+
@@ -1342,4 +1155,6 @@
+
+
diff --git a/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/auth/var/opt/nevisauth/default/conf/log_login_user.groovy b/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/auth/var/opt/nevisauth/default/conf/log_login_user.groovy
index c54ad9b..e5dc6b7 100644
--- a/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/auth/var/opt/nevisauth/default/conf/log_login_user.groovy
+++ b/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/auth/var/opt/nevisauth/default/conf/log_login_user.groovy
@@ -12,4 +12,4 @@ try {
} catch(Exception ex) {
LOG.error("Exception in logLoginUser groovy script: " + ex)
response.setResult('error');
-}
\ No newline at end of file
+}
diff --git a/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/auth/var/opt/nevisauth/default/conf/logging.yml b/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/auth/var/opt/nevisauth/default/conf/logging.yml
index 5587b9d..304f1a7 100644
--- a/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/auth/var/opt/nevisauth/default/conf/logging.yml
+++ b/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/auth/var/opt/nevisauth/default/conf/logging.yml
@@ -16,12 +16,6 @@ Configuration:
level: "INFO"
- name: "EsAuthStart"
level: "INFO"
- - name: "org.apache.catalina.loader.WebappClassLoader"
- level: "FATAL"
- - name: "org.apache.catalina.startup.HostConfig"
- level: "ERROR"
- - name: "ch.nevis.esauth.events"
- level: "FATAL"
- name: "AGOVOP-ACCT"
level: "INFO"
- name: "AGOVOP-IDENT"
diff --git a/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/auth/var/opt/nevisauth/default/conf/otel.properties b/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/auth/var/opt/nevisauth/default/conf/otel.properties
index 87fd6ba..403e886 100644
--- a/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/auth/var/opt/nevisauth/default/conf/otel.properties
+++ b/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/auth/var/opt/nevisauth/default/conf/otel.properties
@@ -1,4 +1,5 @@
otel.service.name = auth
+otel.traces.sampler = always_on
otel.traces.exporter = none
otel.metrics.exporter = none
otel.logs.exporter = none
diff --git a/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/auth/var/opt/nevisauth/default/conf/saml_sp_nevisidm_admin_realm_extract_issuer.groovy b/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/auth/var/opt/nevisauth/default/conf/saml_sp_nevisidm_admin_realm_extract_issuer.groovy
index 05df29d..bb8bdfc 100644
--- a/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/auth/var/opt/nevisauth/default/conf/saml_sp_nevisidm_admin_realm_extract_issuer.groovy
+++ b/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/auth/var/opt/nevisauth/default/conf/saml_sp_nevisidm_admin_realm_extract_issuer.groovy
@@ -59,4 +59,4 @@ else { // no incoming message.
}
}
-response.setResult('ok')
\ No newline at end of file
+response.setResult('ok')
diff --git a/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/auth/var/opt/nevisauth/default/conf/saml_sp_nevisidm_operations_realm_extract_issuer.groovy b/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/auth/var/opt/nevisauth/default/conf/saml_sp_nevisidm_operations_realm_extract_issuer.groovy
index 05df29d..bb8bdfc 100644
--- a/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/auth/var/opt/nevisauth/default/conf/saml_sp_nevisidm_operations_realm_extract_issuer.groovy
+++ b/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/auth/var/opt/nevisauth/default/conf/saml_sp_nevisidm_operations_realm_extract_issuer.groovy
@@ -59,4 +59,4 @@ else { // no incoming message.
}
}
-response.setResult('ok')
\ No newline at end of file
+response.setResult('ok')
diff --git a/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/auth/var/opt/nevisauth/default/conf/selectIdmProfile.groovy b/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/auth/var/opt/nevisauth/default/conf/selectIdmProfile.groovy
deleted file mode 100644
index 4951a61..0000000
--- a/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/auth/var/opt/nevisauth/default/conf/selectIdmProfile.groovy
+++ /dev/null
@@ -1,74 +0,0 @@
-import groovy.xml.XmlSlurper
-
-def idmSeverityRoleMap = [
- "EnterpriseRoleAdmin": [11, "op-idmlogin.role.accs-mgmt-idm"],
- "ClientRoot": [12, "op-idmlogin.role.support-priv"],
- "AppAdmin": [20, "op-idmlogin.role.idmcfg-mgmt"],
- "AppOwner": [5, "op-idmlogin.role.accs-mgmt-nonidm"],
- "UserAndUnitAdmin": [7, "op-idmlogin.role.usr-unit-mgmt"],
- "UserAdmin": [6, "op-idmlogin.role.usr-mgmt"],
- "TemplateAdmin": [10, "op-idmlogin.role.support-basic"],
- "Helpdesk": [1, "op-idmlogin.role.readonly-access" ]
-]
-
-try {
- def dtoString = session['ch.adnovum.nevisidm.userDto']
-
- def idmDto = new XmlSlurper().parseText(dtoString)
- def idmPrfMap = idmDto.'**'.findAll
- { prf -> prf.name() == 'profiles'
- && prf.'**'.find
- { role -> role.name() == 'roles'
- && role.applicationName.text() == 'nevisIdm'
- }
- }.collectEntries { prf -> [ prf.extId.text(),
- prf.'**'.findAll
- { role -> role.name() == 'roles'
- && role.applicationName.text() == 'nevisIdm'
- }.collect{ rolePrioEntry -> idmSeverityRoleMap[rolePrioEntry.name.text()] ?: [1000, "DO-NOT-USE(${rolePrioEntry.name.text()})"]
- }.sort { a, b -> a[0] <=> b[0] // sort by severity
- }.last()[1] // take label of the ighest one
- ] }
-
- if ((inargs.getProperty('submit', '') == 'go') && idmPrfMap.containsKey(inargs.getProperty('profile_selection', 'missing'))) {
-
- // user selected a profile which exists, we take it
- def operationsProfileExtId = inargs.getProperty('profile_selection', 'missing')
- LOG.info("User selected profile: ${operationsProfileExtId} '${idmPrfMap.get(operationsProfileExtId)}'")
- response.setSessionAttribute('operationsProfileExtId', '' + operationsProfileExtId)
- response.setResult('ok')
- return
-
- } else if (idmPrfMap.size() == 1) {
-
- // we take the only profile, with an IDM role
- def operationsProfileExtId = idmPrfMap.keySet().first()
- LOG.info("taking the only profile with an idm role: ${operationsProfileExtId} '${idmPrfMap.get(operationsProfileExtId)}'")
- response.setSessionAttribute('operationsProfileExtId', '' + operationsProfileExtId)
- response.setResult('ok')
- return
-
- } else if (idmPrfMap.isEmpty()) {
-
- // no profile with an IDM role, do nothing
- response.setResult('ok')
- return
-
- } else {
-
- // user should select a profile
- response.setGuiName('op_idmlogin_select_profile')
- idmPrfMap.each {
- response.addRadioGuiField('profile_selection', it.value, it.key)
- }
- response.addButtonGuiField('submit', 'general.continue', 'go')
-
- response.setStatus(ch.nevis.esauth.auth.engine.AuthResponse.AUTH_CONTINUE)
- return
- }
-} catch (Exception e) {
- def errorMsg = "Failed to process profile selection: ${e.getMessage()}"
- LOG.error(errorMsg, e)
- response.setError(9901, errorMsg)
- response.setResult('error')
-}
\ No newline at end of file
diff --git a/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/auth/var/opt/nevisauth/default/conf/set_userextid_groovy_script_step.groovy b/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/auth/var/opt/nevisauth/default/conf/set_userextid_groovy_script_step.groovy
deleted file mode 100644
index 5d1fc49..0000000
--- a/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/auth/var/opt/nevisauth/default/conf/set_userextid_groovy_script_step.groovy
+++ /dev/null
@@ -1,59 +0,0 @@
-try {
- def s = request.getAuthSession(true)
-
- LOG.debug("operationsExtId: ${notes['saml.attributes.http://schemas.agov.ch/ws/2023/05/identity/claims/operationsUserExtId']}")
- LOG.debug("operationsUserProfileExtIdList: ${notes['saml.attributes.http://schemas.agov.ch/ws/2023/05/identity/claims/operationsUserProfileExtId']}")
-
- // set operation's account extId and profile extid
- if (notes['saml.attributes.http://schemas.agov.ch/ws/2023/05/identity/claims/operationsUserExtId'] == null || notes['saml.attributes.http://schemas.agov.ch/ws/2023/05/identity/claims/operationsUserProfileExtId'] == null) {
- LOG.error("[OPACCESS] User ${notes['saml.assertion.subject']} tried to access without operations account or profile")
- response.setResult('error');
- return
- }
-
- response.setSessionAttribute('operationsExtId', notes['saml.attributes.http://schemas.agov.ch/ws/2023/05/identity/claims/operationsUserExtId'])
-
- // extract additional attributes from assertion in session
- if (notes['saml.attributes.http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname']) {
- response.setSessionAttribute('idp.firstName', notes['saml.attributes.http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname'])
- }
- if (notes['saml.attributes.http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname']) {
- response.setSessionAttribute('idp.lastName', notes['saml.attributes.http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname'])
- }
- if (notes['saml.attributes.http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress']) {
- response.setSessionAttribute('idp.email', notes['saml.attributes.http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress'])
- }
- if (notes['saml.attributes.http://schemas.agov.ch/ws/2023/05/identity/claims/languageOfCorrespondance']) {
- response.setSessionAttribute('idp.language', notes['saml.attributes.http://schemas.agov.ch/ws/2023/05/identity/claims/languageOfCorrespondance'])
- }
-
- // we take the first one, if there is no profile in the operations unit
- def unitAndProfileExtidPar = notes['saml.attributes.http://schemas.agov.ch/ws/2023/05/identity/claims/operationsUserProfileExtId']
- .split(',').find{pairstr -> pairstr.split("\\\\")[1] == "130274ee-7e24-4050-9b94-d5717ef52ade" }
- ?: notes['saml.attributes.http://schemas.agov.ch/ws/2023/05/identity/claims/operationsUserProfileExtId'].split(',')[0]
-
- if (! unitAndProfileExtidPar.contains('130274ee-7e24-4050-9b94-d5717ef52ade') )
- {
- LOG.info("[OPACCESS] User ${notes['saml.assertion.subject']} with opaccount ${notes['saml.attributes.http://schemas.agov.ch/ws/2023/05/identity/claims/operationsUserExtId']} has no operations profile, we use the first one")
- }
- response.setSessionAttribute('operationsProfileExtId', unitAndProfileExtidPar.split("\\\\")[0])
-
- // ad role based on agov aq level
- def acrToRoleMap = [ 'urn:qa.agov.ch:names:tc:ac:classes:100':'AGOV-Loi.level100',
- 'urn:qa.agov.ch:names:tc:ac:classes:200':'AGOV-Loi.level200',
- 'urn:qa.agov.ch:names:tc:ac:classes:300':'AGOV-Loi.level300',
- 'urn:qa.agov.ch:names:tc:ac:classes:400':'AGOV-Loi.level400',
- 'urn:qa.agov.ch:names:tc:ac:classes:500':'AGOV-Loi.level500'
- ]
-
- if (acrToRoleMap[session['ch.nevis.auth.saml.assertion.authnContextClassRef']?='none']) {
- response.addActualRole(acrToRoleMap[session['ch.nevis.auth.saml.assertion.authnContextClassRef']])
- }
-
-
- response.setResult('ok');
-
-} catch(Exception ex) {
- LOG.warn("Exception in selectProfile groovy script: " + ex)
- response.setResult('error');
-}
\ No newline at end of file
diff --git a/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/idm-job/etc/nevis/k8s-nevisidm-batch-641ac4edf0c17383d3c0ea38.yaml b/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/idm-job/etc/nevis/k8s-nevisidm-batch-641ac4edf0c17383d3c0ea38.yaml
index 315af3f..2852866 100644
--- a/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/idm-job/etc/nevis/k8s-nevisidm-batch-641ac4edf0c17383d3c0ea38.yaml
+++ b/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/idm-job/etc/nevis/k8s-nevisidm-batch-641ac4edf0c17383d3c0ea38.yaml
@@ -11,8 +11,8 @@ metadata:
spec:
type: "NevisIDM"
replicas: 1
- version: "8.2411.3"
- gitInitVersion: "1.3.0"
+ version: "8.2505.5"
+ gitInitVersion: "1.4.0"
runAsNonRoot: true
ports:
management: 8998
@@ -40,13 +40,14 @@ spec:
management:
httpGet:
path: "/health"
+ initialDelaySeconds: 60
periodSeconds: 5
timeoutSeconds: 6
- failureThreshold: 50
+ failureThreshold: 30
podDisruptionBudget:
maxUnavailable: "50%"
git:
- tag: "r-f1a1d7e9c3345612747d207988ade2a9715621a0"
+ tag: "r-a067bc8dc88872382ee82b06c8c85326557df02e"
dir: "DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/idm-job"
credentials: "git-credentials"
keystores:
diff --git a/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/idm-job/var/opt/nevisidm/default/conf/env.conf b/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/idm-job/var/opt/nevisidm/default/conf/env.conf
index be7a557..4036f42 100644
--- a/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/idm-job/var/opt/nevisidm/default/conf/env.conf
+++ b/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/idm-job/var/opt/nevisidm/default/conf/env.conf
@@ -4,5 +4,5 @@ JAVA_OPTS=(
"-javaagent:/opt/agent/opentelemetry-javaagent.jar"
"-Dotel.javaagent.logging=application"
"-Dotel.javaagent.configuration-file=/var/opt/nevisidm/default/conf/otel.properties"
- "-Dotel.resource.attributes=service.version=8.2411.3,service.instance.id=$HOSTNAME"
-)
\ No newline at end of file
+ "-Dotel.resource.attributes=service.version=8.2505.5,service.instance.id=$HOSTNAME"
+)
diff --git a/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/idm-job/var/opt/nevisidm/default/conf/nevisidm-prod.properties b/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/idm-job/var/opt/nevisidm/default/conf/nevisidm-prod.properties
index 6883cd9..18bf926 100644
--- a/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/idm-job/var/opt/nevisidm/default/conf/nevisidm-prod.properties
+++ b/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/idm-job/var/opt/nevisidm/default/conf/nevisidm-prod.properties
@@ -2,6 +2,14 @@
web.gui.languages.default=de
# source: pattern://0d4bbba28a4a76094d41df81
database.connection.url=jdbc:mariadb://session-db-primary-service.adn-agov-database-01-uat:3306/nevisidm_uat?pinGlobalTxToPhysicalConnection=1&useMysqlMetadata=true&cachePrepStmts=true&prepStmtCacheSize=1000&sslMode=disable
+# source: pattern://0116b3002d0e713e23e6be72
+database.connection.pool.size.min=5
+# source: pattern://0116b3002d0e713e23e6be72
+database.connection.pool.size.max=10
+# source: pattern://0d4bbba28a4a76094d41df81
+database.connection.max.lifetime=1800
+# source: pattern://0d4bbba28a4a76094d41df81
+database.connection.max.idle.time=600
# source: pattern://0d4bbba28a4a76094d41df81
database.connection.username=adndbadmin
# source: pattern://0d4bbba28a4a76094d41df81
@@ -53,10 +61,6 @@ application.modules.event.repeat.count=-1
# source: pattern://0116b3002d0e713e23e6be72
application.modules.provisioning.enabled=false
# source: pattern://0116b3002d0e713e23e6be72
-database.connection.pool.size.max=10
-# source: pattern://0116b3002d0e713e23e6be72
-database.connection.pool.size.min=5
-# source: pattern://0116b3002d0e713e23e6be72
database.connection.xa.enabled=false
# source: pattern://0116b3002d0e713e23e6be72
database.transaction.timeout=60
diff --git a/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/idm-job/var/opt/nevisidm/default/conf/otel.properties b/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/idm-job/var/opt/nevisidm/default/conf/otel.properties
index af78f34..38939a8 100644
--- a/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/idm-job/var/opt/nevisidm/default/conf/otel.properties
+++ b/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/idm-job/var/opt/nevisidm/default/conf/otel.properties
@@ -1,4 +1,5 @@
otel.service.name = idm-job
+otel.traces.sampler = always_on
otel.traces.exporter = none
otel.metrics.exporter = none
otel.logs.exporter = none
diff --git a/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/idm-job/var/opt/nevisidm/default/conf/rolesMapping.properties b/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/idm-job/var/opt/nevisidm/default/conf/rolesMapping.properties
index 952dfaa..bb9706e 100644
--- a/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/idm-job/var/opt/nevisidm/default/conf/rolesMapping.properties
+++ b/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/idm-job/var/opt/nevisidm/default/conf/rolesMapping.properties
@@ -1,7 +1,7 @@
# source: pattern://50d6c91ace65f52fa56d7113
nevisIdm.TemplateAdmin=AccessControl.ApplicationSearch,AccessControl.ApplicationView,AccessControl.AuthorizationApplSearch,AccessControl.AuthorizationApplView,AccessControl.AuthorizationClientView,AccessControl.AuthorizationSearch,AccessControl.AuthorizationUnitSearch,AccessControl.AuthorizationUnitView,AccessControl.AuthorizationView,AccessControl.ClientApplView,AccessControl.ClientSearch,AccessControl.ClientView,AccessControl.CollectionView,AccessControl.CredentialSearch,AccessControl.CredentialView,AccessControl.EntityAttributeAccessOverride,AccessControl.GenerateReport,AccessControl.ProfileSearch,AccessControl.ProfileView,AccessControl.PropertyAllowedValueSearch,AccessControl.PropertyAllowedValueView,AccessControl.PropertyAttributeAccessOverride,AccessControl.PropertySearch,AccessControl.PropertyValueModify,AccessControl.PropertyValueSearch,AccessControl.PropertyValueView,AccessControl.PropertyView,AccessControl.RoleSearch,AccessControl.RoleView,AccessControl.SearchResultsExport,AccessControl.UnitSearch,AccessControl.UnitView,AccessControl.UserModify,AccessControl.UserSearch,AccessControl.UserView,AccessControl.EnterpriseAuthorizationSearch,AccessControl.EnterpriseAuthorizationView,AccessControl.EnterpriseRoleMemberSearch,AccessControl.EnterpriseRoleView,AccessControl.AuthorizationEnterpriseRoleSearch,AccessControl.AuthorizationEnterpriseRoleView,AccessControl.HistoryView
# source: pattern://50d6c91ace65f52fa56d7113
-nevisIdm.UserAdmin=AccessControl.ApplicationView,AccessControl.AuthorizationSearch,AccessControl.AuthorizationApplView,AccessControl.AuthorizationClientView,AccessControl.AuthorizationUnitView,AccessControl.AuthorizationView,AccessControl.ClientSearch,AccessControl.ClientView,AccessControl.CredentialChangeState,AccessControl.CredentialCreate,AccessControl.CredentialSearch,AccessControl.CredentialView,AccessControl.CredentialViewPlainValue,AccessControl.EntityAttributeAccessOverride,AccessControl.ProfileCreate,AccessControl.ProfileModify,AccessControl.ProfileSearch,AccessControl.ProfileView,AccessControl.PropertyAllowedValueSearch,AccessControl.PropertyAllowedValueView,AccessControl.PropertySearch,AccessControl.PropertyValueCreate,AccessControl.PropertyValueDelete,AccessControl.PropertyValueModify,AccessControl.PropertyValueSearch,AccessControl.PropertyValueView,AccessControl.PropertyView,AccessControl.RoleSearch,AccessControl.RoleView,AccessControl.UnitSearch,AccessControl.UnitView,AccessControl.UserCreate,AccessControl.UserModify,AccessControl.UserSearch,AccessControl.UserView,AccessControl.PropertyAttributeAccessOverride,AccessControl.CollectionView,AccessControl.GenerateReport,AccessControl.SearchResultsExport,AccessControl.EnterpriseAuthorizationSearch,AccessControl.EnterpriseAuthorizationView,AccessControl.EnterpriseRoleMemberSearch,AccessControl.EnterpriseRoleView,AccessControl.AuthorizationEnterpriseRoleSearch,AccessControl.AuthorizationEnterpriseRoleView
+nevisIdm.UserAdmin=AccessControl.ApplicationView,AccessControl.AuthorizationSearch,AccessControl.AuthorizationApplView,AccessControl.AuthorizationClientView,AccessControl.AuthorizationUnitView,AccessControl.AuthorizationView,AccessControl.ClientSearch,AccessControl.ClientView,AccessControl.CredentialChangeState,AccessControl.CredentialCreate,AccessControl.CredentialSearch,AccessControl.CredentialView,AccessControl.EntityAttributeAccessOverride,AccessControl.ProfileCreate,AccessControl.ProfileModify,AccessControl.ProfileSearch,AccessControl.ProfileView,AccessControl.PropertyAllowedValueSearch,AccessControl.PropertyAllowedValueView,AccessControl.PropertySearch,AccessControl.PropertyValueCreate,AccessControl.PropertyValueDelete,AccessControl.PropertyValueModify,AccessControl.PropertyValueSearch,AccessControl.PropertyValueView,AccessControl.PropertyView,AccessControl.RoleSearch,AccessControl.RoleView,AccessControl.UnitSearch,AccessControl.UnitView,AccessControl.UserCreate,AccessControl.UserModify,AccessControl.UserSearch,AccessControl.UserView,AccessControl.PropertyAttributeAccessOverride,AccessControl.CollectionView,AccessControl.GenerateReport,AccessControl.SearchResultsExport,AccessControl.EnterpriseAuthorizationSearch,AccessControl.EnterpriseAuthorizationView,AccessControl.EnterpriseRoleMemberSearch,AccessControl.EnterpriseRoleView,AccessControl.AuthorizationEnterpriseRoleSearch,AccessControl.AuthorizationEnterpriseRoleView
# source: pattern://50d6c91ace65f52fa56d7113
nevisIdm.Root=AccessControl.ApplicationCreate,AccessControl.ApplicationDelete,AccessControl.ApplicationModify,AccessControl.ApplicationSearch,AccessControl.ApplicationView,AccessControl.AuthorizationCreate,AccessControl.AuthorizationDelete,AccessControl.AuthorizationModify,AccessControl.AuthorizationSearch,AccessControl.AuthorizationApplCreate,AccessControl.AuthorizationApplDelete,AccessControl.AuthorizationApplSearch,AccessControl.AuthorizationApplView,AccessControl.AuthorizationClientCreate,AccessControl.AuthorizationClientDelete,AccessControl.AuthorizationClientSearch,AccessControl.AuthorizationClientView,AccessControl.AuthorizationUnitCreate,AccessControl.AuthorizationUnitDelete,AccessControl.AuthorizationUnitSearch,AccessControl.AuthorizationUnitView,AccessControl.AuthorizationView,AccessControl.BatchJobExecute,AccessControl.BatchJobView,AccessControl.ClientCreate,AccessControl.ClientDelete,AccessControl.ClientModify,AccessControl.ClientApplAssign,AccessControl.ClientApplDelete,AccessControl.ClientApplView,AccessControl.ClientSearch,AccessControl.ClientView,AccessControl.CredentialChangeState,AccessControl.CredentialCreate,AccessControl.CredentialDelete,AccessControl.CredentialModify,AccessControl.CredentialSearch,AccessControl.CredentialView,AccessControl.EntityAttributeAccessOverride,AccessControl.PersistentQueueRetry,AccessControl.PersistentQueueDelete,AccessControl.PersistentQueueView,AccessControl.PolicyConfigurationCreate,AccessControl.PolicyConfigurationDelete,AccessControl.PolicyConfigurationModify,AccessControl.PolicyConfigurationSearch,AccessControl.PolicyConfigurationView,AccessControl.ProfileArchive,AccessControl.ProfileCreate,AccessControl.ProfileDelete,AccessControl.ProfileModify,AccessControl.ProfileSearch,AccessControl.ProfileView,AccessControl.PropertyAllowedValueCreate,AccessControl.PropertyAllowedValueDelete,AccessControl.PropertyAllowedValueModify,AccessControl.PropertyAllowedValueSearch,AccessControl.PropertyAllowedValueView,AccessControl.PropertyCreate,AccessControl.PropertyDelete,AccessControl.PropertyModify,AccessControl.PropertySearch,AccessControl.PropertyValueCreate,AccessControl.PropertyValueDelete,AccessControl.PropertyValueModify,AccessControl.PropertyValueSearch,AccessControl.PropertyValueView,AccessControl.PropertyView,AccessControl.RoleCreate,AccessControl.RoleDelete,AccessControl.RoleModify,AccessControl.RoleSearch,AccessControl.RoleView,AccessControl.SelfAdmin,AccessControl.UnitCreate,AccessControl.UnitCreateTopUnit,AccessControl.UnitDelete,AccessControl.UnitModify,AccessControl.UnitSearch,AccessControl.UnitView,AccessControl.UserArchive,AccessControl.UserCreate,AccessControl.UserDelete,AccessControl.UserModify,AccessControl.UserSearch,AccessControl.UserView,AccessControl.PropertyAttributeAccessOverride,AccessControl.HistoryView,AccessControl.LoginIdOverride,AccessControl.TemplateStore,AccessControl.CollectionView,AccessControl.CollectionCreate,AccessControl.CollectionModify,AccessControl.CollectionDelete,AccessControl.TemplateView,AccessControl.TemplateCreate,AccessControl.TemplateModify,AccessControl.TemplateDelete,AccessControl.TemplateTextView,AccessControl.TemplateTextCreate,AccessControl.TemplateTextModify,AccessControl.TemplateTextDelete,AccessControl.GenerateReport,AccessControl.SearchResultsExport,AccessControl.CredentialViewPlainValue,AccessControl.DeputyCreate,AccessControl.DeputyDelete,AccessControl.UnitCredPolicyView,AccessControl.UnitCredPolicyCreate,AccessControl.UnitCredPolicyDelete,AccessControl.UserCreateTechUser,AccessControl.UserModifyTechUser,AccessControl.UserDeleteTechUser,AccessControl.UserArchiveTechUser,AccessControl.CredentialPdfView,AccessControl.EnterpriseAuthorizationCreate,AccessControl.EnterpriseAuthorizationDelete,AccessControl.EnterpriseAuthorizationModify,AccessControl.EnterpriseAuthorizationSearch,AccessControl.EnterpriseAuthorizationView,AccessControl.AuthorizationEnterpriseRoleCreate,AccessControl.AuthorizationEnterpriseRoleDelete,AccessControl.AuthorizationEnterpriseRoleSearch,AccessControl.AuthorizationEnterpriseRoleView,AccessControl.EnterpriseRoleCreate,AccessControl.EnterpriseRoleModify,AccessControl.EnterpriseRoleDelete,AccessControl.EnterpriseRoleSearch,AccessControl.EnterpriseRoleView,AccessControl.EnterpriseRoleMemberCreate,AccessControl.EnterpriseRoleMemberDelete,AccessControl.EnterpriseRoleMemberSearch,AccessControl.PersonalQuestionSearch,AccessControl.PersonalQuestionView,AccessControl.PersonalQuestionCreate,AccessControl.PersonalQuestionModify,AccessControl.PersonalQuestionDelete,AccessControl.LoginIdModify,AccessControl.TermsView,AccessControl.TermsCreate,AccessControl.TermsModify,AccessControl.TermsDelete,AccessControl.ConsentCreate,AccessControl.ConsentView
# source: pattern://50d6c91ace65f52fa56d7113
@@ -13,7 +13,7 @@ nevisIdm.SoapTechAccessReadOnly=AccessControl.ApplicationSearch,AccessControl.Ap
# source: pattern://50d6c91ace65f52fa56d7113
nevisIdm.TechUser=
# source: pattern://50d6c91ace65f52fa56d7113
-nevisIdm.ClientRoot=AccessControl.ApplicationSearch,AccessControl.ApplicationView,AccessControl.AuthorizationDelete,AccessControl.AuthorizationSearch,AccessControl.AuthorizationApplDelete,AccessControl.AuthorizationApplSearch,AccessControl.AuthorizationApplView,AccessControl.AuthorizationClientDelete,AccessControl.AuthorizationClientSearch,AccessControl.AuthorizationClientView,AccessControl.AuthorizationUnitDelete,AccessControl.AuthorizationUnitSearch,AccessControl.AuthorizationUnitView,AccessControl.AuthorizationView,AccessControl.ClientApplView,AccessControl.ClientSearch,AccessControl.ClientView,AccessControl.CredentialChangeState,AccessControl.CredentialDelete,AccessControl.CredentialSearch,AccessControl.CredentialView,AccessControl.CredentialViewPlainValue,AccessControl.EntityAttributeAccessOverride,AccessControl.ProfileArchive,AccessControl.ProfileDelete,AccessControl.ProfileSearch,AccessControl.ProfileView,AccessControl.PropertyAllowedValueSearch,AccessControl.PropertyAllowedValueView,AccessControl.PropertySearch,AccessControl.PropertyValueDelete,AccessControl.PropertyValueSearch,AccessControl.PropertyValueView,AccessControl.PropertyView,AccessControl.RoleSearch,AccessControl.RoleView,AccessControl.UnitSearch,AccessControl.UnitView,AccessControl.UserArchive,AccessControl.UserModify,AccessControl.UserSearch,AccessControl.UserView,AccessControl.PropertyAttributeAccessOverride,AccessControl.HistoryView,AccessControl.EnterpriseAuthorizationSearch,AccessControl.EnterpriseAuthorizationView,AccessControl.EnterpriseRoleMemberSearch,AccessControl.EnterpriseRoleView,AccessControl.AuthorizationEnterpriseRoleSearch,AccessControl.AuthorizationEnterpriseRoleView,AccessControl.HistoryView
+nevisIdm.ClientRoot=AccessControl.ApplicationSearch,AccessControl.ApplicationView,AccessControl.AuthorizationDelete,AccessControl.AuthorizationSearch,AccessControl.AuthorizationApplDelete,AccessControl.AuthorizationApplSearch,AccessControl.AuthorizationApplView,AccessControl.AuthorizationClientDelete,AccessControl.AuthorizationClientSearch,AccessControl.AuthorizationClientView,AccessControl.AuthorizationUnitDelete,AccessControl.AuthorizationUnitSearch,AccessControl.AuthorizationUnitView,AccessControl.AuthorizationView,AccessControl.ClientApplView,AccessControl.ClientSearch,AccessControl.ClientView,AccessControl.CredentialChangeState,AccessControl.CredentialDelete,AccessControl.CredentialSearch,AccessControl.CredentialView,AccessControl.EntityAttributeAccessOverride,AccessControl.ProfileArchive,AccessControl.ProfileDelete,AccessControl.ProfileSearch,AccessControl.ProfileView,AccessControl.PropertyAllowedValueSearch,AccessControl.PropertyAllowedValueView,AccessControl.PropertySearch,AccessControl.PropertyValueDelete,AccessControl.PropertyValueSearch,AccessControl.PropertyValueView,AccessControl.PropertyView,AccessControl.RoleSearch,AccessControl.RoleView,AccessControl.UnitSearch,AccessControl.UnitView,AccessControl.UserArchive,AccessControl.UserModify,AccessControl.UserSearch,AccessControl.UserView,AccessControl.PropertyAttributeAccessOverride,AccessControl.HistoryView,AccessControl.EnterpriseAuthorizationSearch,AccessControl.EnterpriseAuthorizationView,AccessControl.EnterpriseRoleMemberSearch,AccessControl.EnterpriseRoleView,AccessControl.AuthorizationEnterpriseRoleSearch,AccessControl.AuthorizationEnterpriseRoleView,AccessControl.HistoryView
# source: pattern://50d6c91ace65f52fa56d7113
nevisIdm.Impersonator=
# source: pattern://50d6c91ace65f52fa56d7113
@@ -25,7 +25,7 @@ nevisIdm.BatchJobAdmin=
# source: pattern://50d6c91ace65f52fa56d7113
nevisIdm.MainAppOwner=AccessControl.ApplicationSearch,AccessControl.ApplicationView,AccessControl.PropertyAllowedValueSearch,AccessControl.PropertyAllowedValueView,AccessControl.PropertySearch,AccessControl.PropertyValueSearch,AccessControl.PropertyValueView,AccessControl.PropertyView,AccessControl.RoleSearch,AccessControl.UnitSearch,AccessControl.AuthorizationUnitSearch,AccessControl.AuthorizationApplCreate,AccessControl.AuthorizationApplDelete,AccessControl.AuthorizationApplSearch,AccessControl.AuthorizationApplView,AccessControl.AuthorizationCreate,AccessControl.AuthorizationDelete,AccessControl.AuthorizationModify,AccessControl.AuthorizationSearch,AccessControl.AuthorizationView,AccessControl.ProfileSearch,AccessControl.ProfileView,AccessControl.UserSearch,AccessControl.UserView,AccessControl.RoleView,AccessControl.AuthorizationUnitCreate,AccessControl.AuthorizationUnitDelete,AccessControl.AuthorizationUnitSearch,AccessControl.AuthorizationUnitView,AccessControl.CollectionView,AccessControl.ClientSearch,AccessControl.ClientView,AccessControl.SearchResultsExport,AccessControl.AuthorizationClientCreate,AccessControl.AuthorizationClientDelete,AccessControl.AuthorizationClientSearch,AccessControl.AuthorizationClientView,AccessControl.ClientApplView,AccessControl.EnterpriseAuthorizationSearch,AccessControl.EnterpriseAuthorizationView,AccessControl.AuthorizationEnterpriseRoleSearch,AccessControl.AuthorizationEnterpriseRoleView,AccessControl.EnterpriseRoleSearch,AccessControl.PersonalQuestionSearch,AccessControl.PersonalQuestionView,AccessControl.TermsView,AccessControl.TermsCreate,AccessControl.TermsModify,AccessControl.TermsDelete
# source: pattern://50d6c91ace65f52fa56d7113
-nevisIdm.UserAndUnitAdmin=AccessControl.ApplicationView,AccessControl.AuthorizationSearch,AccessControl.AuthorizationApplView,AccessControl.AuthorizationClientView,AccessControl.AuthorizationUnitView,AccessControl.AuthorizationView,AccessControl.ClientSearch,AccessControl.ClientView,AccessControl.CredentialChangeState,AccessControl.CredentialCreate,AccessControl.CredentialViewPlainValue,AccessControl.CredentialSearch,AccessControl.CredentialView,AccessControl.EntityAttributeAccessOverride,AccessControl.ProfileCreate,AccessControl.ProfileModify,AccessControl.ProfileSearch,AccessControl.ProfileView,AccessControl.PropertyAllowedValueSearch,AccessControl.PropertyAllowedValueView,AccessControl.PropertySearch,AccessControl.PropertyValueCreate,AccessControl.PropertyValueDelete,AccessControl.PropertyValueModify,AccessControl.PropertyValueSearch,AccessControl.PropertyValueView,AccessControl.PropertyView,AccessControl.RoleSearch,AccessControl.RoleView,AccessControl.UnitCreate,AccessControl.UnitDelete,AccessControl.UnitModify,AccessControl.UnitSearch,AccessControl.UnitView,AccessControl.UserCreate,AccessControl.UserModify,AccessControl.UserSearch,AccessControl.UserView,AccessControl.PropertyAttributeAccessOverride,AccessControl.CollectionView,AccessControl.GenerateReport,AccessControl.SearchResultsExport,AccessControl.EnterpriseAuthorizationSearch,AccessControl.EnterpriseAuthorizationView,AccessControl.EnterpriseRoleMemberSearch,AccessControl.EnterpriseRoleView,AccessControl.AuthorizationEnterpriseRoleSearch,AccessControl.AuthorizationEnterpriseRoleView
+nevisIdm.UserAndUnitAdmin=AccessControl.ApplicationView,AccessControl.AuthorizationSearch,AccessControl.AuthorizationApplView,AccessControl.AuthorizationClientView,AccessControl.AuthorizationUnitView,AccessControl.AuthorizationView,AccessControl.ClientSearch,AccessControl.ClientView,AccessControl.CredentialChangeState,AccessControl.CredentialCreate,AccessControl.CredentialSearch,AccessControl.CredentialView,AccessControl.EntityAttributeAccessOverride,AccessControl.ProfileCreate,AccessControl.ProfileModify,AccessControl.ProfileSearch,AccessControl.ProfileView,AccessControl.PropertyAllowedValueSearch,AccessControl.PropertyAllowedValueView,AccessControl.PropertySearch,AccessControl.PropertyValueCreate,AccessControl.PropertyValueDelete,AccessControl.PropertyValueModify,AccessControl.PropertyValueSearch,AccessControl.PropertyValueView,AccessControl.PropertyView,AccessControl.RoleSearch,AccessControl.RoleView,AccessControl.UnitCreate,AccessControl.UnitDelete,AccessControl.UnitModify,AccessControl.UnitSearch,AccessControl.UnitView,AccessControl.UserCreate,AccessControl.UserModify,AccessControl.UserSearch,AccessControl.UserView,AccessControl.PropertyAttributeAccessOverride,AccessControl.CollectionView,AccessControl.GenerateReport,AccessControl.SearchResultsExport,AccessControl.EnterpriseAuthorizationSearch,AccessControl.EnterpriseAuthorizationView,AccessControl.EnterpriseRoleMemberSearch,AccessControl.EnterpriseRoleView,AccessControl.AuthorizationEnterpriseRoleSearch,AccessControl.AuthorizationEnterpriseRoleView
# source: pattern://50d6c91ace65f52fa56d7113
nevisIdm.SelfAdmin=AccessControl.SelfAdmin,AccessControl.LoginIdModify
# source: pattern://50d6c91ace65f52fa56d7113
diff --git a/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/idm/etc/nevis/k8s-nevisidm-ba7c7a3b091df0c4b8ba0bb2.yaml b/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/idm/etc/nevis/k8s-nevisidm-ba7c7a3b091df0c4b8ba0bb2.yaml
index 37c3fa7..50601b7 100644
--- a/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/idm/etc/nevis/k8s-nevisidm-ba7c7a3b091df0c4b8ba0bb2.yaml
+++ b/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/idm/etc/nevis/k8s-nevisidm-ba7c7a3b091df0c4b8ba0bb2.yaml
@@ -11,8 +11,8 @@ metadata:
spec:
type: "NevisIDM"
replicas: 1
- version: "8.2411.3"
- gitInitVersion: "1.3.0"
+ version: "8.2505.5"
+ gitInitVersion: "1.4.0"
runAsNonRoot: true
ports:
management: 8998
@@ -40,13 +40,14 @@ spec:
management:
httpGet:
path: "/health"
+ initialDelaySeconds: 60
periodSeconds: 5
timeoutSeconds: 6
- failureThreshold: 50
+ failureThreshold: 30
podDisruptionBudget:
maxUnavailable: "50%"
git:
- tag: "r-f1a1d7e9c3345612747d207988ade2a9715621a0"
+ tag: "r-a067bc8dc88872382ee82b06c8c85326557df02e"
dir: "DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/idm"
credentials: "git-credentials"
keystores:
diff --git a/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/idm/var/opt/nevisidm/default/conf/env.conf b/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/idm/var/opt/nevisidm/default/conf/env.conf
index be7a557..4036f42 100644
--- a/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/idm/var/opt/nevisidm/default/conf/env.conf
+++ b/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/idm/var/opt/nevisidm/default/conf/env.conf
@@ -4,5 +4,5 @@ JAVA_OPTS=(
"-javaagent:/opt/agent/opentelemetry-javaagent.jar"
"-Dotel.javaagent.logging=application"
"-Dotel.javaagent.configuration-file=/var/opt/nevisidm/default/conf/otel.properties"
- "-Dotel.resource.attributes=service.version=8.2411.3,service.instance.id=$HOSTNAME"
-)
\ No newline at end of file
+ "-Dotel.resource.attributes=service.version=8.2505.5,service.instance.id=$HOSTNAME"
+)
diff --git a/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/idm/var/opt/nevisidm/default/conf/logging.yml b/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/idm/var/opt/nevisidm/default/conf/logging.yml
index dc97f4e..a6bd468 100644
--- a/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/idm/var/opt/nevisidm/default/conf/logging.yml
+++ b/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/idm/var/opt/nevisidm/default/conf/logging.yml
@@ -31,12 +31,12 @@ Configuration:
level: "INFO"
- name: "Ninja"
level: "WARN"
+ - name: "OpTrace"
+ level: "INFO"
- name: "ch.adnovum.nevisidm.service.dbperformance"
level: "INFO"
- name: "ch.nevis.ninja"
level: "WARN"
- - name: "jcan.Op"
- level: "INFO"
Root:
level: "WARN"
additivity: "false"
diff --git a/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/idm/var/opt/nevisidm/default/conf/nevisidm-prod.properties b/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/idm/var/opt/nevisidm/default/conf/nevisidm-prod.properties
index 315e189..c43e919 100644
--- a/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/idm/var/opt/nevisidm/default/conf/nevisidm-prod.properties
+++ b/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/idm/var/opt/nevisidm/default/conf/nevisidm-prod.properties
@@ -2,6 +2,14 @@
web.gui.languages.default=de
# source: pattern://ca0629d86201d4c4ac857d60
database.connection.url=jdbc:mariadb://session-db-primary-service.adn-agov-database-01-uat:3306/nevisidm_uat?pinGlobalTxToPhysicalConnection=1&useMysqlMetadata=true&cachePrepStmts=true&prepStmtCacheSize=1000&sslMode=disable
+# source: pattern://fe4a248ac7b092a6a80624f1
+database.connection.pool.size.min=5
+# source: pattern://fe4a248ac7b092a6a80624f1
+database.connection.pool.size.max=10
+# source: pattern://ca0629d86201d4c4ac857d60
+database.connection.max.lifetime=1800
+# source: pattern://ca0629d86201d4c4ac857d60
+database.connection.max.idle.time=600
# source: pattern://ca0629d86201d4c4ac857d60
database.connection.username=adndbadmin
# source: pattern://ca0629d86201d4c4ac857d60
@@ -59,10 +67,6 @@ application.modules.reporting.characterencoding=ISO-8859-1
# source: pattern://fe4a248ac7b092a6a80624f1
application.modules.reporting.separator=;
# source: pattern://fe4a248ac7b092a6a80624f1
-database.connection.pool.size.max=10
-# source: pattern://fe4a248ac7b092a6a80624f1
-database.connection.pool.size.min=5
-# source: pattern://fe4a248ac7b092a6a80624f1
database.connection.xa.enabled=false
# source: pattern://fe4a248ac7b092a6a80624f1
web.gui.facing.cache.size=10000
diff --git a/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/idm/var/opt/nevisidm/default/conf/otel.properties b/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/idm/var/opt/nevisidm/default/conf/otel.properties
index ae663a6..bf2de6d 100644
--- a/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/idm/var/opt/nevisidm/default/conf/otel.properties
+++ b/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/idm/var/opt/nevisidm/default/conf/otel.properties
@@ -1,4 +1,5 @@
otel.service.name = idm
+otel.traces.sampler = always_on
otel.traces.exporter = none
otel.metrics.exporter = none
otel.logs.exporter = none
diff --git a/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/idm/var/opt/nevisidm/default/conf/rolesMapping.properties b/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/idm/var/opt/nevisidm/default/conf/rolesMapping.properties
index 952dfaa..bb9706e 100644
--- a/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/idm/var/opt/nevisidm/default/conf/rolesMapping.properties
+++ b/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/idm/var/opt/nevisidm/default/conf/rolesMapping.properties
@@ -1,7 +1,7 @@
# source: pattern://50d6c91ace65f52fa56d7113
nevisIdm.TemplateAdmin=AccessControl.ApplicationSearch,AccessControl.ApplicationView,AccessControl.AuthorizationApplSearch,AccessControl.AuthorizationApplView,AccessControl.AuthorizationClientView,AccessControl.AuthorizationSearch,AccessControl.AuthorizationUnitSearch,AccessControl.AuthorizationUnitView,AccessControl.AuthorizationView,AccessControl.ClientApplView,AccessControl.ClientSearch,AccessControl.ClientView,AccessControl.CollectionView,AccessControl.CredentialSearch,AccessControl.CredentialView,AccessControl.EntityAttributeAccessOverride,AccessControl.GenerateReport,AccessControl.ProfileSearch,AccessControl.ProfileView,AccessControl.PropertyAllowedValueSearch,AccessControl.PropertyAllowedValueView,AccessControl.PropertyAttributeAccessOverride,AccessControl.PropertySearch,AccessControl.PropertyValueModify,AccessControl.PropertyValueSearch,AccessControl.PropertyValueView,AccessControl.PropertyView,AccessControl.RoleSearch,AccessControl.RoleView,AccessControl.SearchResultsExport,AccessControl.UnitSearch,AccessControl.UnitView,AccessControl.UserModify,AccessControl.UserSearch,AccessControl.UserView,AccessControl.EnterpriseAuthorizationSearch,AccessControl.EnterpriseAuthorizationView,AccessControl.EnterpriseRoleMemberSearch,AccessControl.EnterpriseRoleView,AccessControl.AuthorizationEnterpriseRoleSearch,AccessControl.AuthorizationEnterpriseRoleView,AccessControl.HistoryView
# source: pattern://50d6c91ace65f52fa56d7113
-nevisIdm.UserAdmin=AccessControl.ApplicationView,AccessControl.AuthorizationSearch,AccessControl.AuthorizationApplView,AccessControl.AuthorizationClientView,AccessControl.AuthorizationUnitView,AccessControl.AuthorizationView,AccessControl.ClientSearch,AccessControl.ClientView,AccessControl.CredentialChangeState,AccessControl.CredentialCreate,AccessControl.CredentialSearch,AccessControl.CredentialView,AccessControl.CredentialViewPlainValue,AccessControl.EntityAttributeAccessOverride,AccessControl.ProfileCreate,AccessControl.ProfileModify,AccessControl.ProfileSearch,AccessControl.ProfileView,AccessControl.PropertyAllowedValueSearch,AccessControl.PropertyAllowedValueView,AccessControl.PropertySearch,AccessControl.PropertyValueCreate,AccessControl.PropertyValueDelete,AccessControl.PropertyValueModify,AccessControl.PropertyValueSearch,AccessControl.PropertyValueView,AccessControl.PropertyView,AccessControl.RoleSearch,AccessControl.RoleView,AccessControl.UnitSearch,AccessControl.UnitView,AccessControl.UserCreate,AccessControl.UserModify,AccessControl.UserSearch,AccessControl.UserView,AccessControl.PropertyAttributeAccessOverride,AccessControl.CollectionView,AccessControl.GenerateReport,AccessControl.SearchResultsExport,AccessControl.EnterpriseAuthorizationSearch,AccessControl.EnterpriseAuthorizationView,AccessControl.EnterpriseRoleMemberSearch,AccessControl.EnterpriseRoleView,AccessControl.AuthorizationEnterpriseRoleSearch,AccessControl.AuthorizationEnterpriseRoleView
+nevisIdm.UserAdmin=AccessControl.ApplicationView,AccessControl.AuthorizationSearch,AccessControl.AuthorizationApplView,AccessControl.AuthorizationClientView,AccessControl.AuthorizationUnitView,AccessControl.AuthorizationView,AccessControl.ClientSearch,AccessControl.ClientView,AccessControl.CredentialChangeState,AccessControl.CredentialCreate,AccessControl.CredentialSearch,AccessControl.CredentialView,AccessControl.EntityAttributeAccessOverride,AccessControl.ProfileCreate,AccessControl.ProfileModify,AccessControl.ProfileSearch,AccessControl.ProfileView,AccessControl.PropertyAllowedValueSearch,AccessControl.PropertyAllowedValueView,AccessControl.PropertySearch,AccessControl.PropertyValueCreate,AccessControl.PropertyValueDelete,AccessControl.PropertyValueModify,AccessControl.PropertyValueSearch,AccessControl.PropertyValueView,AccessControl.PropertyView,AccessControl.RoleSearch,AccessControl.RoleView,AccessControl.UnitSearch,AccessControl.UnitView,AccessControl.UserCreate,AccessControl.UserModify,AccessControl.UserSearch,AccessControl.UserView,AccessControl.PropertyAttributeAccessOverride,AccessControl.CollectionView,AccessControl.GenerateReport,AccessControl.SearchResultsExport,AccessControl.EnterpriseAuthorizationSearch,AccessControl.EnterpriseAuthorizationView,AccessControl.EnterpriseRoleMemberSearch,AccessControl.EnterpriseRoleView,AccessControl.AuthorizationEnterpriseRoleSearch,AccessControl.AuthorizationEnterpriseRoleView
# source: pattern://50d6c91ace65f52fa56d7113
nevisIdm.Root=AccessControl.ApplicationCreate,AccessControl.ApplicationDelete,AccessControl.ApplicationModify,AccessControl.ApplicationSearch,AccessControl.ApplicationView,AccessControl.AuthorizationCreate,AccessControl.AuthorizationDelete,AccessControl.AuthorizationModify,AccessControl.AuthorizationSearch,AccessControl.AuthorizationApplCreate,AccessControl.AuthorizationApplDelete,AccessControl.AuthorizationApplSearch,AccessControl.AuthorizationApplView,AccessControl.AuthorizationClientCreate,AccessControl.AuthorizationClientDelete,AccessControl.AuthorizationClientSearch,AccessControl.AuthorizationClientView,AccessControl.AuthorizationUnitCreate,AccessControl.AuthorizationUnitDelete,AccessControl.AuthorizationUnitSearch,AccessControl.AuthorizationUnitView,AccessControl.AuthorizationView,AccessControl.BatchJobExecute,AccessControl.BatchJobView,AccessControl.ClientCreate,AccessControl.ClientDelete,AccessControl.ClientModify,AccessControl.ClientApplAssign,AccessControl.ClientApplDelete,AccessControl.ClientApplView,AccessControl.ClientSearch,AccessControl.ClientView,AccessControl.CredentialChangeState,AccessControl.CredentialCreate,AccessControl.CredentialDelete,AccessControl.CredentialModify,AccessControl.CredentialSearch,AccessControl.CredentialView,AccessControl.EntityAttributeAccessOverride,AccessControl.PersistentQueueRetry,AccessControl.PersistentQueueDelete,AccessControl.PersistentQueueView,AccessControl.PolicyConfigurationCreate,AccessControl.PolicyConfigurationDelete,AccessControl.PolicyConfigurationModify,AccessControl.PolicyConfigurationSearch,AccessControl.PolicyConfigurationView,AccessControl.ProfileArchive,AccessControl.ProfileCreate,AccessControl.ProfileDelete,AccessControl.ProfileModify,AccessControl.ProfileSearch,AccessControl.ProfileView,AccessControl.PropertyAllowedValueCreate,AccessControl.PropertyAllowedValueDelete,AccessControl.PropertyAllowedValueModify,AccessControl.PropertyAllowedValueSearch,AccessControl.PropertyAllowedValueView,AccessControl.PropertyCreate,AccessControl.PropertyDelete,AccessControl.PropertyModify,AccessControl.PropertySearch,AccessControl.PropertyValueCreate,AccessControl.PropertyValueDelete,AccessControl.PropertyValueModify,AccessControl.PropertyValueSearch,AccessControl.PropertyValueView,AccessControl.PropertyView,AccessControl.RoleCreate,AccessControl.RoleDelete,AccessControl.RoleModify,AccessControl.RoleSearch,AccessControl.RoleView,AccessControl.SelfAdmin,AccessControl.UnitCreate,AccessControl.UnitCreateTopUnit,AccessControl.UnitDelete,AccessControl.UnitModify,AccessControl.UnitSearch,AccessControl.UnitView,AccessControl.UserArchive,AccessControl.UserCreate,AccessControl.UserDelete,AccessControl.UserModify,AccessControl.UserSearch,AccessControl.UserView,AccessControl.PropertyAttributeAccessOverride,AccessControl.HistoryView,AccessControl.LoginIdOverride,AccessControl.TemplateStore,AccessControl.CollectionView,AccessControl.CollectionCreate,AccessControl.CollectionModify,AccessControl.CollectionDelete,AccessControl.TemplateView,AccessControl.TemplateCreate,AccessControl.TemplateModify,AccessControl.TemplateDelete,AccessControl.TemplateTextView,AccessControl.TemplateTextCreate,AccessControl.TemplateTextModify,AccessControl.TemplateTextDelete,AccessControl.GenerateReport,AccessControl.SearchResultsExport,AccessControl.CredentialViewPlainValue,AccessControl.DeputyCreate,AccessControl.DeputyDelete,AccessControl.UnitCredPolicyView,AccessControl.UnitCredPolicyCreate,AccessControl.UnitCredPolicyDelete,AccessControl.UserCreateTechUser,AccessControl.UserModifyTechUser,AccessControl.UserDeleteTechUser,AccessControl.UserArchiveTechUser,AccessControl.CredentialPdfView,AccessControl.EnterpriseAuthorizationCreate,AccessControl.EnterpriseAuthorizationDelete,AccessControl.EnterpriseAuthorizationModify,AccessControl.EnterpriseAuthorizationSearch,AccessControl.EnterpriseAuthorizationView,AccessControl.AuthorizationEnterpriseRoleCreate,AccessControl.AuthorizationEnterpriseRoleDelete,AccessControl.AuthorizationEnterpriseRoleSearch,AccessControl.AuthorizationEnterpriseRoleView,AccessControl.EnterpriseRoleCreate,AccessControl.EnterpriseRoleModify,AccessControl.EnterpriseRoleDelete,AccessControl.EnterpriseRoleSearch,AccessControl.EnterpriseRoleView,AccessControl.EnterpriseRoleMemberCreate,AccessControl.EnterpriseRoleMemberDelete,AccessControl.EnterpriseRoleMemberSearch,AccessControl.PersonalQuestionSearch,AccessControl.PersonalQuestionView,AccessControl.PersonalQuestionCreate,AccessControl.PersonalQuestionModify,AccessControl.PersonalQuestionDelete,AccessControl.LoginIdModify,AccessControl.TermsView,AccessControl.TermsCreate,AccessControl.TermsModify,AccessControl.TermsDelete,AccessControl.ConsentCreate,AccessControl.ConsentView
# source: pattern://50d6c91ace65f52fa56d7113
@@ -13,7 +13,7 @@ nevisIdm.SoapTechAccessReadOnly=AccessControl.ApplicationSearch,AccessControl.Ap
# source: pattern://50d6c91ace65f52fa56d7113
nevisIdm.TechUser=
# source: pattern://50d6c91ace65f52fa56d7113
-nevisIdm.ClientRoot=AccessControl.ApplicationSearch,AccessControl.ApplicationView,AccessControl.AuthorizationDelete,AccessControl.AuthorizationSearch,AccessControl.AuthorizationApplDelete,AccessControl.AuthorizationApplSearch,AccessControl.AuthorizationApplView,AccessControl.AuthorizationClientDelete,AccessControl.AuthorizationClientSearch,AccessControl.AuthorizationClientView,AccessControl.AuthorizationUnitDelete,AccessControl.AuthorizationUnitSearch,AccessControl.AuthorizationUnitView,AccessControl.AuthorizationView,AccessControl.ClientApplView,AccessControl.ClientSearch,AccessControl.ClientView,AccessControl.CredentialChangeState,AccessControl.CredentialDelete,AccessControl.CredentialSearch,AccessControl.CredentialView,AccessControl.CredentialViewPlainValue,AccessControl.EntityAttributeAccessOverride,AccessControl.ProfileArchive,AccessControl.ProfileDelete,AccessControl.ProfileSearch,AccessControl.ProfileView,AccessControl.PropertyAllowedValueSearch,AccessControl.PropertyAllowedValueView,AccessControl.PropertySearch,AccessControl.PropertyValueDelete,AccessControl.PropertyValueSearch,AccessControl.PropertyValueView,AccessControl.PropertyView,AccessControl.RoleSearch,AccessControl.RoleView,AccessControl.UnitSearch,AccessControl.UnitView,AccessControl.UserArchive,AccessControl.UserModify,AccessControl.UserSearch,AccessControl.UserView,AccessControl.PropertyAttributeAccessOverride,AccessControl.HistoryView,AccessControl.EnterpriseAuthorizationSearch,AccessControl.EnterpriseAuthorizationView,AccessControl.EnterpriseRoleMemberSearch,AccessControl.EnterpriseRoleView,AccessControl.AuthorizationEnterpriseRoleSearch,AccessControl.AuthorizationEnterpriseRoleView,AccessControl.HistoryView
+nevisIdm.ClientRoot=AccessControl.ApplicationSearch,AccessControl.ApplicationView,AccessControl.AuthorizationDelete,AccessControl.AuthorizationSearch,AccessControl.AuthorizationApplDelete,AccessControl.AuthorizationApplSearch,AccessControl.AuthorizationApplView,AccessControl.AuthorizationClientDelete,AccessControl.AuthorizationClientSearch,AccessControl.AuthorizationClientView,AccessControl.AuthorizationUnitDelete,AccessControl.AuthorizationUnitSearch,AccessControl.AuthorizationUnitView,AccessControl.AuthorizationView,AccessControl.ClientApplView,AccessControl.ClientSearch,AccessControl.ClientView,AccessControl.CredentialChangeState,AccessControl.CredentialDelete,AccessControl.CredentialSearch,AccessControl.CredentialView,AccessControl.EntityAttributeAccessOverride,AccessControl.ProfileArchive,AccessControl.ProfileDelete,AccessControl.ProfileSearch,AccessControl.ProfileView,AccessControl.PropertyAllowedValueSearch,AccessControl.PropertyAllowedValueView,AccessControl.PropertySearch,AccessControl.PropertyValueDelete,AccessControl.PropertyValueSearch,AccessControl.PropertyValueView,AccessControl.PropertyView,AccessControl.RoleSearch,AccessControl.RoleView,AccessControl.UnitSearch,AccessControl.UnitView,AccessControl.UserArchive,AccessControl.UserModify,AccessControl.UserSearch,AccessControl.UserView,AccessControl.PropertyAttributeAccessOverride,AccessControl.HistoryView,AccessControl.EnterpriseAuthorizationSearch,AccessControl.EnterpriseAuthorizationView,AccessControl.EnterpriseRoleMemberSearch,AccessControl.EnterpriseRoleView,AccessControl.AuthorizationEnterpriseRoleSearch,AccessControl.AuthorizationEnterpriseRoleView,AccessControl.HistoryView
# source: pattern://50d6c91ace65f52fa56d7113
nevisIdm.Impersonator=
# source: pattern://50d6c91ace65f52fa56d7113
@@ -25,7 +25,7 @@ nevisIdm.BatchJobAdmin=
# source: pattern://50d6c91ace65f52fa56d7113
nevisIdm.MainAppOwner=AccessControl.ApplicationSearch,AccessControl.ApplicationView,AccessControl.PropertyAllowedValueSearch,AccessControl.PropertyAllowedValueView,AccessControl.PropertySearch,AccessControl.PropertyValueSearch,AccessControl.PropertyValueView,AccessControl.PropertyView,AccessControl.RoleSearch,AccessControl.UnitSearch,AccessControl.AuthorizationUnitSearch,AccessControl.AuthorizationApplCreate,AccessControl.AuthorizationApplDelete,AccessControl.AuthorizationApplSearch,AccessControl.AuthorizationApplView,AccessControl.AuthorizationCreate,AccessControl.AuthorizationDelete,AccessControl.AuthorizationModify,AccessControl.AuthorizationSearch,AccessControl.AuthorizationView,AccessControl.ProfileSearch,AccessControl.ProfileView,AccessControl.UserSearch,AccessControl.UserView,AccessControl.RoleView,AccessControl.AuthorizationUnitCreate,AccessControl.AuthorizationUnitDelete,AccessControl.AuthorizationUnitSearch,AccessControl.AuthorizationUnitView,AccessControl.CollectionView,AccessControl.ClientSearch,AccessControl.ClientView,AccessControl.SearchResultsExport,AccessControl.AuthorizationClientCreate,AccessControl.AuthorizationClientDelete,AccessControl.AuthorizationClientSearch,AccessControl.AuthorizationClientView,AccessControl.ClientApplView,AccessControl.EnterpriseAuthorizationSearch,AccessControl.EnterpriseAuthorizationView,AccessControl.AuthorizationEnterpriseRoleSearch,AccessControl.AuthorizationEnterpriseRoleView,AccessControl.EnterpriseRoleSearch,AccessControl.PersonalQuestionSearch,AccessControl.PersonalQuestionView,AccessControl.TermsView,AccessControl.TermsCreate,AccessControl.TermsModify,AccessControl.TermsDelete
# source: pattern://50d6c91ace65f52fa56d7113
-nevisIdm.UserAndUnitAdmin=AccessControl.ApplicationView,AccessControl.AuthorizationSearch,AccessControl.AuthorizationApplView,AccessControl.AuthorizationClientView,AccessControl.AuthorizationUnitView,AccessControl.AuthorizationView,AccessControl.ClientSearch,AccessControl.ClientView,AccessControl.CredentialChangeState,AccessControl.CredentialCreate,AccessControl.CredentialViewPlainValue,AccessControl.CredentialSearch,AccessControl.CredentialView,AccessControl.EntityAttributeAccessOverride,AccessControl.ProfileCreate,AccessControl.ProfileModify,AccessControl.ProfileSearch,AccessControl.ProfileView,AccessControl.PropertyAllowedValueSearch,AccessControl.PropertyAllowedValueView,AccessControl.PropertySearch,AccessControl.PropertyValueCreate,AccessControl.PropertyValueDelete,AccessControl.PropertyValueModify,AccessControl.PropertyValueSearch,AccessControl.PropertyValueView,AccessControl.PropertyView,AccessControl.RoleSearch,AccessControl.RoleView,AccessControl.UnitCreate,AccessControl.UnitDelete,AccessControl.UnitModify,AccessControl.UnitSearch,AccessControl.UnitView,AccessControl.UserCreate,AccessControl.UserModify,AccessControl.UserSearch,AccessControl.UserView,AccessControl.PropertyAttributeAccessOverride,AccessControl.CollectionView,AccessControl.GenerateReport,AccessControl.SearchResultsExport,AccessControl.EnterpriseAuthorizationSearch,AccessControl.EnterpriseAuthorizationView,AccessControl.EnterpriseRoleMemberSearch,AccessControl.EnterpriseRoleView,AccessControl.AuthorizationEnterpriseRoleSearch,AccessControl.AuthorizationEnterpriseRoleView
+nevisIdm.UserAndUnitAdmin=AccessControl.ApplicationView,AccessControl.AuthorizationSearch,AccessControl.AuthorizationApplView,AccessControl.AuthorizationClientView,AccessControl.AuthorizationUnitView,AccessControl.AuthorizationView,AccessControl.ClientSearch,AccessControl.ClientView,AccessControl.CredentialChangeState,AccessControl.CredentialCreate,AccessControl.CredentialSearch,AccessControl.CredentialView,AccessControl.EntityAttributeAccessOverride,AccessControl.ProfileCreate,AccessControl.ProfileModify,AccessControl.ProfileSearch,AccessControl.ProfileView,AccessControl.PropertyAllowedValueSearch,AccessControl.PropertyAllowedValueView,AccessControl.PropertySearch,AccessControl.PropertyValueCreate,AccessControl.PropertyValueDelete,AccessControl.PropertyValueModify,AccessControl.PropertyValueSearch,AccessControl.PropertyValueView,AccessControl.PropertyView,AccessControl.RoleSearch,AccessControl.RoleView,AccessControl.UnitCreate,AccessControl.UnitDelete,AccessControl.UnitModify,AccessControl.UnitSearch,AccessControl.UnitView,AccessControl.UserCreate,AccessControl.UserModify,AccessControl.UserSearch,AccessControl.UserView,AccessControl.PropertyAttributeAccessOverride,AccessControl.CollectionView,AccessControl.GenerateReport,AccessControl.SearchResultsExport,AccessControl.EnterpriseAuthorizationSearch,AccessControl.EnterpriseAuthorizationView,AccessControl.EnterpriseRoleMemberSearch,AccessControl.EnterpriseRoleView,AccessControl.AuthorizationEnterpriseRoleSearch,AccessControl.AuthorizationEnterpriseRoleView
# source: pattern://50d6c91ace65f52fa56d7113
nevisIdm.SelfAdmin=AccessControl.SelfAdmin,AccessControl.LoginIdModify
# source: pattern://50d6c91ace65f52fa56d7113
diff --git a/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/logrend/etc/nevis/k8s-nevislogrend-8401da6318c6915d689cdfc9.yaml b/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/logrend/etc/nevis/k8s-nevislogrend-8401da6318c6915d689cdfc9.yaml
index 9e669b4..59608b1 100644
--- a/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/logrend/etc/nevis/k8s-nevislogrend-8401da6318c6915d689cdfc9.yaml
+++ b/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/logrend/etc/nevis/k8s-nevislogrend-8401da6318c6915d689cdfc9.yaml
@@ -11,8 +11,8 @@ metadata:
spec:
type: "NevisLogrend"
replicas: 1
- version: "8.2411.2"
- gitInitVersion: "1.3.0"
+ version: "8.2505.5"
+ gitInitVersion: "1.4.0"
runAsNonRoot: true
ports:
server: 8988
@@ -38,13 +38,14 @@ spec:
startupProbe:
server:
tcpSocket: true
+ initialDelaySeconds: 30
periodSeconds: 5
timeoutSeconds: 4
- failureThreshold: 50
+ failureThreshold: 30
podDisruptionBudget:
maxUnavailable: "50%"
git:
- tag: "r-ffccb0ac6d5831789f198ab73f0ecfff9ea38df7"
+ tag: "r-a067bc8dc88872382ee82b06c8c85326557df02e"
dir: "DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/logrend"
credentials: "git-credentials"
podSecurity:
diff --git a/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/logrend/var/opt/nevislogrend/default/conf/env.conf b/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/logrend/var/opt/nevislogrend/default/conf/env.conf
index d340f6f..6841714 100644
--- a/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/logrend/var/opt/nevislogrend/default/conf/env.conf
+++ b/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/logrend/var/opt/nevislogrend/default/conf/env.conf
@@ -10,5 +10,5 @@ JAVA_OPTS=(
"-javaagent:/opt/agent/opentelemetry-javaagent.jar"
"-Dotel.javaagent.logging=application"
"-Dotel.javaagent.configuration-file=/var/opt/nevislogrend/default/conf/otel.properties"
- "-Dotel.resource.attributes=service.version=8.2411.2,service.instance.id=$HOSTNAME"
-)
\ No newline at end of file
+ "-Dotel.resource.attributes=service.version=8.2505.5,service.instance.id=$HOSTNAME"
+)
diff --git a/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/logrend/var/opt/nevislogrend/default/conf/mimetype.properties b/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/logrend/var/opt/nevislogrend/default/conf/mimetype.properties
index 354fdca..548e1ec 100644
--- a/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/logrend/var/opt/nevislogrend/default/conf/mimetype.properties
+++ b/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/logrend/var/opt/nevislogrend/default/conf/mimetype.properties
@@ -1,3 +1,5 @@
+
ico=image/x-icon
+json=application/json
woff=font/woff
-woff2=font/woff2
\ No newline at end of file
+woff2=font/woff2
diff --git a/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/logrend/var/opt/nevislogrend/default/conf/otel.properties b/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/logrend/var/opt/nevislogrend/default/conf/otel.properties
index 38c0aa7..d135479 100644
--- a/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/logrend/var/opt/nevislogrend/default/conf/otel.properties
+++ b/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/logrend/var/opt/nevislogrend/default/conf/otel.properties
@@ -1,4 +1,5 @@
otel.service.name = logrend
+otel.traces.sampler = always_on
otel.traces.exporter = none
otel.metrics.exporter = none
otel.logs.exporter = none
diff --git a/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/logrend/var/opt/nevislogrend/default/data/applications/IDENT-AuthenticationRealm/resources/conf/text.properties b/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/logrend/var/opt/nevislogrend/default/data/applications/IDENT-AuthenticationRealm/resources/conf/text.properties
index b6b42c8..fa882ed 100644
--- a/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/logrend/var/opt/nevislogrend/default/data/applications/IDENT-AuthenticationRealm/resources/conf/text.properties
+++ b/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/logrend/var/opt/nevislogrend/default/data/applications/IDENT-AuthenticationRealm/resources/conf/text.properties
@@ -13,7 +13,7 @@ darkModeSwitch.aria.label=Dark-Mode-Schalter
dimilar.confirm_identity.checkbox=Ich bestätige, dass dies meine Angaben sind
dimilar.confirm_identity.description=Bitte bestätigen Sie, dass die folgenden Angaben Ihnen gehören, um fortzufahren:
dimilar.confirm_identity.error=Bitte bestätigen Sie, dass die Angaben Ihnen gehören, um fortzufahren.
-dimilar.confirm_identity.link=Wenn diese nicht Ihre Angaben sind, besuchen Sie bitte https://agov.ch/dim.
+dimilar.confirm_identity.link=Wenn diese nicht Ihre Angaben sind, besuchen Sie bitte agov.ch/dimhelp.
dimilar.confirm_identity.title=Angaben bestätigen
dimilar.select_onboarding.description=Willkommen bei AGOV. Bitte komplettieren Sie Ihr Onboarding, indem Sie ein bestehendes oder neues AGOV Konto verbinden.
dimilar.select_onboarding.error-banner=Bitte wählen Sie eine Option aus, um fortzufahren
@@ -21,14 +21,15 @@ dimilar.select_onboarding.existing-account=Onboarding mit einem existierenden AG
dimilar.select_onboarding.proceeding=Wie möchten Sie fortfahren?
dimilar.select_onboarding.registering-account=Onboarding mit einem neuen AGOV-Konto
dimilar.select_onboarding.title=Hallo !!!FIRSTNAME!!! !!!LASTNAME!!!
-dimilar.token_error.support=Um Hilfe zu erhalten, besuchen Sie bitte agov.ch/dim.
+dimilar.token_error.support=Um Hilfe zu erhalten, besuchen Sie bitte agov.ch/dimhelp.
dimilar.token_error.token_expired=Token abgelaufen oder bereits verwendet.
-dimilar_onboarding.aborted.link=Wenn Sie Hilfe benötigen, besuchen Sie bitte https://agov.ch/dim.
+dimilar_onboarding.aborted.link=Wenn Sie Hilfe benötigen, besuchen Sie bitte agov.ch/dimhelp.
dimilar_onboarding.aborted.message=Onboarding abgebrochen. Bitte versuchen Sie es erneut.
-dimilar_onboarding.failed.link=agov.ch/dim.
+dimilar_onboarding.failed.link=agov.ch/dimhelp.
dimilar_onboarding.failed.message=Onboarding abgebrochen. Bitte kontaktieren Sie den Support unter
-dimilar_onboarding.successful.message=Onboarding mit AGOV-Konto erfolgreich. Sie können sich nun bei Dimilar unter https://www.armee.ch/de/dim einloggen.
+dimilar_onboarding.successful.message=Onboarding mit AGOV-Konto erfolgreich. Sie können sich nun beim Dienstmanager unter agov.ch/dim einloggen.
dimilar_onboarding.title=Registrieren
+envbanner.label=Laufzeitumgebung
error_1=Bitte überprüfen Sie Ihre Eingaben.
error_10=Bitte wählen Sie das richtige Benutzerkonto aus.
error_100=Zertifikat-Upload nicht möglich. Das Zertifikat existiert bereits. Wenden Sie sich an Ihr Helpdesk.
@@ -65,7 +66,7 @@ error_9905=Es gibt ein Problem mit Ihrem Operations-Konto. Kontaktieren Sie bitt
error_9909=Es ist ein interner Fehler aufgetreten. Bitten Sie den Support um einen neuen Onboarding-Link.
errors.duplicateValue=Ihr Konto ist bereits mit einem anderen Operations-Zugang verknüpft.
fido2_auth.cancel.fido=Die Authentifizierung mit dem Sicherheitsschlüssel wurde unterbrochen. Bitte vergewissern Sie sich, dass Ihr FIDO-Schlüssel registriert ist und Ihre E-Mail korrekt ist.
-fido2_auth.instruction1=Klicken Sie auf "Weiter"
+fido2_auth.instruction1=Klicken Sie auf «Weiter»
fido2_auth.instruction2=Ein Authentifizierungsfenster wird erscheinen
fido2_auth.instruction3=Folgen Sie den Anweisungen
fido2_auth.skipInstructions=Anweisungen nächstes Mal überspringen
@@ -106,7 +107,7 @@ general.moreOptions=WEITERE OPTIONEN
general.or=ODER
general.otherLoginMethods=Andere Login-Methoden
general.recovery=Wiederherstellung
-general.recovery.help.link=https://help.agov.ch/?c=100recovery
+general.recovery.help.link=https://agov.ch/recovery
general.recoveryCode.downloadPdf=Als PDF herunterladen
general.recoveryCode.inputLabel=Wiederherstellungscode
general.recoveryCode.repeatCodeError=Der von Ihnen eingegebene Code war nicht korrekt. Bitte vergewissern Sie sich, dass Sie ihn richtig abgespeichert haben, und versuchen Sie es erneut.
@@ -233,13 +234,13 @@ recovery_check_code.too_many_tries.instruction1=Der von Ihnen eingegebene Wieder
recovery_check_code.too_many_tries.instruction2=Gehen Sie bitte zur AGOV-Hilfe, um jemanden vom Support zu kontaktieren. Die Person wird Sie beim Wiederherstellungsprozess unterstützen.
recovery_check_noCode.banner.error=Zu viele Versuche.
recovery_check_noCode.instruction1=Möglicherweise haben Sie zu oft versucht, den Wiederherstellungscode einzugeben.
-recovery_check_noCode.instruction2=Bitte schliessen Sie den Webbrowser und starten Sie die Kontowiederherstellung in zehn Minuten erneut auf https://agov.ch/me.
+recovery_check_noCode.instruction2=Bitte schliessen Sie den Webbrowser und starten Sie die Kontowiederherstellung in zehn Minuten erneut auf agov.ch/me.
recovery_code.banner.error=Bitte enthüllen Sie den Code, um fortfahren zu können.
recovery_code.instruction=Der Wiederherstellungscode hilft Ihnen, Zugriff auf Ihr AGOV-Login zu erhalten, falls Sie alle Ihre Login-Faktoren verloren haben. Bitte bewahren Sie den Wiederherstellungscode an einem sicheren Ort auf.
recovery_code.newRecoveryCode=Einführung von Wiederherstellungscode
recovery_code.validUntil=Gültig bis:
recovery_fidokey_auth.button=Schlüsselauthentifizierung starten
-recovery_fidokey_auth.fidoInstruction=Klicken Sie auf "Schlüsselauthentifizierung starten"
+recovery_fidokey_auth.fidoInstruction=Klicken Sie auf «Schlüsselauthentifizierung starten»
recovery_fidokey_auth.instruction1=Sie haben bereits einen neuen Sicherheitsschlüssel !!!SECURITY_KEY_NAME!!! im Rahmen des Wiederherstellungsprozesses registriert.
recovery_fidokey_auth.instruction2=Bitte verwenden Sie !!!SECURITY_KEY_NAME!!! und befolgen Sie die untenstehenden Schritte, um sich zu identifizieren.
recovery_fidokey_auth.keyRegistered=Sicherheitsschlüssel schon registriert
@@ -261,9 +262,9 @@ recovery_questionnaire_loginfactor.no=Nein
recovery_questionnaire_loginfactor.question=Haben Sie mehr als einen Loginfaktor (AGOV access App oder Sicherheitsschlüssel) für Ihren AGOV-Login registriert?
recovery_questionnaire_loginfactor.yes=Ja
recovery_questionnaire_no_recovery.explanation1=Ausgehend von Ihren Antworten scheint eine Wiederherstellung Ihres AGOV-Logins im Moment nicht notwendig zu sein.
-recovery_questionnaire_no_recovery.explanation2=Falls Sie weitere Informationen benötigen, besuchen Sie bitte https://agov.ch/help für Support-Artikel.
-recovery_questionnaire_no_recovery.instruction1=Wenn Sie Probleme haben, sich bei einer Anwendung anzumelden, besuchen Sie bitte https://agov.ch/me und testen Sie, ob Sie sich erfolgreich anmelden können.
-recovery_questionnaire_no_recovery.instruction2=Wenn Sie mehrere Loginfaktoren registriert haben, aber den Zugriff zu einem von ihnen verloren haben, besuchen Sie bitte https://agov.ch/me, um den verlorenen Loginfaktor zu entfernen.
+recovery_questionnaire_no_recovery.explanation2=Falls Sie weitere Informationen benötigen, besuchen Sie bitte agov.ch/help für Support-Artikel.
+recovery_questionnaire_no_recovery.instruction1=Wenn Sie Probleme haben, sich bei einer Anwendung anzumelden, besuchen Sie bitte agov.ch/me und testen Sie, ob Sie sich erfolgreich anmelden können.
+recovery_questionnaire_no_recovery.instruction2=Wenn Sie mehrere Loginfaktoren registriert haben, aber den Zugriff zu einem von ihnen verloren haben, besuchen Sie bitte agov.ch/me, um den verlorenen Loginfaktor zu entfernen.
recovery_questionnaire_reason_selection.answer1=Ich habe Probleme mich anzumelden, obwohl ich meine App / meinen Sicherheitsschlüssel habe
recovery_questionnaire_reason_selection.answer10=Ich habe einen meiner Loginfaktoren verloren (AGOV access App oder Sicherheitsschlüssel)
recovery_questionnaire_reason_selection.answer2=Ich konnte meine Registrierung nicht abschliessen
diff --git a/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/logrend/var/opt/nevislogrend/default/data/applications/IDENT-AuthenticationRealm/resources/conf/text_de.properties b/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/logrend/var/opt/nevislogrend/default/data/applications/IDENT-AuthenticationRealm/resources/conf/text_de.properties
index b6b42c8..fa882ed 100644
--- a/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/logrend/var/opt/nevislogrend/default/data/applications/IDENT-AuthenticationRealm/resources/conf/text_de.properties
+++ b/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/logrend/var/opt/nevislogrend/default/data/applications/IDENT-AuthenticationRealm/resources/conf/text_de.properties
@@ -13,7 +13,7 @@ darkModeSwitch.aria.label=Dark-Mode-Schalter
dimilar.confirm_identity.checkbox=Ich bestätige, dass dies meine Angaben sind
dimilar.confirm_identity.description=Bitte bestätigen Sie, dass die folgenden Angaben Ihnen gehören, um fortzufahren:
dimilar.confirm_identity.error=Bitte bestätigen Sie, dass die Angaben Ihnen gehören, um fortzufahren.
-dimilar.confirm_identity.link=Wenn diese nicht Ihre Angaben sind, besuchen Sie bitte https://agov.ch/dim.
+dimilar.confirm_identity.link=Wenn diese nicht Ihre Angaben sind, besuchen Sie bitte agov.ch/dimhelp.
dimilar.confirm_identity.title=Angaben bestätigen
dimilar.select_onboarding.description=Willkommen bei AGOV. Bitte komplettieren Sie Ihr Onboarding, indem Sie ein bestehendes oder neues AGOV Konto verbinden.
dimilar.select_onboarding.error-banner=Bitte wählen Sie eine Option aus, um fortzufahren
@@ -21,14 +21,15 @@ dimilar.select_onboarding.existing-account=Onboarding mit einem existierenden AG
dimilar.select_onboarding.proceeding=Wie möchten Sie fortfahren?
dimilar.select_onboarding.registering-account=Onboarding mit einem neuen AGOV-Konto
dimilar.select_onboarding.title=Hallo !!!FIRSTNAME!!! !!!LASTNAME!!!
-dimilar.token_error.support=Um Hilfe zu erhalten, besuchen Sie bitte agov.ch/dim.
+dimilar.token_error.support=Um Hilfe zu erhalten, besuchen Sie bitte agov.ch/dimhelp.
dimilar.token_error.token_expired=Token abgelaufen oder bereits verwendet.
-dimilar_onboarding.aborted.link=Wenn Sie Hilfe benötigen, besuchen Sie bitte https://agov.ch/dim.
+dimilar_onboarding.aborted.link=Wenn Sie Hilfe benötigen, besuchen Sie bitte agov.ch/dimhelp.
dimilar_onboarding.aborted.message=Onboarding abgebrochen. Bitte versuchen Sie es erneut.
-dimilar_onboarding.failed.link=agov.ch/dim.
+dimilar_onboarding.failed.link=agov.ch/dimhelp.
dimilar_onboarding.failed.message=Onboarding abgebrochen. Bitte kontaktieren Sie den Support unter
-dimilar_onboarding.successful.message=Onboarding mit AGOV-Konto erfolgreich. Sie können sich nun bei Dimilar unter https://www.armee.ch/de/dim einloggen.
+dimilar_onboarding.successful.message=Onboarding mit AGOV-Konto erfolgreich. Sie können sich nun beim Dienstmanager unter agov.ch/dim einloggen.
dimilar_onboarding.title=Registrieren
+envbanner.label=Laufzeitumgebung
error_1=Bitte überprüfen Sie Ihre Eingaben.
error_10=Bitte wählen Sie das richtige Benutzerkonto aus.
error_100=Zertifikat-Upload nicht möglich. Das Zertifikat existiert bereits. Wenden Sie sich an Ihr Helpdesk.
@@ -65,7 +66,7 @@ error_9905=Es gibt ein Problem mit Ihrem Operations-Konto. Kontaktieren Sie bitt
error_9909=Es ist ein interner Fehler aufgetreten. Bitten Sie den Support um einen neuen Onboarding-Link.
errors.duplicateValue=Ihr Konto ist bereits mit einem anderen Operations-Zugang verknüpft.
fido2_auth.cancel.fido=Die Authentifizierung mit dem Sicherheitsschlüssel wurde unterbrochen. Bitte vergewissern Sie sich, dass Ihr FIDO-Schlüssel registriert ist und Ihre E-Mail korrekt ist.
-fido2_auth.instruction1=Klicken Sie auf "Weiter"
+fido2_auth.instruction1=Klicken Sie auf «Weiter»
fido2_auth.instruction2=Ein Authentifizierungsfenster wird erscheinen
fido2_auth.instruction3=Folgen Sie den Anweisungen
fido2_auth.skipInstructions=Anweisungen nächstes Mal überspringen
@@ -106,7 +107,7 @@ general.moreOptions=WEITERE OPTIONEN
general.or=ODER
general.otherLoginMethods=Andere Login-Methoden
general.recovery=Wiederherstellung
-general.recovery.help.link=https://help.agov.ch/?c=100recovery
+general.recovery.help.link=https://agov.ch/recovery
general.recoveryCode.downloadPdf=Als PDF herunterladen
general.recoveryCode.inputLabel=Wiederherstellungscode
general.recoveryCode.repeatCodeError=Der von Ihnen eingegebene Code war nicht korrekt. Bitte vergewissern Sie sich, dass Sie ihn richtig abgespeichert haben, und versuchen Sie es erneut.
@@ -233,13 +234,13 @@ recovery_check_code.too_many_tries.instruction1=Der von Ihnen eingegebene Wieder
recovery_check_code.too_many_tries.instruction2=Gehen Sie bitte zur AGOV-Hilfe, um jemanden vom Support zu kontaktieren. Die Person wird Sie beim Wiederherstellungsprozess unterstützen.
recovery_check_noCode.banner.error=Zu viele Versuche.
recovery_check_noCode.instruction1=Möglicherweise haben Sie zu oft versucht, den Wiederherstellungscode einzugeben.
-recovery_check_noCode.instruction2=Bitte schliessen Sie den Webbrowser und starten Sie die Kontowiederherstellung in zehn Minuten erneut auf https://agov.ch/me.
+recovery_check_noCode.instruction2=Bitte schliessen Sie den Webbrowser und starten Sie die Kontowiederherstellung in zehn Minuten erneut auf agov.ch/me.
recovery_code.banner.error=Bitte enthüllen Sie den Code, um fortfahren zu können.
recovery_code.instruction=Der Wiederherstellungscode hilft Ihnen, Zugriff auf Ihr AGOV-Login zu erhalten, falls Sie alle Ihre Login-Faktoren verloren haben. Bitte bewahren Sie den Wiederherstellungscode an einem sicheren Ort auf.
recovery_code.newRecoveryCode=Einführung von Wiederherstellungscode
recovery_code.validUntil=Gültig bis:
recovery_fidokey_auth.button=Schlüsselauthentifizierung starten
-recovery_fidokey_auth.fidoInstruction=Klicken Sie auf "Schlüsselauthentifizierung starten"
+recovery_fidokey_auth.fidoInstruction=Klicken Sie auf «Schlüsselauthentifizierung starten»
recovery_fidokey_auth.instruction1=Sie haben bereits einen neuen Sicherheitsschlüssel !!!SECURITY_KEY_NAME!!! im Rahmen des Wiederherstellungsprozesses registriert.
recovery_fidokey_auth.instruction2=Bitte verwenden Sie !!!SECURITY_KEY_NAME!!! und befolgen Sie die untenstehenden Schritte, um sich zu identifizieren.
recovery_fidokey_auth.keyRegistered=Sicherheitsschlüssel schon registriert
@@ -261,9 +262,9 @@ recovery_questionnaire_loginfactor.no=Nein
recovery_questionnaire_loginfactor.question=Haben Sie mehr als einen Loginfaktor (AGOV access App oder Sicherheitsschlüssel) für Ihren AGOV-Login registriert?
recovery_questionnaire_loginfactor.yes=Ja
recovery_questionnaire_no_recovery.explanation1=Ausgehend von Ihren Antworten scheint eine Wiederherstellung Ihres AGOV-Logins im Moment nicht notwendig zu sein.
-recovery_questionnaire_no_recovery.explanation2=Falls Sie weitere Informationen benötigen, besuchen Sie bitte https://agov.ch/help für Support-Artikel.
-recovery_questionnaire_no_recovery.instruction1=Wenn Sie Probleme haben, sich bei einer Anwendung anzumelden, besuchen Sie bitte https://agov.ch/me und testen Sie, ob Sie sich erfolgreich anmelden können.
-recovery_questionnaire_no_recovery.instruction2=Wenn Sie mehrere Loginfaktoren registriert haben, aber den Zugriff zu einem von ihnen verloren haben, besuchen Sie bitte https://agov.ch/me, um den verlorenen Loginfaktor zu entfernen.
+recovery_questionnaire_no_recovery.explanation2=Falls Sie weitere Informationen benötigen, besuchen Sie bitte agov.ch/help für Support-Artikel.
+recovery_questionnaire_no_recovery.instruction1=Wenn Sie Probleme haben, sich bei einer Anwendung anzumelden, besuchen Sie bitte agov.ch/me und testen Sie, ob Sie sich erfolgreich anmelden können.
+recovery_questionnaire_no_recovery.instruction2=Wenn Sie mehrere Loginfaktoren registriert haben, aber den Zugriff zu einem von ihnen verloren haben, besuchen Sie bitte agov.ch/me, um den verlorenen Loginfaktor zu entfernen.
recovery_questionnaire_reason_selection.answer1=Ich habe Probleme mich anzumelden, obwohl ich meine App / meinen Sicherheitsschlüssel habe
recovery_questionnaire_reason_selection.answer10=Ich habe einen meiner Loginfaktoren verloren (AGOV access App oder Sicherheitsschlüssel)
recovery_questionnaire_reason_selection.answer2=Ich konnte meine Registrierung nicht abschliessen
diff --git a/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/logrend/var/opt/nevislogrend/default/data/applications/IDENT-AuthenticationRealm/resources/conf/text_en.properties b/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/logrend/var/opt/nevislogrend/default/data/applications/IDENT-AuthenticationRealm/resources/conf/text_en.properties
index ba6b4f7..27f38fd 100644
--- a/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/logrend/var/opt/nevislogrend/default/data/applications/IDENT-AuthenticationRealm/resources/conf/text_en.properties
+++ b/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/logrend/var/opt/nevislogrend/default/data/applications/IDENT-AuthenticationRealm/resources/conf/text_en.properties
@@ -13,7 +13,7 @@ darkModeSwitch.aria.label=Dark mode toggle
dimilar.confirm_identity.checkbox=I confirm this is my data
dimilar.confirm_identity.description=Please confirm the data below is yours in order to proceed:
dimilar.confirm_identity.error=Please confirm the data is yours to proceed.
-dimilar.confirm_identity.link=If this is not your data, please visit https://agov.ch/dimilar.
+dimilar.confirm_identity.link=If this is not your data, please visit agov.ch/dimhelp.
dimilar.confirm_identity.title=Confirm data
dimilar.select_onboarding.description=Welcome to AGOV. Please complete your onboarding by connecting to an existing or new AGOV account.
dimilar.select_onboarding.error-banner=Please select one option to continue
@@ -21,14 +21,15 @@ dimilar.select_onboarding.existing-account=Onboard with an existing AGOV account
dimilar.select_onboarding.proceeding=How would you like to proceed?
dimilar.select_onboarding.registering-account=Onboard with a new AGOV account
dimilar.select_onboarding.title=Hello !!!FIRSTNAME!!! !!!LASTNAME!!!,
-dimilar.token_error.support=For support please visit https://agov.ch/dimilar.
+dimilar.token_error.support=For support please visit agov.ch/dimhelp.
dimilar.token_error.token_expired=Token expired or already used.
-dimilar_onboarding.aborted.link=If you require support please visit https://agov.ch/dimilar.
+dimilar_onboarding.aborted.link=If you require support please visit agov.ch/dimhelp.
dimilar_onboarding.aborted.message=Onboarding aborted. Please try again.
-dimilar_onboarding.failed.link=https://agov.ch/dimilar.
+dimilar_onboarding.failed.link=agov.ch/dimhelp.
dimilar_onboarding.failed.message=Onboarding aborted. Please contact support at
-dimilar_onboarding.successful.message=Onboarding with AGOV account successful. You are now able to log in to Dimilar at https://www.armee.ch/dim.
+dimilar_onboarding.successful.message=Onboarding with AGOV account successful. You are now able to log in to the Service Manager at agov.ch/dim.
dimilar_onboarding.title=Register
+envbanner.label=Runtime Environment
error_1=Please check your input.
error_10=Please select the correct user account.
error_100=Certificate upload not possible. Certificate already exists. Please contact your helpdesk.
@@ -83,7 +84,7 @@ general.contactSupport=Contact Support
general.continue=Continue
general.data.birthDate=Date of birth
general.data.birthDateFormat=DD.MM.YYYY
-general.data.enrollmentNumber=Enrolment number (SSN/AHV number)
+general.data.enrollmentNumber=SSN/AHV number (Service Manager)
general.data.firstname=First name
general.data.lastname=Last name
general.edit=Edit
@@ -106,7 +107,7 @@ general.moreOptions=MORE OPTIONS
general.or=OR
general.otherLoginMethods=Other login methods
general.recovery=Recovery
-general.recovery.help.link=https://help.agov.ch/?c=100recovery
+general.recovery.help.link=https://agov.ch/recovery
general.recoveryCode.downloadPdf=Download as PDF
general.recoveryCode.inputLabel=Recovery code
general.recoveryCode.repeatCodeError=The code you entered was incorrect. Please ensure you have stored it correctly and try again.
@@ -212,7 +213,7 @@ providePhoneNumber.laterModal.title=Continue without a phone number?
providePhoneNumber.modal.description=To ensure you have recorded your phone number correctly, please repeat it below. An incorrectly stored phone number can make it more difficult to recover your account.
providePhoneNumber.modal.inputLabel=Phone number
providePhoneNumber.modal.title=Repeat phone number
-providePhoneNumber.saveButtonText=Save
+providePhoneNumber.saveButtonText=Continue
providePhoneNumber.title=Add phone number
qrCode.label=Click to open QR code in pop-up window.
recovery_accessapp_auth.accessAppRegistered=AGOV access app already registered
@@ -233,7 +234,7 @@ recovery_check_code.too_many_tries.instruction1=The recovery code you have enter
recovery_check_code.too_many_tries.instruction2=Please go to AGOV help in order to contact a support agent. They will be able to help you with the recovery process.
recovery_check_noCode.banner.error=Too many attempts.
recovery_check_noCode.instruction1=You might have tried to enter the recovery code too many times.
-recovery_check_noCode.instruction2=Please close the web browser and start the account recovery again in ten minutes from https://agov.ch/me.
+recovery_check_noCode.instruction2=Please close the web browser and start the account recovery again in ten minutes from agov.ch/me.
recovery_code.banner.error=Please reveal your recovery code to be able to continue.
recovery_code.instruction=Recovery codes help you gain access to your account in case you lost all of your login factors. Please store the recovery code in a safe place.
recovery_code.newRecoveryCode=Introducing recovery code
@@ -261,9 +262,9 @@ recovery_questionnaire_loginfactor.no=No
recovery_questionnaire_loginfactor.question=Have you registered more than one login factor (AGOV access app or security key) to your account?
recovery_questionnaire_loginfactor.yes=Yes
recovery_questionnaire_no_recovery.explanation1=Based on your answers, the AGOV recovery option does not seem necessary right now.
-recovery_questionnaire_no_recovery.explanation2=Should you need further information, please visit https://agov.ch/help for support articles.
-recovery_questionnaire_no_recovery.instruction1=If you have issues logging in to an application, please visit https://agov.ch/me and test if you can log in successfully.
-recovery_questionnaire_no_recovery.instruction2=If you have several login factors registered but lost access to one of them, please visit https://agov.ch/me to remove the one you have lost access to.
+recovery_questionnaire_no_recovery.explanation2=Should you need further information, please visit agov.ch/help for support articles.
+recovery_questionnaire_no_recovery.instruction1=If you have issues logging in to an application, please visit agov.ch/me and test if you can log in successfully.
+recovery_questionnaire_no_recovery.instruction2=If you have several login factors registered but lost access to one of them, please visit agov.ch/me to remove the one you have lost access to.
recovery_questionnaire_reason_selection.answer1=I have trouble logging in, even though I have my app / security key
recovery_questionnaire_reason_selection.answer10=I lost one of my login factors (AGOV access app or security key)
recovery_questionnaire_reason_selection.answer2=I was unable to finish my registration
@@ -277,7 +278,7 @@ recovery_questionnaire_reason_selection.answer9=I have issues with one of my log
recovery_questionnaire_reason_selection.banner.error=Please select a reason.
recovery_questionnaire_reason_selection.instruction=Please select the reason you are starting the recovery process:
recovery_start_info.banner.warning=You will not be able to use your account until the recovery process has been concluded.
-recovery_start_info.instruction=During the recovery process you will register a new login factor. If your account contains any verified information you might also have to go through a verification process to finish the recovery.
+recovery_start_info.instruction=During the recovery process you will register a new login factor. If your account contains any verified information you might also have to go through a verification process to finish the recovery.
recovery_start_info.title=You are about to start the recovery process
timeout.description=Your session has timed out. Please close this window and try logging in again.
timeout.title=Session expired
diff --git a/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/logrend/var/opt/nevislogrend/default/data/applications/IDENT-AuthenticationRealm/resources/conf/text_fr.properties b/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/logrend/var/opt/nevislogrend/default/data/applications/IDENT-AuthenticationRealm/resources/conf/text_fr.properties
index d0ef46a..bc4a4d6 100644
--- a/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/logrend/var/opt/nevislogrend/default/data/applications/IDENT-AuthenticationRealm/resources/conf/text_fr.properties
+++ b/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/logrend/var/opt/nevislogrend/default/data/applications/IDENT-AuthenticationRealm/resources/conf/text_fr.properties
@@ -11,24 +11,25 @@ agov-ident.onboarding=Enregistrement et vérification
agov-ident.retry=Essayez à nouveau
darkModeSwitch.aria.label=Activer l'apparence sombre
dimilar.confirm_identity.checkbox=Je confirme que ce sont mes données
-dimilar.confirm_identity.description=Veuillez confirmer que les données ci-dessous vous appartiennent afin de poursuivre :
+dimilar.confirm_identity.description=Veuillez confirmer que les données ci-dessous vous appartiennent afin de poursuivre :
dimilar.confirm_identity.error=Veuillez confirmer que les données vous appartiennent afin de poursuivre.
-dimilar.confirm_identity.link=Si ces données ne sont pas les vôtres, veuillez vous rendre sur https://agov.ch/fr/dim.
+dimilar.confirm_identity.link=Si ces données ne sont pas les vôtres, veuillez vous rendre sur agov.ch/dimhelp.
dimilar.confirm_identity.title=Confirmer les données
dimilar.select_onboarding.description=Bienvenue sur AGOV. Veuillez terminer votre intégration en vous connectant à un compte AGOV existant ou en créant un nouveau compte.
dimilar.select_onboarding.error-banner=Veuillez sélectionner une option pour continuer
dimilar.select_onboarding.existing-account=Se connecter avec un compte AGOV existant
-dimilar.select_onboarding.proceeding=Comment voulez-vous procéder ?
+dimilar.select_onboarding.proceeding=Comment voulez-vous procéder ?
dimilar.select_onboarding.registering-account=Se connecter avec un nouveau compte AGOV
dimilar.select_onboarding.title=Bonjour !!!FIRSTNAME!!! !!!LASTNAME!!!,
-dimilar.token_error.support=Si vous avez besoin d'aide veuillez vous rendre sur https://agov.ch/fr/dimf.
+dimilar.token_error.support=Si vous avez besoin d'aide veuillez vous rendre sur agov.ch/dimhelp.
dimilar.token_error.token_expired=Jeton expiré ou déjà utilisé.
-dimilar_onboarding.aborted.link=Si vous avez besoin d'aide veuillez vous rendre sur https://agov.ch/fr/dimf.
+dimilar_onboarding.aborted.link=Si vous avez besoin d'aide veuillez vous rendre sur agov.ch/dimhelp.
dimilar_onboarding.aborted.message=Le processus d’intégration a été annulé. Veuillez réessayer.
-dimilar_onboarding.failed.link=https://agov.ch/fr/dimf.
+dimilar_onboarding.failed.link=agov.ch/dimhelp.
dimilar_onboarding.failed.message=Le processus d'intégration a été annulé. Veuillez contacter le service de support à
-dimilar_onboarding.successful.message=L’intégration avec le compte AGOV a réussi. Vous pouvez maintenant vous connecter sur le gestionnaire de service https://www.armee.ch/fr/dimf.
+dimilar_onboarding.successful.message=L’intégration avec le compte AGOV a réussi. Vous pouvez maintenant vous connecter sur le gestionnaire de service agov.ch/dim.
dimilar_onboarding.title=Créer un compte
+envbanner.label=Environnement d'exécution
error_1=Veuillez vérifier votre saisie.
error_10=Veuillez sélectionner le compte d’utilisateur correct.
error_100=Le téléchargement du certificat est impossible. Le certificat existe déjà. Veuillez contacter votre service d’assistance.
@@ -65,14 +66,14 @@ error_9905=Il y a un problème avec votre compte AGOV operations. Veuillez
error_9909=Un problème interne s’est produit. Veuillez demander un nouveau lien d’enregistrement au service d’assistance.
errors.duplicateValue=Votre compte est déjà lié à un autre accès à AGOV operations.
fido2_auth.cancel.fido=L'authentification avec la clé de sécurité a été interrompue. Veuillez vous assurer que votre clé FIDO est enregistrée et que votre adresse e-mail est correcte, puis suivez les étapes ci-dessous.
-fido2_auth.instruction1=Cliquez sur "Continuer"
+fido2_auth.instruction1=Cliquez sur « Continuer »
fido2_auth.instruction2=Une fenêtre d'authentification s'affichera
fido2_auth.instruction3=Suivez les instructions
fido2_auth.skipInstructions=Passer les instructions la fois suivante
fido2_auth.switchLogin=S'AUTHENTIFIER AVEC
footer.link=https://agov.ch
footer.link.label=Contact
-footer.text=Service d'authentification des autorités suisses AGOV - une collaboration entre les cantons, leurs communes et l'administration fédérale. -
+footer.text=Service d'authentification des autorités suisses AGOV – une collaboration entre les cantons, leurs communes et l'administration fédérale. -
general.AGOVAccessApp=Application AGOV access
general.accessApp=Application AGOV access
general.authenticate=Authentification
@@ -106,18 +107,18 @@ general.moreOptions=PLUS D'OPTIONS
general.or=OU
general.otherLoginMethods=Autres méthodes de connexion
general.recovery=Récupération
-general.recovery.help.link=https://help.agov.ch/?c=100recovery
+general.recovery.help.link=https://agov.ch/recovery
general.recoveryCode.downloadPdf=Télécharger en format PDF
general.recoveryCode.inputLabel=Code de récupération
general.recoveryCode.repeatCodeError=Le code que vous avez saisi est incorrect. Veuillez vous assurer que l'avez enregistré correctement et réessayer.
-general.recoveryCode.repeatCodeModal.description=Pour vous assurer que vous avez correctement enregistré votre code, veillez le répéter ci-dessous. Un code de récupération perdu ou mal enregistré peut rendre la récupération de votre compte plus difficile.
+general.recoveryCode.repeatCodeModal.description=Pour vous assurer que vous avez correctement enregistré votre code, veuillez le répéter ci-dessous. Un code de récupération perdu ou mal enregistré peut rendre la récupération de votre compte plus difficile.
general.recoveryCode.repeatCodeModal.title=Répéter le code de récupération
general.recoveryCode.reveal=Révéler le code de récupération
general.recoveryOngoing=Récupération en cours
general.register=Créer un compte
-general.registerNow=Enregistrez-vous dès maintenant!
+general.registerNow=Enregistrez-vous dès maintenant !
general.registration=Enregistrement
-general.registration.dontHaveAnAccountYet=Vous n'avez pas encore de compte AGOV ?
+general.registration.dontHaveAnAccountYet=Vous n'avez pas encore de compte AGOV ?
general.registration.seeOptions=Voir les options d'enregistrement
general.securityKey=Clé de sécurité
general.skip.content=Passer au contenu principal
@@ -135,9 +136,9 @@ languageDropdown.aria.label=Sélectionner la langue
loainfo.description.200=Pour accéder à l'application, nous devons vérifier vos données. Ce processus peut prendre jusqu'à 2–3 jours.
loainfo.description.300=Pour accéder à l'application, nous devons vérifier vos données. Vous pouvez choisir la procédure que vous préférez à l'étape suivante.
loainfo.description.400=Veuillez saisir votre numéro AVS pour accéder à l'application.
-loainfo.helper=Vos données doivent être vérifiées!
+loainfo.helper=Vos données doivent être vérifiées !
loainfo.later=Plus tard
-loainfo.startNow=Voulez-vous commencer le processus maintenant?
+loainfo.startNow=Voulez-vous commencer le processus maintenant ?
loainfo.startVerification=Démarrer la vérification
loainfo.title=Vérifiez vos données
loggedout.description=Vous vous êtes déconnecté avec succès.
@@ -146,12 +147,12 @@ mauth_usernameless.EID=Continuer avec l'e-ID suisse
mauth_usernameless.banner.error=Authentification interrompue. Veuillez réessayer lorsque la page sera rechargée.
mauth_usernameless.banner.info=Scan réussi. Veuillez continuer dans l'application AGOV access.
mauth_usernameless.banner.success=Authentification réussie. Veuillez attendre d'être connecté.
-mauth_usernameless.cannotLogin=Avez-vous perdu l'accès à votre application / votre clé de sécurité ?
-mauth_usernameless.cannotLogin.accessApp=Vous avez perdu l'accès à votre application AGOV access ?
-mauth_usernameless.cannotLogin.securityKey=Avez-vous perdu l'accès à votre clé de sécurité ?
+mauth_usernameless.cannotLogin=Avez-vous perdu l'accès à votre application / votre clé de sécurité ?
+mauth_usernameless.cannotLogin.accessApp=Vous avez perdu l'accès à votre application AGOV access ?
+mauth_usernameless.cannotLogin.securityKey=Avez-vous perdu l'accès à votre clé de sécurité ?
mauth_usernameless.hideQR=Cacher le code QR
mauth_usernameless.instructions=Connectez-vous en scannant le code QR avec l'application AGOV access
-mauth_usernameless.noAccount=Vous n'avez pas encore de compte AGOV ?
+mauth_usernameless.noAccount=Vous n'avez pas encore de compte AGOV ?
mauth_usernameless.selectLoginMethod=Séléctionner la méthode de connexion
mauth_usernameless.showQR=Afficher le code QR
mauth_usernameless.startRecovery=Commencer la récupération du compte
@@ -159,7 +160,7 @@ mauth_usernameless.useSecurityKey=Utiliser une clé de sécurit&eacu
mauth_usernameless.useSecurityKeyInfo=Une clé de sécurité physique offre un moyen sûr de se connecter sans devoir utiliser son téléphone.
onboard_linking_account_auth.fido_instructions=Une clé de sécurité physique offre un moyen sûr de se connecter à son compte sans devoir utiliser son téléphone.
onboard_linking_account_auth.instructions=Connectez-vous avec votre compte AGOV en scannant le code QR avec votre application AGOV access
-onboarding.cancel-onboarding=Êtes-vous sûr de vouloir annuler la procédure d'intégration ?
+onboarding.cancel-onboarding=Êtes-vous sûr de vouloir annuler la procédure d'intégration ?
onboarding.cancel-onboarding-description=Pour procéder à la récupération de votre compte, vous devrez annuler le processus d’intégration.
onboarding.cancel-proceed-recovery=Oui, annuler et procéder à la récupération
onboarding.login-factor=Étape 1 - Facteur de connexion
@@ -196,7 +197,7 @@ op-onboarding.done.message=L’enregistrement a été effectu&ea
op-onboarding.done.title=TERMINÉ
op-onboarding.failed.title=ERREUR
op-onboarding.intro.message1=Pour terminer l’enregistrement de votre accès à AGOV operations, vous devez disposer d’un compte AGOV ou d’un compte FED-LOGIN.
-op-onboarding.intro.message2=Après avoir cliqué sur "Continuer", vous serez redirigé vers l’authentification.
+op-onboarding.intro.message2=Après avoir cliqué sur « Continuer », vous serez redirigé vers l’authentification.
op-onboarding.intro.message3=Si vous utilisez AGOV et que votre compte n’a pas encore atteint le niveau de qualité d’authentification requis, vous aurez la possibilité de démarrer la vérification d’identité nécessaire pour l’atteindre.
op-onboarding.intro.title=DÉMARRER
op-onboarding.onboarding=Enregistrement de l’accès à AGOV op
@@ -208,8 +209,8 @@ providePhoneNumber.inputLabel=Numéro de téléphone (facultat
providePhoneNumber.laterModal.description1=Sans numéro de téléphone, la récupération de votre compte peut prendre jusqu'à 4 jours si vous perdez l'accès à votre code de récupération.
providePhoneNumber.laterModal.description2=Ajouter un numéro de téléphone vous permet de récupérer votre compte en quelques minutes.
providePhoneNumber.laterModal.description3=Ce numéro de téléphone ne sera pas utilisé pour vous contacter.
-providePhoneNumber.laterModal.title=Continuer sans numéro de téléphone ?
-providePhoneNumber.modal.description=Pour vous assurer que vous avez correctement enregistré votre numéro de téléphone, veillez le répéter ci-dessous. Un numéro de téléphone mal enregistré peut rendre la récupération de votre compte plus difficile.
+providePhoneNumber.laterModal.title=Continuer sans numéro de téléphone ?
+providePhoneNumber.modal.description=Pour vous assurer que vous avez correctement enregistré votre numéro de téléphone, veillez le répéter ci-dessous. Un numéro de téléphone mal enregistré peut rendre la récupération de votre compte plus difficile.
providePhoneNumber.modal.inputLabel=Numéro de téléphone
providePhoneNumber.modal.title=Répéter votre numéro de téléphone
providePhoneNumber.saveButtonText=Sauvegarder
@@ -222,24 +223,24 @@ recovery_check_code.banner.lockedError=Trop de saisies erronées. Veuillez
recovery_check_code.codeIncorrect=Le code saisi est incorrect. Veuillez réessayer.
recovery_check_code.enterRecoveryCode=Code de récupération
recovery_check_code.expired=Trop de tentatives ou votre code de récupération a expiré.
-recovery_check_code.instruction=Veuillez saisir votre code de récupération à 12 chiffres. Lors de votre inscription, vous avez reçu le code de récupération sous la forme d’un fichier PDF ou dans « AGOV me ».
+recovery_check_code.instruction=Veuillez saisir votre code de récupération à 12 chiffres. Lors de votre inscription, vous avez reçu le code de récupération sous la forme d’un fichier PDF ou dans AGOV me.
recovery_check_code.invalid.code=Le code est invalide
recovery_check_code.invalid.code.required=Code requis
recovery_check_code.invalid.code.tooLong=Le code est trop long
recovery_check_code.noAccess=Je n’ai pas accès à mon code de récupération
-recovery_check_code.noCodeAccess=Êtes-vous sûr de ne pas avoir accès à votre code de récupération ?
+recovery_check_code.noCodeAccess=Êtes-vous sûr de ne pas avoir accès à votre code de récupération ?
recovery_check_code.noCodeAccessInstructions=En cas de perte de votre code de récupération, veuillez vous rendre sur AGOV help et contacter le service d’assistance AGOV. Un agent pourra vous aider dans le processus de récupération.
recovery_check_code.too_many_tries.instruction1=Le code de récupération que vous avez saisi a peut-être expiré ou vous avez peut-être essayé de le saisir trop de fois.
recovery_check_code.too_many_tries.instruction2=Veuillez vous rendre sur AGOV help et contacter le service d’assistance. Un agent pourra vous aider dans le processus de récupération.
recovery_check_noCode.banner.error=Trop de tentatives.
recovery_check_noCode.instruction1=Vous avez peut-être essayé de saisir le code de récupération trop de fois.
-recovery_check_noCode.instruction2=Veuillez fermer le navigateur web et recommencer la récupération du compte dans dix minutes à partir de https://agov.ch/me.
+recovery_check_noCode.instruction2=Veuillez fermer le navigateur web et recommencer la récupération du compte dans dix minutes à partir de agov.ch/me.
recovery_code.banner.error=Veuillez révéler votre code de récupération pour pouvoir continuer.
recovery_code.instruction=Les codes de récupération vous permettent d'accéder à votre compte au cas où vous auriez perdu tous vos identifiants. Conservez le code de récupération en lieu sûr.
recovery_code.newRecoveryCode=Introduction du code de récupération
-recovery_code.validUntil=Valable jusqu'au:
+recovery_code.validUntil=Valable jusqu'au :
recovery_fidokey_auth.button=Démarrer l'authentification par clé de sécurité
-recovery_fidokey_auth.fidoInstruction=Cliquez sur "Démarrer l'enregistrement de la clé"
+recovery_fidokey_auth.fidoInstruction=Cliquez sur « Démarrer l'enregistrement de la clé »
recovery_fidokey_auth.instruction1=Vous avez déjà enregistré une nouvelle clé de sécurité !!!SECURITY_KEY_NAME!!! dans le cadre du processus de récupération.
recovery_fidokey_auth.instruction2=Veuillez utiliser !!!SECURITY_KEY_NAME!!! pour suivre les étapes ci-dessous afin de vous identifier.
recovery_fidokey_auth.keyRegistered=Clé de sécurité déjà enregistrée
@@ -247,8 +248,8 @@ recovery_intro_email.banner.error=Le lien que vous avez utilisé a expir&e
recovery_intro_email.banner.info=Veuillez saisir votre adresse e-mail. Nous vous enverrons un e-mail vous permettant de démarrer le processus de récupération.
recovery_intro_email.important=Important:
recovery_intro_email.process=Le processus de récupération ne doit être utilisé que si vous avez perdu l'accès à vos facteurs de connexion (application AGOV access supprimée, clé de sécurité perdue, téléphone perdu, etc.).
-recovery_intro_email_sent.banner.button=Vous n’avez pas reçu l'email?
-recovery_intro_email_sent.banner.success=Merci! Vous recevrez dans un instant un e-mail contenant un lien de récupération et des instructions.
+recovery_intro_email_sent.banner.button=Vous n’avez pas reçu l'email ?
+recovery_intro_email_sent.banner.success=Merci ! Vous recevrez dans un instant un e-mail contenant un lien de récupération et des instructions.
recovery_on_going.finishRecovery=Terminer la récupération
recovery_on_going.instruction=Vous n’avez pas encore terminé le processus de récupération. Dans le cadre du processus de récupération, votre identité peut faire l’objet d’une vérification. Pour accéder à des applications au moyen de votre identifiant AGOV, vous devez terminer la vérification d’identité.
recovery_on_going.title=Veuillez terminer le processus de récupération.
@@ -258,12 +259,12 @@ recovery_questionnaire_instructions.instruction1=Fournissez l'adresse éle
recovery_questionnaire_instructions.instruction2=Suivez les étapes pour récupérer votre compte (les étapes varient en fonction du niveau de vérification de votre compte)
recovery_questionnaire_loginfactor.banner.error=Veuillez choisir une réponse.
recovery_questionnaire_loginfactor.no=Non
-recovery_questionnaire_loginfactor.question=Avez-vous enregistré plus d'un facteur d'authentification (application AGOV access ou clé de sécurité) sur votre compte ?
+recovery_questionnaire_loginfactor.question=Avez-vous enregistré plus d'un facteur d'authentification (application AGOV access ou clé de sécurité) sur votre compte ?
recovery_questionnaire_loginfactor.yes=Oui
recovery_questionnaire_no_recovery.explanation1=D'après vos réponses, l'option de récupération d'AGOV ne semble pas nécessaire pour l'instant.
-recovery_questionnaire_no_recovery.explanation2=Si vous avez besoin de plus amples informations, veuillez consulter https://agov.ch/help pour obtenir des articles de soutien.
-recovery_questionnaire_no_recovery.instruction1=Si vous rencontrez des difficultés pour vous connecter à une application, visitez https://agov.ch/me et vérifiez si vous pouvez vous connecter avec succès.
-recovery_questionnaire_no_recovery.instruction2=Si vous avez enregistré plusieurs facteurs de connexion mais que vous avez perdu l'accès à l'un d'entre eux, veuillez consulter https://agov.ch/me pour supprimer celui auquel vous avez perdu l'accès.
+recovery_questionnaire_no_recovery.explanation2=Si vous avez besoin de plus amples informations, veuillez consulter agov.ch/help pour obtenir des articles de soutien.
+recovery_questionnaire_no_recovery.instruction1=Si vous rencontrez des difficultés pour vous connecter à une application, visitez agov.ch/me et vérifiez si vous pouvez vous connecter avec succès.
+recovery_questionnaire_no_recovery.instruction2=Si vous avez enregistré plusieurs facteurs de connexion mais que vous avez perdu l'accès à l'un d'entre eux, veuillez consulter agov.ch/me pour supprimer celui auquel vous avez perdu l'accès.
recovery_questionnaire_reason_selection.answer1=Je n'arrive pas à me connecter, même si j'ai mon application / ma clé de sécurité
recovery_questionnaire_reason_selection.answer10=J'ai perdu l'un de mes facteurs d'authentification (application AGOV access ou clé de sécurité)
recovery_questionnaire_reason_selection.answer2=Je n'ai pas pu terminer mon inscription
@@ -275,7 +276,7 @@ recovery_questionnaire_reason_selection.answer7=J'ai mes clés de sé
recovery_questionnaire_reason_selection.answer8=J'ai perdu l'accès à toutes mes clés de sécurité et aux applications AGOV access
recovery_questionnaire_reason_selection.answer9=J'ai des problèmes avec l'un de mes facteurs d'authentification (effacé, réinitialisé, PIN oublié)
recovery_questionnaire_reason_selection.banner.error=Veuillez sélectionner un motif.
-recovery_questionnaire_reason_selection.instruction=Veuillez sélectionner la raison pour laquelle vous entamez le processus de récupération :
+recovery_questionnaire_reason_selection.instruction=Veuillez sélectionner la raison pour laquelle vous entamez le processus de récupération :
recovery_start_info.banner.warning=Vous ne pourrez pas utiliser votre compte tant que le processus de récupération n'aura pas été terminé.
recovery_start_info.instruction=Le processus de récupération nécessitera l’enregistrement d’un nouveau facteur d’authentification. Si votre compte contient des informations ayant déjà été vérifiées, il se peut que vous deviez les faire vérifier à nouveau pour terminer la récupération.
recovery_start_info.title=Vous êtes sur le point de démarrer le processus de récupération.
diff --git a/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/logrend/var/opt/nevislogrend/default/data/applications/IDENT-AuthenticationRealm/resources/conf/text_it.properties b/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/logrend/var/opt/nevislogrend/default/data/applications/IDENT-AuthenticationRealm/resources/conf/text_it.properties
index e119f77..9449b38 100644
--- a/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/logrend/var/opt/nevislogrend/default/data/applications/IDENT-AuthenticationRealm/resources/conf/text_it.properties
+++ b/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/logrend/var/opt/nevislogrend/default/data/applications/IDENT-AuthenticationRealm/resources/conf/text_it.properties
@@ -13,7 +13,7 @@ darkModeSwitch.aria.label=Attivare la modalità scura
dimilar.confirm_identity.checkbox=Confermo che questi sono i miei dati
dimilar.confirm_identity.description=Confermi che i dati riportati di seguito le appartengono per poter procedere:
dimilar.confirm_identity.error=Confermi che i dati sono i suoi per poter procedere.
-dimilar.confirm_identity.link=Se questi non sono i suoi dati, visiti https://agov.ch/dim.
+dimilar.confirm_identity.link=Se questi non sono i suoi dati, visiti agov.ch/dimhelp.
dimilar.confirm_identity.title=Confermare i dati
dimilar.select_onboarding.description=Benvenuto in AGOV. Completi la procedura di registrazione collegando un account AGOV esistente o creandone uno nuovo.
dimilar.select_onboarding.error-banner=Selezioni un’opzione per continuare
@@ -21,14 +21,15 @@ dimilar.select_onboarding.existing-account=Proceda con un account AGOV esistente
dimilar.select_onboarding.proceeding=Come desidera procedere?
dimilar.select_onboarding.registering-account=Proceda con un nuovo account AGOV
dimilar.select_onboarding.title=Buongiorno !!!FIRSTNAME!!! !!!LASTNAME!!!,
-dimilar.token_error.support=Per assistenza visita https://agov.ch/dim.
+dimilar.token_error.support=Per assistenza visita agov.ch/dimhelp.
dimilar.token_error.token_expired=Token scaduto o già utilizzato.
-dimilar_onboarding.aborted.link=Se ha bisogno di assistenza, visiti https://agov.ch/dim.
+dimilar_onboarding.aborted.link=Se ha bisogno di assistenza, visiti agov.ch/dimhelp.
dimilar_onboarding.aborted.message=La procedura di registrazione è stata interrotta. Provi di nuovo.
-dimilar_onboarding.failed.link=https://agov.ch/dim.
+dimilar_onboarding.failed.link=agov.ch/dimhelp.
dimilar_onboarding.failed.message=La procedura di registrazione è stata interrotta. Contatti il supporto al
-dimilar_onboarding.successful.message=Registrazione con l’account AGOV completata con successo. Ora può accedere alla Gestione dei servizi su https://www.armee.ch/dim.
+dimilar_onboarding.successful.message=Registrazione con l’account AGOV completata con successo. Ora può accedere alla Gestione dei servizi su agov.ch/dim.
dimilar_onboarding.title=Registrarsi
+envbanner.label=Ambiente di esecuzione
error_1=Verificare i dati inseriti.
error_10=Scegliere l’account utente corretto.
error_100=Impossibile caricare il certificato. Il certificato esiste già. Contattare l’help desk.
@@ -65,14 +66,14 @@ error_9905=Si è verificato un problema con l’account AGOV operation
error_9909=Si è verificato un errore interno. Richiedere al supporto un nuovo link di registrazione.
errors.duplicateValue=Il suo account è già collegato ad un altro accesso operativo.
fido2_auth.cancel.fido=L'autenticazione con la chiave di sicurezza è stata interrotta. Assicurarsi che la chiave FIDO sia registrata e che l'indirizzo e-mail sia corretto, poi seguire le istruzioni.
-fido2_auth.instruction1=Cliccare su "Continua"
+fido2_auth.instruction1=Cliccare su «Continua».
fido2_auth.instruction2=A breve si aprirà una finestra per l'autenticazione.
fido2_auth.instruction3=Seguire le istruzioni.
fido2_auth.skipInstructions=Non mostrare più le istruzioni
fido2_auth.switchLogin=ACCEDERE CON
footer.link=https://agov.ch
footer.link.label=Contatto
-footer.text=Servizio di autenticazione delle autorità Svizzere AGOV - una collaborazione tra Cantoni, Comuni e l'Amministrazione federale. -
+footer.text=Servizio di autenticazione delle autorità Svizzere AGOV – una collaborazione tra Cantoni, Comuni e l'Amministrazione federale. -
general.AGOVAccessApp=App AGOV access
general.accessApp=App AGOV access
general.authenticate=Autentifica
@@ -106,7 +107,7 @@ general.moreOptions=ALTRE OPZIONI
general.or=O
general.otherLoginMethods=Altri metodi di login
general.recovery=Ripristino
-general.recovery.help.link=https://help.agov.ch/?c=100recovery
+general.recovery.help.link=https://agov.ch/recovery
general.recoveryCode.downloadPdf=Salva come PDF
general.recoveryCode.inputLabel=Codice di ripristino
general.recoveryCode.repeatCodeError=Il codice inserito non è corretto. Verifichi di averlo salvato correttamente e riprovi.
@@ -196,8 +197,8 @@ op-onboarding.done.message=La registrazione è riuscita. Ora l’acces
op-onboarding.done.title=FINITO
op-onboarding.failed.title=ERRORE
op-onboarding.intro.message1=Per completare la registrazione per l'accesso AGOV operations, è necessario avere un account AGOV o FED-LOGIN.
-op-onboarding.intro.message2=Dopo aver cliccato su "Continua", si è reindirizzati al servizio di autenticazione.
-op-onboarding.intro.message3=Se utilizza AGOV e l’account non soddisfa ancora il livello richiesto AGOVaq, potrà avviare la verifica dell’identità richiesta.
+op-onboarding.intro.message2=Dopo aver cliccato su «Continua», si è reindirizzati al servizio di autenticazione.
+op-onboarding.intro.message3=Se utilizza AGOV e l’account non soddisfa ancora il livello richiesto AGOVaq, potrà iniziare la verifica dell’identità richiesta.
op-onboarding.intro.title=INIZIARE
op-onboarding.onboarding=Registrazione AGOV op
op-onboarding.process.message=Qualcosa non ha funzionato. Contattare il supporto AGOV e, se necessario, richiedere un nuovo link di registrazione.
@@ -233,13 +234,13 @@ recovery_check_code.too_many_tries.instruction1=Il codice di ripristino inserito
recovery_check_code.too_many_tries.instruction2=Si prega di andare alla guida di AGOV aiuto per contattare un agente dell'assistenza. Saranno in grado di aiutarla con il processo di recupero.
recovery_check_noCode.banner.error=Troppi tentativi.
recovery_check_noCode.instruction1=Potresti aver tentato di inserire il codice di ripristino troppe volte.
-recovery_check_noCode.instruction2=Chiudi il browser web e inizia nuovamente il processo di ripristino dell'account tra dieci minuti da https://agov.ch/me.
+recovery_check_noCode.instruction2=Chiudi il browser web e inizia nuovamente il processo di ripristino dell'account tra dieci minuti da agov.ch/me.
recovery_code.banner.error=Mostri il suo codice di ripristino per poter continuare.
recovery_code.instruction=Il codice di ripristino le aiuta ad accedere al suo conto in caso in cui lei abbia perso le credentiali di accesso. Per favore, conservi il codice di ripristino in un luogo sicuro.
recovery_code.newRecoveryCode=Introduzione del codice di ripristino
recovery_code.validUntil=Valido fino a:
recovery_fidokey_auth.button=Inizi l'authenticazione della chiave
-recovery_fidokey_auth.fidoInstruction=Clicchi su "Inizi l'authenticazione della chiave"
+recovery_fidokey_auth.fidoInstruction=Clicchi su «Inizi l'authenticazione della chiave»
recovery_fidokey_auth.instruction1=Ha già registrato una nuova chiave di sicurezza !!!SECURITY_KEY_NAME!!! come parte del processo di recupero.
recovery_fidokey_auth.instruction2=Si prega di usare !!!SECURITY_KEY_NAME!!! per poter seguire i passaggi seguenti per identificarti.
recovery_fidokey_auth.keyRegistered=Chiave di sicurezza già registrata
@@ -261,9 +262,9 @@ recovery_questionnaire_loginfactor.no=No
recovery_questionnaire_loginfactor.question=Ha registrato più di un fattore di accesso (app AGOV access o chiave di sicurezza) al suo account?
recovery_questionnaire_loginfactor.yes=Si
recovery_questionnaire_no_recovery.explanation1=In base alle sue risposte, l'opzione di ripristino AGOV non sembra necessaria al momento.
-recovery_questionnaire_no_recovery.explanation2=Se ha bisogno di ulteriori informazioni, visiti https://agov.ch/help per articoli di supporto.
-recovery_questionnaire_no_recovery.instruction1=Se riscontra problemi di accesso a un'applicazione, visiti https://agov.ch/me e verifichi se può accedere con successo.
-recovery_questionnaire_no_recovery.instruction2=Se ha registrato più fattori di accesso ma ha perso l'accesso a uno di essi, visit https://agov.ch/me per rimuovere quello a cui ha perso l'accesso.
+recovery_questionnaire_no_recovery.explanation2=Se ha bisogno di ulteriori informazioni, visiti agov.ch/help per articoli di supporto.
+recovery_questionnaire_no_recovery.instruction1=Se riscontra problemi di accesso a un'applicazione, visiti agov.ch/me e verifichi se può accedere con successo.
+recovery_questionnaire_no_recovery.instruction2=Se ha registrato più fattori di accesso ma ha perso l'accesso a uno di essi, visit agov.ch/me per rimuovere quello a cui ha perso l'accesso.
recovery_questionnaire_reason_selection.answer1=Ho problemi ad accedere, anche se ho la mia app/chiave di sicurezza
recovery_questionnaire_reason_selection.answer10=Ho perso uno dei miei fattori di accesso (app AGOV access o chiave di sicurezza)
recovery_questionnaire_reason_selection.answer2=Non sono riuscito a completare la registrazione
diff --git a/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/logrend/var/opt/nevislogrend/default/data/applications/IDENT-AuthenticationRealm/resources/conf/text_rm.properties b/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/logrend/var/opt/nevislogrend/default/data/applications/IDENT-AuthenticationRealm/resources/conf/text_rm.properties
index fb41fdc..4d265b3 100644
--- a/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/logrend/var/opt/nevislogrend/default/data/applications/IDENT-AuthenticationRealm/resources/conf/text_rm.properties
+++ b/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/logrend/var/opt/nevislogrend/default/data/applications/IDENT-AuthenticationRealm/resources/conf/text_rm.properties
@@ -13,7 +13,7 @@ darkModeSwitch.aria.label=Activar l'apparientscha stgira
dimilar.confirm_identity.checkbox=Jau conferm che quest en mias datas
dimilar.confirm_identity.description=Per cuntinuar, confermai che las datas sutvart saudan a Vus per plaschair
dimilar.confirm_identity.error=Per cuntinuar, confermai che las datas saudan a Vus per plaschair.
-dimilar.confirm_identity.link=If this is not your data, please visit https://agov.ch/dimilar.
+dimilar.confirm_identity.link=En cass che quei n'èn betg Vossas inditgaziuns, visitai per plaschair agov.ch/dimhelp.
dimilar.confirm_identity.title=Confermar las datas
dimilar.select_onboarding.description=Bainvegnì ad AGOV. Cumplettai Voss Onboarding cun connectar in conto AGOV nov u gia existent.
dimilar.select_onboarding.error-banner=Selecziunai in'opziun, per cuntinuar
@@ -21,14 +21,15 @@ dimilar.select_onboarding.existing-account=Onboarding cun in conto AGOV gia exis
dimilar.select_onboarding.proceeding=Co vulais Vus cuntinuar?
dimilar.select_onboarding.registering-account=Onboarding cun in nov conto AGOV
dimilar.select_onboarding.title=Allegra !!!FIRSTNAME!!! !!!LASTNAME!!!,
-dimilar.token_error.support=For support please visit https://agov.ch/dimilar.
+dimilar.token_error.support=Sche Vus duvrais agid, visitai per plaschair agov.ch/dimhelp.
dimilar.token_error.token_expired=Token scadì u gia duvrà.
-dimilar_onboarding.aborted.link=If you require support please visit https://agov.ch/dimilar.
+dimilar_onboarding.aborted.link=Sche Vus duvrais agid, visitai per plaschair agov.ch/dimhelp.
dimilar_onboarding.aborted.message=Onboarding suspendì. Empruvai anc ina giada.
-dimilar_onboarding.failed.link=https://agov.ch/dimilar.
+dimilar_onboarding.failed.link=agov.ch/dimhelp.
dimilar_onboarding.failed.message=Onboarding suspendì. Contactai per plaschair il support.
-dimilar_onboarding.successful.message=Onboarding cun conto AGOV reussì. Vus pudais ussa acceder a Dimilar qua https://www.armee.ch/dim.
+dimilar_onboarding.successful.message=Onboarding cun conto AGOV reussì. Vus pudais ussa acceder a la Gestiun da servetsch qua agov.ch/dim.
dimilar_onboarding.title=Registrar
+envbanner.label=Ambient d'execuziun
error_1=Controllai Vossas indicaziuns per plaschair.
error_10=Selecziunai il conto d'utilisader correct.
error_100=I n'è betg pussaivel da chargiar si il certificat. Quest certificat exista gia. Contactai il helpdesk.
@@ -83,7 +84,7 @@ general.contactSupport=Contactar il support
general.continue=Vinavant
general.data.birthDate=Data da naschientscha
general.data.birthDateFormat=DD.MM.AAAA
-general.data.enrollmentNumber=Enrolment number (SSN/AHV number)
+general.data.enrollmentNumber=Numer AVS (gestiun da servetsch)
general.data.firstname=Prenum
general.data.lastname=Num
general.edit=Modifitgar
@@ -106,7 +107,7 @@ general.moreOptions=DAPLI OPTIONS
general.or=U
general.otherLoginMethods=Ulteriuras metodas da login
general.recovery=Recuperaziun
-general.recovery.help.link=https://help.agov.ch/?c=100recovery
+general.recovery.help.link=https://agov.ch/recovery
general.recoveryCode.downloadPdf=Telechargiar en furma da PDF
general.recoveryCode.inputLabel=Code da recuperaziun
general.recoveryCode.repeatCodeError=Il code che Vus avais endatà n'è betg correct. Controllai che Vus l'hajas arcunà correctamain ed endatai el anc ina giada.
@@ -233,7 +234,7 @@ recovery_check_code.too_many_tries.instruction1=Il code da recuperaziun che Vus
recovery_check_code.too_many_tries.instruction2=Giai per plaschair ad AGOV help per contactar insatgi d'il support. Questa Persuna As vegn a sustegnair cun il process da recuperaziun.
recovery_check_noCode.banner.error=Memia bleras emprovas.
recovery_check_noCode.instruction1=Vuss avais eventualmain empruvà da endatar il code da recuperaziun memia bleras giadas.
-recovery_check_noCode.instruction2=Serrai per plaschair il browser da web e cumenzai anc ina giada cun la recuperaziun da Voss conto en 10 minutas a https://agov.ch/me.
+recovery_check_noCode.instruction2=Serrai per plaschair il browser da web e cumenzai anc ina giada cun la recuperaziun da Voss conto en 10 minutas a agov.ch/me.
recovery_code.banner.error=Scuvrir Voss code da recuperaziun per pudair cuntinuar.
recovery_code.instruction=Il code da recuperaziun As permetta d'acceder a Voss conto en cas che Vus avais pers tut Voss facturs da login. Tegnai en salv quest code da recuperaziun en in lieu segir per plaschair.
recovery_code.newRecoveryCode=Introducziun dal code da recuperaziun
@@ -261,9 +262,9 @@ recovery_questionnaire_loginfactor.no=Na
recovery_questionnaire_loginfactor.question=Avais Vus registrà pli che in factur da login (app AGOV access u clav da segirezza) per Voss login AGOV?
recovery_questionnaire_loginfactor.yes=Gea
recovery_questionnaire_no_recovery.explanation1=Sin basa da Vossas respostas na pari betg d'esser necessari da recuperar Voss login AGOV per il mument.
-recovery_questionnaire_no_recovery.explanation2=Sche Vus duvrais ulteriuras infurmaziuns, consultai https://agov.ch/help per artitgels da support.
-recovery_questionnaire_no_recovery.instruction1=Sche Vus avais difficultads d'As annunziar per in'applicaziun, visitai https://agov.ch/me e verifitgai sche Vus As pudais annunziar cun success.
-recovery_questionnaire_no_recovery.instruction2=Sche Vus avais registrà plirs facturs da login, ma avais pers l'access ad in dad els, consultai https://agov.ch/me per stizzar il factur da login pers.
+recovery_questionnaire_no_recovery.explanation2=Sche Vus duvrais ulteriuras infurmaziuns, consultai agov.ch/help per artitgels da support.
+recovery_questionnaire_no_recovery.instruction1=Sche Vus avais difficultads d'As annunziar per in'applicaziun, visitai agov.ch/me e verifitgai sche Vus As pudais annunziar cun success.
+recovery_questionnaire_no_recovery.instruction2=Sche Vus avais registrà plirs facturs da login, ma avais pers l'access ad in dad els, consultai agov.ch/me per stizzar il factur da login pers.
recovery_questionnaire_reason_selection.answer1=Jau hai problems da m'annunziar, malgrà che jau hai mia app / clav da segirezza
recovery_questionnaire_reason_selection.answer10=Jau hai pers in da mes facturs da login (app AGOV access u clav da segirezza)
recovery_questionnaire_reason_selection.answer2=Jau n'hai betg pudì terminar mia registraziun
@@ -277,7 +278,7 @@ recovery_questionnaire_reason_selection.answer9=Jau hai problems cun in da mes f
recovery_questionnaire_reason_selection.banner.error=Selecziunai in motiv per plaschair.
recovery_questionnaire_reason_selection.instruction=Selecziunai per plaschair il motiv pertge che Vus cumenzais il process da recuperaziun:
recovery_start_info.banner.warning=Vus na pudais betg utilisar Voss conto, fin ch'il process da recuperaziun è terminà.
-recovery_start_info.instruction=Durant il process da recuperaziun vegnis Vus a registrar in nov factur da login. Sche Voss conto cuntegna infurmaziuns verifitgadas, stuais Vus eventualmain er far in process da verificaziun per pudair terminar il process da recuperaziun.
+recovery_start_info.instruction=Durant il process da recuperaziun vegnis Vus a registrar in nov factur da login. Sche Voss conto cuntegna infurmaziuns verifitgadas, stuais Vus eventualmain era far in process da verificaziun per pudair concluder il process da recuperaziun.
recovery_start_info.title=Vus essas vidlonder da cumenzar cun il process da recuperaziun
timeout.description=Vossa sessiun è scadida. Serrai questa fanestra ed empruvai anc ina giada d'acceder per plaschair.
timeout.title=Sessiun scadida
diff --git a/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/logrend/var/opt/nevislogrend/default/data/applications/IDENT-AuthenticationRealm/webdata/resources/apple.svg b/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/logrend/var/opt/nevislogrend/default/data/applications/IDENT-AuthenticationRealm/webdata/resources/apple.svg
new file mode 100644
index 0000000..0721118
--- /dev/null
+++ b/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/logrend/var/opt/nevislogrend/default/data/applications/IDENT-AuthenticationRealm/webdata/resources/apple.svg
@@ -0,0 +1,10 @@
+
diff --git a/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/logrend/var/opt/nevislogrend/default/data/applications/IDENT-AuthenticationRealm/webdata/resources/authcloud_login.js b/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/logrend/var/opt/nevislogrend/default/data/applications/IDENT-AuthenticationRealm/webdata/resources/authcloud_login.js
index eed68c4..dc7128a 100644
--- a/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/logrend/var/opt/nevislogrend/default/data/applications/IDENT-AuthenticationRealm/webdata/resources/authcloud_login.js
+++ b/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/logrend/var/opt/nevislogrend/default/data/applications/IDENT-AuthenticationRealm/webdata/resources/authcloud_login.js
@@ -66,7 +66,7 @@ const Status = {
};
function setDeepLinkLabel(button) {
- const text = document.getElementsByName('info.deeplink')[0].value;
+ const text = document.getElementById('info.login.access_app').innerText;
button.innerHTML = text;
}
@@ -80,7 +80,13 @@ function messageCheckPhone() {
infoElement.innerHTML = text;
}
-const Element = {
+function showError() {
+ const text = document.getElementsByName('error.authcloud.login')[0].value;
+ errorElement.innerHTML = text;
+ infoElement.style.display = "none";
+}
+
+const AccessAppElement = {
_elem: null, // QR code or deep link depending on device
@@ -91,8 +97,11 @@ const Element = {
if (isAndroid || isIphone) {
this._elem = document.createElement('a');
this._elem.setAttribute('href', appLink);
- this._elem.setAttribute('class', 'btn btn-primary');
+ this._elem.setAttribute('class', 'btn btn-primary w-100 mt-4');
this._elem.setAttribute('target', '_blank');
+ // distinguishes style for platforms
+ dispatcherElement.classList.add('mobile-platform');
+
dispatcherElement.appendChild(this._elem);
setDeepLinkLabel(this._elem);
}
@@ -103,13 +112,23 @@ const Element = {
}
else {
messageScanQR();
+ const qrSize = 280;
+ // Element to render the QR code
this._elem = document.createElement('canvas');
- dispatcherElement.appendChild(this._elem);
- var qrcode = new QRious({
+ // Wrapper div to render corners
+ const qrCodeWrapper = document.createElement('div');
+ qrCodeWrapper.setAttribute('id','qr-code-wrapper');
+ qrCodeWrapper.style.width = `${qrSize}px`;
+ qrCodeWrapper.style.height = `${qrSize}px`;
+ qrCodeWrapper.appendChild(this._elem)
+ dispatcherElement.style.height = `${qrSize}px`;
+ dispatcherElement.appendChild(qrCodeWrapper);
+ const qrcode = new QRious({
element: this._elem,
- foreground: "#168CA9",
+ // use --nevis-gray-900 CSS variable value
+ foreground: getComputedStyle(document.body).getPropertyValue('--nevis-gray-900'),
level: "M",
- size: 280,
+ size: qrSize,
value: appLink
});
}
@@ -125,20 +144,31 @@ const Element = {
};
function authenticateUser(appLink) {
- Element.show(appLink);
- console.log('Starting Authentication Cloud status polling...');
+
+ AccessAppElement.show(appLink);
+
+ console.log('Starting Auth Cloud status polling...');
+
Status.startPolling(statusToken, (st, done) => {
+
if (st.status === 'succeeded') {
- console.log('Authentication Cloud login done.');
+
+ console.log('Auth Cloud success.');
+
+ // auto submit form with outcome
submitStatus('succeeded')
}
else if (st.status === 'failed') {
+
// failed: The transaction failed, either by timeout or because the user did not accept.
- console.warn('Authentication Cloud login failed. User abort or timeout.');
+ console.warn('Auth Cloud login failed. User abort or timeout.');
+
submitStatus('failed')
}
else if (st.status === 'unknown') {
- console.error('Authentication Cloud login failed. Unknown status.');
+
+ console.error('Auth Cloud login failed. Unknown status.');
+
submitStatus('unknown')
}
});
diff --git a/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/logrend/var/opt/nevislogrend/default/data/applications/IDENT-AuthenticationRealm/webdata/resources/authcloud_onboard.js b/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/logrend/var/opt/nevislogrend/default/data/applications/IDENT-AuthenticationRealm/webdata/resources/authcloud_onboard.js
index 5332d9f..0bcdec1 100644
--- a/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/logrend/var/opt/nevislogrend/default/data/applications/IDENT-AuthenticationRealm/webdata/resources/authcloud_onboard.js
+++ b/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/logrend/var/opt/nevislogrend/default/data/applications/IDENT-AuthenticationRealm/webdata/resources/authcloud_onboard.js
@@ -75,7 +75,12 @@ function messageScanQR() {
infoElement.innerHTML = text;
}
-const Element = {
+function messageInstalledAccessApp() {
+ const text = document.getElementById('info.access_app.installed').innerText;
+ infoElement.innerHTML = text;
+}
+
+const AccessAppElement = {
_elem: null, // QR code or deep link depending on device
@@ -84,22 +89,47 @@ const Element = {
const isIphone = 'iPhone' === navigator.platform;
const isAndroid = /android/i.test(userAgent) && /mobile/i.test(userAgent);
if (isAndroid || isIphone) {
+ if (isAndroid) {
+ document.getElementById('install_apple').style.display = 'none';
+ }
+ if (isIphone) {
+ document.getElementById('install_google').style.display = 'none';
+ }
this._elem = document.createElement('a');
this._elem.setAttribute('href', appLink);
- this._elem.setAttribute('class', 'btn btn-primary');
+ this._elem.setAttribute('class', 'btn btn-primary w-100');
this._elem.setAttribute('target', '_blank');
+ // distinguishes style for platforms
+ dispatcherElement.classList.add('mobile-platform');
+ const accessApplinks = document.getElementById('access-app-download-link');
+ accessApplinks.classList.add('access-app-download-link-mobile-spacing');
+
dispatcherElement.appendChild(this._elem);
setDeepLinkLabel(this._elem);
+
+ // info text is displayed before access app links
+ accessApplinks.parentNode.insertBefore(infoElement.parentNode, accessApplinks);
+ messageInstalledAccessApp();
}
else {
messageScanQR();
+ const qrSize = 280;
+ // Element to render the QR code
this._elem = document.createElement('canvas');
- dispatcherElement.appendChild(this._elem);
- var qrcode = new QRious({
+ // Wrapper div to render corners
+ const qrCodeWrapper = document.createElement('div');
+ qrCodeWrapper.setAttribute('id','qr-code-wrapper');
+ qrCodeWrapper.style.width = `${qrSize}px`;
+ qrCodeWrapper.style.height = `${qrSize}px`;
+ qrCodeWrapper.appendChild(this._elem)
+ dispatcherElement.style.height = `${qrSize}px`;
+ dispatcherElement.appendChild(qrCodeWrapper);
+ const qrcode = new QRious({
element: this._elem,
- foreground: "#168CA9",
+ // use --nevis-gray-900 CSS variable value
+ foreground: getComputedStyle(document.body).getPropertyValue('--nevis-gray-900'),
level: "M",
- size: 280,
+ size: qrSize,
value: appLink
});
}
@@ -114,25 +144,47 @@ const Element = {
};
function onboardUser(appLink) {
- Element.show(appLink);
- console.log('Starting Authentication Cloud status polling...');
+
+ AccessAppElement.show(appLink);
+
+ console.log('Starting Auth Cloud status polling...');
+
Status.startPolling(statusToken, (st, done) => {
+
if (st.status === 'succeeded') {
- console.log('Authentication Cloud onboarding done.');
+
+ console.log('Auth Cloud success.');
+
+ // auto submit form with outcome
submitStatus('succeeded')
}
else if (st.status === 'failed') {
+
// failed: The transaction failed, either by timeout or because the user did not accept.
console.warn('Authentication Cloud onboarding failed. User abort or timeout.');
+
submitStatus('failed')
}
else if (st.status === 'unknown') {
+
console.error('Authentication Cloud onboarding failed. Unknown status.');
+
submitStatus('unknown')
}
});
}
+const swap = function (nodeA, nodeB) {
+ const parentA = nodeA.parentNode;
+ const siblingA = nodeA.nextSibling === nodeB ? nodeA : nodeA.nextSibling;
+
+ // Move `nodeA` to before the `nodeB`
+ nodeB.parentNode.insertBefore(nodeA, nodeB);
+
+ // Move `nodeB` to before the sibling of `nodeA`
+ parentA.insertBefore(nodeB, siblingA);
+};
+
function init() {
const form = document.getElementById('authcloud_onboard');
@@ -145,6 +197,9 @@ function init() {
dispatcherElement = document.getElementById('authcloud_dispatch');
+ // info texts are displayed underneath QR code
+ swap(infoElement.parentNode, dispatcherElement.parentNode);
+
const appLink = form.appLink.value;
onboardUser(appLink);
}
diff --git a/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/logrend/var/opt/nevislogrend/default/data/applications/IDENT-AuthenticationRealm/webdata/resources/bootstrap-theme.min.css b/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/logrend/var/opt/nevislogrend/default/data/applications/IDENT-AuthenticationRealm/webdata/resources/bootstrap-theme.min.css
deleted file mode 100644
index 4aaa13e..0000000
--- a/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/logrend/var/opt/nevislogrend/default/data/applications/IDENT-AuthenticationRealm/webdata/resources/bootstrap-theme.min.css
+++ /dev/null
@@ -1,9 +0,0 @@
-/*!
- * Generated using the Bootstrap Customizer (https://getbootstrap.com/docs/3.4/customize/)
- *//*!
- * The Nevis @btn-default-color: #6ebabd
- * Bootstrap v3.4.1 (https://getbootstrap.com/)
- */
- * Copyright 2011-2019 Twitter, Inc.
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- */.btn-default,.btn-primary,.btn-success,.btn-info,.btn-warning,.btn-danger{text-shadow:0 -1px 0 rgba(0,0,0,0.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 1px rgba(0,0,0,0.075)}.btn-default:active,.btn-primary:active,.btn-success:active,.btn-info:active,.btn-warning:active,.btn-danger:active,.btn-default.active,.btn-primary.active,.btn-success.active,.btn-info.active,.btn-warning.active,.btn-danger.active{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn-default.disabled,.btn-primary.disabled,.btn-success.disabled,.btn-info.disabled,.btn-warning.disabled,.btn-danger.disabled,.btn-default[disabled],.btn-primary[disabled],.btn-success[disabled],.btn-info[disabled],.btn-warning[disabled],.btn-danger[disabled],fieldset[disabled] .btn-default,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-success,fieldset[disabled] .btn-info,fieldset[disabled] .btn-warning,fieldset[disabled] .btn-danger{-webkit-box-shadow:none;box-shadow:none}.btn-default .badge,.btn-primary .badge,.btn-success .badge,.btn-info .badge,.btn-warning .badge,.btn-danger .badge{text-shadow:none}.btn:active,.btn.active{background-image:none}.btn-default{background-image:-webkit-linear-gradient(top, #fff 0, #e0e0e0 100%);background-image:-o-linear-gradient(top, #fff 0, #e0e0e0 100%);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0, #fff), to(#e0e0e0));background-image:linear-gradient(to bottom, #fff 0, #e0e0e0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background-repeat:repeat-x;border-color:#dbdbdb;text-shadow:0 1px 0 #fff;border-color:#ccc}.btn-default:hover,.btn-default:focus{background-color:#e0e0e0;background-position:0 -15px}.btn-default:active,.btn-default.active{background-color:#e0e0e0;border-color:#dbdbdb}.btn-default.disabled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled.focus,.btn-default[disabled].focus,fieldset[disabled] .btn-default.focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[disabled] .btn-default.active{background-color:#e0e0e0;background-image:none}.btn-primary{background-image:-webkit-linear-gradient(top, #98ced0 0, #6ebabd 100%);background-image:-o-linear-gradient(top, #98ced0 0, #6ebabd 100%);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0, #98ced0), to(#6ebabd));background-image:linear-gradient(to bottom, #98ced0 0, #6ebabd 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff98ced0', endColorstr='#ff6ebabd', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background-repeat:repeat-x;border-color:#67b7ba}.btn-primary:hover,.btn-primary:focus{background-color:#6ebabd;background-position:0 -15px}.btn-primary:active,.btn-primary.active{background-color:#6ebabd;border-color:#67b7ba}.btn-primary.disabled,.btn-primary[disabled],fieldset[disabled] .btn-primary,.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled.focus,.btn-primary[disabled].focus,fieldset[disabled] .btn-primary.focus,.btn-primary.disabled:active,.btn-primary[disabled]:active,fieldset[disabled] .btn-primary:active,.btn-primary.disabled.active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary.active{background-color:#6ebabd;background-image:none}.btn-success{background-image:-webkit-linear-gradient(top, #98ced0 0, #6ebabd 100%);background-image:-o-linear-gradient(top, #98ced0 0, #6ebabd 100%);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0, #98ced0), to(#6ebabd));background-image:linear-gradient(to bottom, #98ced0 0, #6ebabd 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff98ced0', endColorstr='#ff6ebabd', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background-repeat:repeat-x;border-color:#67b7ba}.btn-success:hover,.btn-success:focus{background-color:#6ebabd;background-position:0 -15px}.btn-success:active,.btn-success.active{background-color:#6ebabd;border-color:#67b7ba}.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled.focus,.btn-success[disabled].focus,fieldset[disabled] .btn-success.focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[disabled] .btn-success.active{background-color:#6ebabd;background-image:none}.btn-info{background-image:-webkit-linear-gradient(top, #5bc0de 0, #2aabd2 100%);background-image:-o-linear-gradient(top, #5bc0de 0, #2aabd2 100%);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0, #5bc0de), to(#2aabd2));background-image:linear-gradient(to bottom, #5bc0de 0, #2aabd2 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background-repeat:repeat-x;border-color:#28a4c9}.btn-info:hover,.btn-info:focus{background-color:#2aabd2;background-position:0 -15px}.btn-info:active,.btn-info.active{background-color:#2aabd2;border-color:#28a4c9}.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled.focus,.btn-info[disabled].focus,fieldset[disabled] .btn-info.focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:#2aabd2;background-image:none}.btn-warning{background-image:-webkit-linear-gradient(top, #dc4250 0, #be2331 100%);background-image:-o-linear-gradient(top, #dc4250 0, #be2331 100%);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0, #dc4250), to(#be2331));background-image:linear-gradient(to bottom, #dc4250 0, #be2331 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdc4250', endColorstr='#ffbe2331', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background-repeat:repeat-x;border-color:#b5222f}.btn-warning:hover,.btn-warning:focus{background-color:#be2331;background-position:0 -15px}.btn-warning:active,.btn-warning.active{background-color:#be2331;border-color:#b5222f}.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled.focus,.btn-warning[disabled].focus,fieldset[disabled] .btn-warning.focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning.active{background-color:#be2331;background-image:none}.btn-danger{background-image:-webkit-linear-gradient(top, #dc4250 0, #be2331 100%);background-image:-o-linear-gradient(top, #dc4250 0, #be2331 100%);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0, #dc4250), to(#be2331));background-image:linear-gradient(to bottom, #dc4250 0, #be2331 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdc4250', endColorstr='#ffbe2331', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background-repeat:repeat-x;border-color:#b5222f}.btn-danger:hover,.btn-danger:focus{background-color:#be2331;background-position:0 -15px}.btn-danger:active,.btn-danger.active{background-color:#be2331;border-color:#b5222f}.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled.focus,.btn-danger[disabled].focus,fieldset[disabled] .btn-danger.focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger.active{background-color:#be2331;background-image:none}.thumbnail,.img-thumbnail{-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.075);box-shadow:0 1px 2px rgba(0,0,0,0.075)}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{background-image:-webkit-linear-gradient(top, #65b6b9 0, #53aeb1 100%);background-image:-o-linear-gradient(top, #65b6b9 0, #53aeb1 100%);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0, #65b6b9), to(#53aeb1));background-image:linear-gradient(to bottom, #65b6b9 0, #53aeb1 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff65b6b9', endColorstr='#ff53aeb1', GradientType=0);background-repeat:repeat-x;background-color:#53aeb1}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{background-image:-webkit-linear-gradient(top, #00868c 0, #006e73 100%);background-image:-o-linear-gradient(top, #00868c 0, #006e73 100%);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0, #00868c), to(#006e73));background-image:linear-gradient(to bottom, #00868c 0, #006e73 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff00868c', endColorstr='#ff006e73', GradientType=0);background-repeat:repeat-x;background-color:#006e73}.navbar-default{background-image:-webkit-linear-gradient(top, #fff 0, #f8f8f8 100%);background-image:-o-linear-gradient(top, #fff 0, #f8f8f8 100%);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0, #fff), to(#f8f8f8));background-image:linear-gradient(to bottom, #fff 0, #f8f8f8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);border-radius:3px;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 5px rgba(0,0,0,0.075);box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 5px rgba(0,0,0,0.075)}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.active>a{background-image:-webkit-linear-gradient(top, #dbdbdb 0, #e2e2e2 100%);background-image:-o-linear-gradient(top, #dbdbdb 0, #e2e2e2 100%);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0, #dbdbdb), to(#e2e2e2));background-image:linear-gradient(to bottom, #dbdbdb 0, #e2e2e2 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdbdbdb', endColorstr='#ffe2e2e2', GradientType=0);background-repeat:repeat-x;-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,0.075);box-shadow:inset 0 3px 9px rgba(0,0,0,0.075)}.navbar-brand,.navbar-nav>li>a{text-shadow:0 1px 0 rgba(255,255,255,0.25)}.navbar-inverse{background-image:-webkit-linear-gradient(top, #3c3c3c 0, #222 100%);background-image:-o-linear-gradient(top, #3c3c3c 0, #222 100%);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0, #3c3c3c), to(#222));background-image:linear-gradient(to bottom, #3c3c3c 0, #222 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);border-radius:3px}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.active>a{background-image:-webkit-linear-gradient(top, #080808 0, #0f0f0f 100%);background-image:-o-linear-gradient(top, #080808 0, #0f0f0f 100%);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0, #080808), to(#0f0f0f));background-image:linear-gradient(to bottom, #080808 0, #0f0f0f 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff080808', endColorstr='#ff0f0f0f', GradientType=0);background-repeat:repeat-x;-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,0.25);box-shadow:inset 0 3px 9px rgba(0,0,0,0.25)}.navbar-inverse .navbar-brand,.navbar-inverse .navbar-nav>li>a{text-shadow:0 -1px 0 rgba(0,0,0,0.25)}.navbar-static-top,.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}@media (max-width:767px){.navbar .navbar-nav .open .dropdown-menu>.active>a,.navbar .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar .navbar-nav .open .dropdown-menu>.active>a:focus{color:#fff;background-image:-webkit-linear-gradient(top, #00868c 0, #006e73 100%);background-image:-o-linear-gradient(top, #00868c 0, #006e73 100%);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0, #00868c), to(#006e73));background-image:linear-gradient(to bottom, #00868c 0, #006e73 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff00868c', endColorstr='#ff006e73', GradientType=0);background-repeat:repeat-x}}.alert{text-shadow:0 1px 0 rgba(255,255,255,0.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.25),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.25),0 1px 2px rgba(0,0,0,0.05)}.alert-success{background-image:-webkit-linear-gradient(top, #dff0d8 0, #c8e5bc 100%);background-image:-o-linear-gradient(top, #dff0d8 0, #c8e5bc 100%);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0, #dff0d8), to(#c8e5bc));background-image:linear-gradient(to bottom, #dff0d8 0, #c8e5bc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);background-repeat:repeat-x;border-color:#b2dba1}.alert-info{background-image:-webkit-linear-gradient(top, #d9edf7 0, #b9def0 100%);background-image:-o-linear-gradient(top, #d9edf7 0, #b9def0 100%);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0, #d9edf7), to(#b9def0));background-image:linear-gradient(to bottom, #d9edf7 0, #b9def0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);background-repeat:repeat-x;border-color:#9acfea}.alert-warning{background-image:-webkit-linear-gradient(top, #fcf8e3 0, #f8efc0 100%);background-image:-o-linear-gradient(top, #fcf8e3 0, #f8efc0 100%);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0, #fcf8e3), to(#f8efc0));background-image:linear-gradient(to bottom, #fcf8e3 0, #f8efc0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);background-repeat:repeat-x;border-color:#f5e79e}.alert-danger{background-image:-webkit-linear-gradient(top, #f2dede 0, #e7c3c3 100%);background-image:-o-linear-gradient(top, #f2dede 0, #e7c3c3 100%);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0, #f2dede), to(#e7c3c3));background-image:linear-gradient(to bottom, #f2dede 0, #e7c3c3 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);background-repeat:repeat-x;border-color:#dca7a7}.progress{background-image:-webkit-linear-gradient(top, #ebebeb 0, #f5f5f5 100%);background-image:-o-linear-gradient(top, #ebebeb 0, #f5f5f5 100%);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0, #ebebeb), to(#f5f5f5));background-image:linear-gradient(to bottom, #ebebeb 0, #f5f5f5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0);background-repeat:repeat-x}.progress-bar{background-image:-webkit-linear-gradient(top, #00868c 0, #005559 100%);background-image:-o-linear-gradient(top, #00868c 0, #005559 100%);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0, #00868c), to(#005559));background-image:linear-gradient(to bottom, #00868c 0, #005559 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff00868c', endColorstr='#ff005559', GradientType=0);background-repeat:repeat-x}.progress-bar-success{background-image:-webkit-linear-gradient(top, #98ced0 0, #75bdc0 100%);background-image:-o-linear-gradient(top, #98ced0 0, #75bdc0 100%);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0, #98ced0), to(#75bdc0));background-image:linear-gradient(to bottom, #98ced0 0, #75bdc0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff98ced0', endColorstr='#ff75bdc0', GradientType=0);background-repeat:repeat-x}.progress-bar-info{background-image:-webkit-linear-gradient(top, #5bc0de 0, #31b0d5 100%);background-image:-o-linear-gradient(top, #5bc0de 0, #31b0d5 100%);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0, #5bc0de), to(#31b0d5));background-image:linear-gradient(to bottom, #5bc0de 0, #31b0d5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0);background-repeat:repeat-x}.progress-bar-warning{background-image:-webkit-linear-gradient(top, #dc4250 0, #c62533 100%);background-image:-o-linear-gradient(top, #dc4250 0, #c62533 100%);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0, #dc4250), to(#c62533));background-image:linear-gradient(to bottom, #dc4250 0, #c62533 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdc4250', endColorstr='#ffc62533', GradientType=0);background-repeat:repeat-x}.progress-bar-danger{background-image:-webkit-linear-gradient(top, #dc4250 0, #c62533 100%);background-image:-o-linear-gradient(top, #dc4250 0, #c62533 100%);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0, #dc4250), to(#c62533));background-image:linear-gradient(to bottom, #dc4250 0, #c62533 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdc4250', endColorstr='#ffc62533', GradientType=0);background-repeat:repeat-x}.progress-bar-striped{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.list-group{border-radius:3px;-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.075);box-shadow:0 1px 2px rgba(0,0,0,0.075)}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{text-shadow:0 -1px 0 #005559;background-image:-webkit-linear-gradient(top, #00868c 0, #006166 100%);background-image:-o-linear-gradient(top, #00868c 0, #006166 100%);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0, #00868c), to(#006166));background-image:linear-gradient(to bottom, #00868c 0, #006166 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff00868c', endColorstr='#ff006166', GradientType=0);background-repeat:repeat-x;border-color:#006166}.list-group-item.active .badge,.list-group-item.active:hover .badge,.list-group-item.active:focus .badge{text-shadow:none}.panel{-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.05);box-shadow:0 1px 2px rgba(0,0,0,0.05)}.panel-default>.panel-heading{background-image:-webkit-linear-gradient(top, #f5f5f5 0, #e8e8e8 100%);background-image:-o-linear-gradient(top, #f5f5f5 0, #e8e8e8 100%);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0, #f5f5f5), to(#e8e8e8));background-image:linear-gradient(to bottom, #f5f5f5 0, #e8e8e8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);background-repeat:repeat-x}.panel-primary>.panel-heading{background-image:-webkit-linear-gradient(top, #00868c 0, #006e73 100%);background-image:-o-linear-gradient(top, #00868c 0, #006e73 100%);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0, #00868c), to(#006e73));background-image:linear-gradient(to bottom, #00868c 0, #006e73 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff00868c', endColorstr='#ff006e73', GradientType=0);background-repeat:repeat-x}.panel-success>.panel-heading{background-image:-webkit-linear-gradient(top, #dff0d8 0, #d0e9c6 100%);background-image:-o-linear-gradient(top, #dff0d8 0, #d0e9c6 100%);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0, #dff0d8), to(#d0e9c6));background-image:linear-gradient(to bottom, #dff0d8 0, #d0e9c6 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0);background-repeat:repeat-x}.panel-info>.panel-heading{background-image:-webkit-linear-gradient(top, #d9edf7 0, #c4e3f3 100%);background-image:-o-linear-gradient(top, #d9edf7 0, #c4e3f3 100%);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0, #d9edf7), to(#c4e3f3));background-image:linear-gradient(to bottom, #d9edf7 0, #c4e3f3 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0);background-repeat:repeat-x}.panel-warning>.panel-heading{background-image:-webkit-linear-gradient(top, #fcf8e3 0, #faf2cc 100%);background-image:-o-linear-gradient(top, #fcf8e3 0, #faf2cc 100%);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0, #fcf8e3), to(#faf2cc));background-image:linear-gradient(to bottom, #fcf8e3 0, #faf2cc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0);background-repeat:repeat-x}.panel-danger>.panel-heading{background-image:-webkit-linear-gradient(top, #f2dede 0, #ebcccc 100%);background-image:-o-linear-gradient(top, #f2dede 0, #ebcccc 100%);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0, #f2dede), to(#ebcccc));background-image:linear-gradient(to bottom, #f2dede 0, #ebcccc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0);background-repeat:repeat-x}.well{background-image:-webkit-linear-gradient(top, #e8e8e8 0, #f5f5f5 100%);background-image:-o-linear-gradient(top, #e8e8e8 0, #f5f5f5 100%);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0, #e8e8e8), to(#f5f5f5));background-image:linear-gradient(to bottom, #e8e8e8 0, #f5f5f5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);background-repeat:repeat-x;border-color:#dcdcdc;-webkit-box-shadow:inset 0 1px 3px rgba(0,0,0,0.05),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 3px rgba(0,0,0,0.05),0 1px 0 rgba(255,255,255,0.1)}
\ No newline at end of file
diff --git a/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/logrend/var/opt/nevislogrend/default/data/applications/IDENT-AuthenticationRealm/webdata/resources/bootstrap.bundle.min.js b/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/logrend/var/opt/nevislogrend/default/data/applications/IDENT-AuthenticationRealm/webdata/resources/bootstrap.bundle.min.js
new file mode 100644
index 0000000..dbfe712
--- /dev/null
+++ b/DEFAULT-ADN-AGOV-ADMIN-PROJECT/DEFAULT-ADN-AGOV-ADMIN-INV/logrend/var/opt/nevislogrend/default/data/applications/IDENT-AuthenticationRealm/webdata/resources/bootstrap.bundle.min.js
@@ -0,0 +1,6 @@
+/*!
+ * Bootstrap v5.1.3 (https://getbootstrap.com/)
+ * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
+ */
+!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).bootstrap=e()}(this,(function(){"use strict";const t="transitionend",e=t=>{let e=t.getAttribute("data-bs-target");if(!e||"#"===e){let i=t.getAttribute("href");if(!i||!i.includes("#")&&!i.startsWith("."))return null;i.includes("#")&&!i.startsWith("#")&&(i=`#${i.split("#")[1]}`),e=i&&"#"!==i?i.trim():null}return e},i=t=>{const i=e(t);return i&&document.querySelector(i)?i:null},n=t=>{const i=e(t);return i?document.querySelector(i):null},s=e=>{e.dispatchEvent(new Event(t))},o=t=>!(!t||"object"!=typeof t)&&(void 0!==t.jquery&&(t=t[0]),void 0!==t.nodeType),r=t=>o(t)?t.jquery?t[0]:t:"string"==typeof t&&t.length>0?document.querySelector(t):null,a=(t,e,i)=>{Object.keys(i).forEach((n=>{const s=i[n],r=e[n],a=r&&o(r)?"element":null==(l=r)?`${l}`:{}.toString.call(l).match(/\s([a-z]+)/i)[1].toLowerCase();var l;if(!new RegExp(s).test(a))throw new TypeError(`${t.toUpperCase()}: Option "${n}" provided type "${a}" but expected type "${s}".`)}))},l=t=>!(!o(t)||0===t.getClientRects().length)&&"visible"===getComputedStyle(t).getPropertyValue("visibility"),c=t=>!t||t.nodeType!==Node.ELEMENT_NODE||!!t.classList.contains("disabled")||(void 0!==t.disabled?t.disabled:t.hasAttribute("disabled")&&"false"!==t.getAttribute("disabled")),h=t=>{if(!document.documentElement.attachShadow)return null;if("function"==typeof t.getRootNode){const e=t.getRootNode();return e instanceof ShadowRoot?e:null}return t instanceof ShadowRoot?t:t.parentNode?h(t.parentNode):null},d=()=>{},u=t=>{t.offsetHeight},f=()=>{const{jQuery:t}=window;return t&&!document.body.hasAttribute("data-bs-no-jquery")?t:null},p=[],m=()=>"rtl"===document.documentElement.dir,g=t=>{var e;e=()=>{const e=f();if(e){const i=t.NAME,n=e.fn[i];e.fn[i]=t.jQueryInterface,e.fn[i].Constructor=t,e.fn[i].noConflict=()=>(e.fn[i]=n,t.jQueryInterface)}},"loading"===document.readyState?(p.length||document.addEventListener("DOMContentLoaded",(()=>{p.forEach((t=>t()))})),p.push(e)):e()},_=t=>{"function"==typeof t&&t()},b=(e,i,n=!0)=>{if(!n)return void _(e);const o=(t=>{if(!t)return 0;let{transitionDuration:e,transitionDelay:i}=window.getComputedStyle(t);const n=Number.parseFloat(e),s=Number.parseFloat(i);return n||s?(e=e.split(",")[0],i=i.split(",")[0],1e3*(Number.parseFloat(e)+Number.parseFloat(i))):0})(i)+5;let r=!1;const a=({target:n})=>{n===i&&(r=!0,i.removeEventListener(t,a),_(e))};i.addEventListener(t,a),setTimeout((()=>{r||s(i)}),o)},v=(t,e,i,n)=>{let s=t.indexOf(e);if(-1===s)return t[!i&&n?t.length-1:0];const o=t.length;return s+=i?1:-1,n&&(s=(s+o)%o),t[Math.max(0,Math.min(s,o-1))]},y=/[^.]*(?=\..*)\.|.*/,w=/\..*/,E=/::\d+$/,A={};let T=1;const O={mouseenter:"mouseover",mouseleave:"mouseout"},C=/^(mouseenter|mouseleave)/i,k=new Set(["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"]);function L(t,e){return e&&`${e}::${T++}`||t.uidEvent||T++}function x(t){const e=L(t);return t.uidEvent=e,A[e]=A[e]||{},A[e]}function D(t,e,i=null){const n=Object.keys(t);for(let s=0,o=n.length;sfunction(e){if(!e.relatedTarget||e.relatedTarget!==e.delegateTarget&&!e.delegateTarget.contains(e.relatedTarget))return t.call(this,e)};n?n=t(n):i=t(i)}const[o,r,a]=S(e,i,n),l=x(t),c=l[a]||(l[a]={}),h=D(c,r,o?i:null);if(h)return void(h.oneOff=h.oneOff&&s);const d=L(r,e.replace(y,"")),u=o?function(t,e,i){return function n(s){const o=t.querySelectorAll(e);for(let{target:r}=s;r&&r!==this;r=r.parentNode)for(let a=o.length;a--;)if(o[a]===r)return s.delegateTarget=r,n.oneOff&&j.off(t,s.type,e,i),i.apply(r,[s]);return null}}(t,i,n):function(t,e){return function i(n){return n.delegateTarget=t,i.oneOff&&j.off(t,n.type,e),e.apply(t,[n])}}(t,i);u.delegationSelector=o?i:null,u.originalHandler=r,u.oneOff=s,u.uidEvent=d,c[d]=u,t.addEventListener(a,u,o)}function I(t,e,i,n,s){const o=D(e[i],n,s);o&&(t.removeEventListener(i,o,Boolean(s)),delete e[i][o.uidEvent])}function P(t){return t=t.replace(w,""),O[t]||t}const j={on(t,e,i,n){N(t,e,i,n,!1)},one(t,e,i,n){N(t,e,i,n,!0)},off(t,e,i,n){if("string"!=typeof e||!t)return;const[s,o,r]=S(e,i,n),a=r!==e,l=x(t),c=e.startsWith(".");if(void 0!==o){if(!l||!l[r])return;return void I(t,l,r,o,s?i:null)}c&&Object.keys(l).forEach((i=>{!function(t,e,i,n){const s=e[i]||{};Object.keys(s).forEach((o=>{if(o.includes(n)){const n=s[o];I(t,e,i,n.originalHandler,n.delegationSelector)}}))}(t,l,i,e.slice(1))}));const h=l[r]||{};Object.keys(h).forEach((i=>{const n=i.replace(E,"");if(!a||e.includes(n)){const e=h[i];I(t,l,r,e.originalHandler,e.delegationSelector)}}))},trigger(t,e,i){if("string"!=typeof e||!t)return null;const n=f(),s=P(e),o=e!==s,r=k.has(s);let a,l=!0,c=!0,h=!1,d=null;return o&&n&&(a=n.Event(e,i),n(t).trigger(a),l=!a.isPropagationStopped(),c=!a.isImmediatePropagationStopped(),h=a.isDefaultPrevented()),r?(d=document.createEvent("HTMLEvents"),d.initEvent(s,l,!0)):d=new CustomEvent(e,{bubbles:l,cancelable:!0}),void 0!==i&&Object.keys(i).forEach((t=>{Object.defineProperty(d,t,{get:()=>i[t]})})),h&&d.preventDefault(),c&&t.dispatchEvent(d),d.defaultPrevented&&void 0!==a&&a.preventDefault(),d}},M=new Map,H={set(t,e,i){M.has(t)||M.set(t,new Map);const n=M.get(t);n.has(e)||0===n.size?n.set(e,i):console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(n.keys())[0]}.`)},get:(t,e)=>M.has(t)&&M.get(t).get(e)||null,remove(t,e){if(!M.has(t))return;const i=M.get(t);i.delete(e),0===i.size&&M.delete(t)}};class B{constructor(t){(t=r(t))&&(this._element=t,H.set(this._element,this.constructor.DATA_KEY,this))}dispose(){H.remove(this._element,this.constructor.DATA_KEY),j.off(this._element,this.constructor.EVENT_KEY),Object.getOwnPropertyNames(this).forEach((t=>{this[t]=null}))}_queueCallback(t,e,i=!0){b(t,e,i)}static getInstance(t){return H.get(r(t),this.DATA_KEY)}static getOrCreateInstance(t,e={}){return this.getInstance(t)||new this(t,"object"==typeof e?e:null)}static get VERSION(){return"5.1.3"}static get NAME(){throw new Error('You have to implement the static method "NAME", for each component!')}static get DATA_KEY(){return`bs.${this.NAME}`}static get EVENT_KEY(){return`.${this.DATA_KEY}`}}const R=(t,e="hide")=>{const i=`click.dismiss${t.EVENT_KEY}`,s=t.NAME;j.on(document,i,`[data-bs-dismiss="${s}"]`,(function(i){if(["A","AREA"].includes(this.tagName)&&i.preventDefault(),c(this))return;const o=n(this)||this.closest(`.${s}`);t.getOrCreateInstance(o)[e]()}))};class W extends B{static get NAME(){return"alert"}close(){if(j.trigger(this._element,"close.bs.alert").defaultPrevented)return;this._element.classList.remove("show");const t=this._element.classList.contains("fade");this._queueCallback((()=>this._destroyElement()),this._element,t)}_destroyElement(){this._element.remove(),j.trigger(this._element,"closed.bs.alert"),this.dispose()}static jQueryInterface(t){return this.each((function(){const e=W.getOrCreateInstance(this);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}R(W,"close"),g(W);const $='[data-bs-toggle="button"]';class z extends B{static get NAME(){return"button"}toggle(){this._element.setAttribute("aria-pressed",this._element.classList.toggle("active"))}static jQueryInterface(t){return this.each((function(){const e=z.getOrCreateInstance(this);"toggle"===t&&e[t]()}))}}function q(t){return"true"===t||"false"!==t&&(t===Number(t).toString()?Number(t):""===t||"null"===t?null:t)}function F(t){return t.replace(/[A-Z]/g,(t=>`-${t.toLowerCase()}`))}j.on(document,"click.bs.button.data-api",$,(t=>{t.preventDefault();const e=t.target.closest($);z.getOrCreateInstance(e).toggle()})),g(z);const U={setDataAttribute(t,e,i){t.setAttribute(`data-bs-${F(e)}`,i)},removeDataAttribute(t,e){t.removeAttribute(`data-bs-${F(e)}`)},getDataAttributes(t){if(!t)return{};const e={};return Object.keys(t.dataset).filter((t=>t.startsWith("bs"))).forEach((i=>{let n=i.replace(/^bs/,"");n=n.charAt(0).toLowerCase()+n.slice(1,n.length),e[n]=q(t.dataset[i])})),e},getDataAttribute:(t,e)=>q(t.getAttribute(`data-bs-${F(e)}`)),offset(t){const e=t.getBoundingClientRect();return{top:e.top+window.pageYOffset,left:e.left+window.pageXOffset}},position:t=>({top:t.offsetTop,left:t.offsetLeft})},V={find:(t,e=document.documentElement)=>[].concat(...Element.prototype.querySelectorAll.call(e,t)),findOne:(t,e=document.documentElement)=>Element.prototype.querySelector.call(e,t),children:(t,e)=>[].concat(...t.children).filter((t=>t.matches(e))),parents(t,e){const i=[];let n=t.parentNode;for(;n&&n.nodeType===Node.ELEMENT_NODE&&3!==n.nodeType;)n.matches(e)&&i.push(n),n=n.parentNode;return i},prev(t,e){let i=t.previousElementSibling;for(;i;){if(i.matches(e))return[i];i=i.previousElementSibling}return[]},next(t,e){let i=t.nextElementSibling;for(;i;){if(i.matches(e))return[i];i=i.nextElementSibling}return[]},focusableChildren(t){const e=["a","button","input","textarea","select","details","[tabindex]",'[contenteditable="true"]'].map((t=>`${t}:not([tabindex^="-"])`)).join(", ");return this.find(e,t).filter((t=>!c(t)&&l(t)))}},K="carousel",X={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0,touch:!0},Y={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean",touch:"boolean"},Q="next",G="prev",Z="left",J="right",tt={ArrowLeft:J,ArrowRight:Z},et="slid.bs.carousel",it="active",nt=".active.carousel-item";class st extends B{constructor(t,e){super(t),this._items=null,this._interval=null,this._activeElement=null,this._isPaused=!1,this._isSliding=!1,this.touchTimeout=null,this.touchStartX=0,this.touchDeltaX=0,this._config=this._getConfig(e),this._indicatorsElement=V.findOne(".carousel-indicators",this._element),this._touchSupported="ontouchstart"in document.documentElement||navigator.maxTouchPoints>0,this._pointerEvent=Boolean(window.PointerEvent),this._addEventListeners()}static get Default(){return X}static get NAME(){return K}next(){this._slide(Q)}nextWhenVisible(){!document.hidden&&l(this._element)&&this.next()}prev(){this._slide(G)}pause(t){t||(this._isPaused=!0),V.findOne(".carousel-item-next, .carousel-item-prev",this._element)&&(s(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null}cycle(t){t||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config&&this._config.interval&&!this._isPaused&&(this._updateInterval(),this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))}to(t){this._activeElement=V.findOne(nt,this._element);const e=this._getItemIndex(this._activeElement);if(t>this._items.length-1||t<0)return;if(this._isSliding)return void j.one(this._element,et,(()=>this.to(t)));if(e===t)return this.pause(),void this.cycle();const i=t>e?Q:G;this._slide(i,this._items[t])}_getConfig(t){return t={...X,...U.getDataAttributes(this._element),..."object"==typeof t?t:{}},a(K,t,Y),t}_handleSwipe(){const t=Math.abs(this.touchDeltaX);if(t<=40)return;const e=t/this.touchDeltaX;this.touchDeltaX=0,e&&this._slide(e>0?J:Z)}_addEventListeners(){this._config.keyboard&&j.on(this._element,"keydown.bs.carousel",(t=>this._keydown(t))),"hover"===this._config.pause&&(j.on(this._element,"mouseenter.bs.carousel",(t=>this.pause(t))),j.on(this._element,"mouseleave.bs.carousel",(t=>this.cycle(t)))),this._config.touch&&this._touchSupported&&this._addTouchEventListeners()}_addTouchEventListeners(){const t=t=>this._pointerEvent&&("pen"===t.pointerType||"touch"===t.pointerType),e=e=>{t(e)?this.touchStartX=e.clientX:this._pointerEvent||(this.touchStartX=e.touches[0].clientX)},i=t=>{this.touchDeltaX=t.touches&&t.touches.length>1?0:t.touches[0].clientX-this.touchStartX},n=e=>{t(e)&&(this.touchDeltaX=e.clientX-this.touchStartX),this._handleSwipe(),"hover"===this._config.pause&&(this.pause(),this.touchTimeout&&clearTimeout(this.touchTimeout),this.touchTimeout=setTimeout((t=>this.cycle(t)),500+this._config.interval))};V.find(".carousel-item img",this._element).forEach((t=>{j.on(t,"dragstart.bs.carousel",(t=>t.preventDefault()))})),this._pointerEvent?(j.on(this._element,"pointerdown.bs.carousel",(t=>e(t))),j.on(this._element,"pointerup.bs.carousel",(t=>n(t))),this._element.classList.add("pointer-event")):(j.on(this._element,"touchstart.bs.carousel",(t=>e(t))),j.on(this._element,"touchmove.bs.carousel",(t=>i(t))),j.on(this._element,"touchend.bs.carousel",(t=>n(t))))}_keydown(t){if(/input|textarea/i.test(t.target.tagName))return;const e=tt[t.key];e&&(t.preventDefault(),this._slide(e))}_getItemIndex(t){return this._items=t&&t.parentNode?V.find(".carousel-item",t.parentNode):[],this._items.indexOf(t)}_getItemByOrder(t,e){const i=t===Q;return v(this._items,e,i,this._config.wrap)}_triggerSlideEvent(t,e){const i=this._getItemIndex(t),n=this._getItemIndex(V.findOne(nt,this._element));return j.trigger(this._element,"slide.bs.carousel",{relatedTarget:t,direction:e,from:n,to:i})}_setActiveIndicatorElement(t){if(this._indicatorsElement){const e=V.findOne(".active",this._indicatorsElement);e.classList.remove(it),e.removeAttribute("aria-current");const i=V.find("[data-bs-target]",this._indicatorsElement);for(let e=0;e{j.trigger(this._element,et,{relatedTarget:o,direction:d,from:s,to:r})};if(this._element.classList.contains("slide")){o.classList.add(h),u(o),n.classList.add(c),o.classList.add(c);const t=()=>{o.classList.remove(c,h),o.classList.add(it),n.classList.remove(it,h,c),this._isSliding=!1,setTimeout(f,0)};this._queueCallback(t,n,!0)}else n.classList.remove(it),o.classList.add(it),this._isSliding=!1,f();a&&this.cycle()}_directionToOrder(t){return[J,Z].includes(t)?m()?t===Z?G:Q:t===Z?Q:G:t}_orderToDirection(t){return[Q,G].includes(t)?m()?t===G?Z:J:t===G?J:Z:t}static carouselInterface(t,e){const i=st.getOrCreateInstance(t,e);let{_config:n}=i;"object"==typeof e&&(n={...n,...e});const s="string"==typeof e?e:n.slide;if("number"==typeof e)i.to(e);else if("string"==typeof s){if(void 0===i[s])throw new TypeError(`No method named "${s}"`);i[s]()}else n.interval&&n.ride&&(i.pause(),i.cycle())}static jQueryInterface(t){return this.each((function(){st.carouselInterface(this,t)}))}static dataApiClickHandler(t){const e=n(this);if(!e||!e.classList.contains("carousel"))return;const i={...U.getDataAttributes(e),...U.getDataAttributes(this)},s=this.getAttribute("data-bs-slide-to");s&&(i.interval=!1),st.carouselInterface(e,i),s&&st.getInstance(e).to(s),t.preventDefault()}}j.on(document,"click.bs.carousel.data-api","[data-bs-slide], [data-bs-slide-to]",st.dataApiClickHandler),j.on(window,"load.bs.carousel.data-api",(()=>{const t=V.find('[data-bs-ride="carousel"]');for(let e=0,i=t.length;et===this._element));null!==s&&o.length&&(this._selector=s,this._triggerArray.push(e))}this._initializeChildren(),this._config.parent||this._addAriaAndCollapsedClass(this._triggerArray,this._isShown()),this._config.toggle&&this.toggle()}static get Default(){return rt}static get NAME(){return ot}toggle(){this._isShown()?this.hide():this.show()}show(){if(this._isTransitioning||this._isShown())return;let t,e=[];if(this._config.parent){const t=V.find(ut,this._config.parent);e=V.find(".collapse.show, .collapse.collapsing",this._config.parent).filter((e=>!t.includes(e)))}const i=V.findOne(this._selector);if(e.length){const n=e.find((t=>i!==t));if(t=n?pt.getInstance(n):null,t&&t._isTransitioning)return}if(j.trigger(this._element,"show.bs.collapse").defaultPrevented)return;e.forEach((e=>{i!==e&&pt.getOrCreateInstance(e,{toggle:!1}).hide(),t||H.set(e,"bs.collapse",null)}));const n=this._getDimension();this._element.classList.remove(ct),this._element.classList.add(ht),this._element.style[n]=0,this._addAriaAndCollapsedClass(this._triggerArray,!0),this._isTransitioning=!0;const s=`scroll${n[0].toUpperCase()+n.slice(1)}`;this._queueCallback((()=>{this._isTransitioning=!1,this._element.classList.remove(ht),this._element.classList.add(ct,lt),this._element.style[n]="",j.trigger(this._element,"shown.bs.collapse")}),this._element,!0),this._element.style[n]=`${this._element[s]}px`}hide(){if(this._isTransitioning||!this._isShown())return;if(j.trigger(this._element,"hide.bs.collapse").defaultPrevented)return;const t=this._getDimension();this._element.style[t]=`${this._element.getBoundingClientRect()[t]}px`,u(this._element),this._element.classList.add(ht),this._element.classList.remove(ct,lt);const e=this._triggerArray.length;for(let t=0;t{this._isTransitioning=!1,this._element.classList.remove(ht),this._element.classList.add(ct),j.trigger(this._element,"hidden.bs.collapse")}),this._element,!0)}_isShown(t=this._element){return t.classList.contains(lt)}_getConfig(t){return(t={...rt,...U.getDataAttributes(this._element),...t}).toggle=Boolean(t.toggle),t.parent=r(t.parent),a(ot,t,at),t}_getDimension(){return this._element.classList.contains("collapse-horizontal")?"width":"height"}_initializeChildren(){if(!this._config.parent)return;const t=V.find(ut,this._config.parent);V.find(ft,this._config.parent).filter((e=>!t.includes(e))).forEach((t=>{const e=n(t);e&&this._addAriaAndCollapsedClass([t],this._isShown(e))}))}_addAriaAndCollapsedClass(t,e){t.length&&t.forEach((t=>{e?t.classList.remove(dt):t.classList.add(dt),t.setAttribute("aria-expanded",e)}))}static jQueryInterface(t){return this.each((function(){const e={};"string"==typeof t&&/show|hide/.test(t)&&(e.toggle=!1);const i=pt.getOrCreateInstance(this,e);if("string"==typeof t){if(void 0===i[t])throw new TypeError(`No method named "${t}"`);i[t]()}}))}}j.on(document,"click.bs.collapse.data-api",ft,(function(t){("A"===t.target.tagName||t.delegateTarget&&"A"===t.delegateTarget.tagName)&&t.preventDefault();const e=i(this);V.find(e).forEach((t=>{pt.getOrCreateInstance(t,{toggle:!1}).toggle()}))})),g(pt);var mt="top",gt="bottom",_t="right",bt="left",vt="auto",yt=[mt,gt,_t,bt],wt="start",Et="end",At="clippingParents",Tt="viewport",Ot="popper",Ct="reference",kt=yt.reduce((function(t,e){return t.concat([e+"-"+wt,e+"-"+Et])}),[]),Lt=[].concat(yt,[vt]).reduce((function(t,e){return t.concat([e,e+"-"+wt,e+"-"+Et])}),[]),xt="beforeRead",Dt="read",St="afterRead",Nt="beforeMain",It="main",Pt="afterMain",jt="beforeWrite",Mt="write",Ht="afterWrite",Bt=[xt,Dt,St,Nt,It,Pt,jt,Mt,Ht];function Rt(t){return t?(t.nodeName||"").toLowerCase():null}function Wt(t){if(null==t)return window;if("[object Window]"!==t.toString()){var e=t.ownerDocument;return e&&e.defaultView||window}return t}function $t(t){return t instanceof Wt(t).Element||t instanceof Element}function zt(t){return t instanceof Wt(t).HTMLElement||t instanceof HTMLElement}function qt(t){return"undefined"!=typeof ShadowRoot&&(t instanceof Wt(t).ShadowRoot||t instanceof ShadowRoot)}const Ft={name:"applyStyles",enabled:!0,phase:"write",fn:function(t){var e=t.state;Object.keys(e.elements).forEach((function(t){var i=e.styles[t]||{},n=e.attributes[t]||{},s=e.elements[t];zt(s)&&Rt(s)&&(Object.assign(s.style,i),Object.keys(n).forEach((function(t){var e=n[t];!1===e?s.removeAttribute(t):s.setAttribute(t,!0===e?"":e)})))}))},effect:function(t){var e=t.state,i={popper:{position:e.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(e.elements.popper.style,i.popper),e.styles=i,e.elements.arrow&&Object.assign(e.elements.arrow.style,i.arrow),function(){Object.keys(e.elements).forEach((function(t){var n=e.elements[t],s=e.attributes[t]||{},o=Object.keys(e.styles.hasOwnProperty(t)?e.styles[t]:i[t]).reduce((function(t,e){return t[e]="",t}),{});zt(n)&&Rt(n)&&(Object.assign(n.style,o),Object.keys(s).forEach((function(t){n.removeAttribute(t)})))}))}},requires:["computeStyles"]};function Ut(t){return t.split("-")[0]}function Vt(t,e){var i=t.getBoundingClientRect();return{width:i.width/1,height:i.height/1,top:i.top/1,right:i.right/1,bottom:i.bottom/1,left:i.left/1,x:i.left/1,y:i.top/1}}function Kt(t){var e=Vt(t),i=t.offsetWidth,n=t.offsetHeight;return Math.abs(e.width-i)<=1&&(i=e.width),Math.abs(e.height-n)<=1&&(n=e.height),{x:t.offsetLeft,y:t.offsetTop,width:i,height:n}}function Xt(t,e){var i=e.getRootNode&&e.getRootNode();if(t.contains(e))return!0;if(i&&qt(i)){var n=e;do{if(n&&t.isSameNode(n))return!0;n=n.parentNode||n.host}while(n)}return!1}function Yt(t){return Wt(t).getComputedStyle(t)}function Qt(t){return["table","td","th"].indexOf(Rt(t))>=0}function Gt(t){return(($t(t)?t.ownerDocument:t.document)||window.document).documentElement}function Zt(t){return"html"===Rt(t)?t:t.assignedSlot||t.parentNode||(qt(t)?t.host:null)||Gt(t)}function Jt(t){return zt(t)&&"fixed"!==Yt(t).position?t.offsetParent:null}function te(t){for(var e=Wt(t),i=Jt(t);i&&Qt(i)&&"static"===Yt(i).position;)i=Jt(i);return i&&("html"===Rt(i)||"body"===Rt(i)&&"static"===Yt(i).position)?e:i||function(t){var e=-1!==navigator.userAgent.toLowerCase().indexOf("firefox");if(-1!==navigator.userAgent.indexOf("Trident")&&zt(t)&&"fixed"===Yt(t).position)return null;for(var i=Zt(t);zt(i)&&["html","body"].indexOf(Rt(i))<0;){var n=Yt(i);if("none"!==n.transform||"none"!==n.perspective||"paint"===n.contain||-1!==["transform","perspective"].indexOf(n.willChange)||e&&"filter"===n.willChange||e&&n.filter&&"none"!==n.filter)return i;i=i.parentNode}return null}(t)||e}function ee(t){return["top","bottom"].indexOf(t)>=0?"x":"y"}var ie=Math.max,ne=Math.min,se=Math.round;function oe(t,e,i){return ie(t,ne(e,i))}function re(t){return Object.assign({},{top:0,right:0,bottom:0,left:0},t)}function ae(t,e){return e.reduce((function(e,i){return e[i]=t,e}),{})}const le={name:"arrow",enabled:!0,phase:"main",fn:function(t){var e,i=t.state,n=t.name,s=t.options,o=i.elements.arrow,r=i.modifiersData.popperOffsets,a=Ut(i.placement),l=ee(a),c=[bt,_t].indexOf(a)>=0?"height":"width";if(o&&r){var h=function(t,e){return re("number"!=typeof(t="function"==typeof t?t(Object.assign({},e.rects,{placement:e.placement})):t)?t:ae(t,yt))}(s.padding,i),d=Kt(o),u="y"===l?mt:bt,f="y"===l?gt:_t,p=i.rects.reference[c]+i.rects.reference[l]-r[l]-i.rects.popper[c],m=r[l]-i.rects.reference[l],g=te(o),_=g?"y"===l?g.clientHeight||0:g.clientWidth||0:0,b=p/2-m/2,v=h[u],y=_-d[c]-h[f],w=_/2-d[c]/2+b,E=oe(v,w,y),A=l;i.modifiersData[n]=((e={})[A]=E,e.centerOffset=E-w,e)}},effect:function(t){var e=t.state,i=t.options.element,n=void 0===i?"[data-popper-arrow]":i;null!=n&&("string"!=typeof n||(n=e.elements.popper.querySelector(n)))&&Xt(e.elements.popper,n)&&(e.elements.arrow=n)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function ce(t){return t.split("-")[1]}var he={top:"auto",right:"auto",bottom:"auto",left:"auto"};function de(t){var e,i=t.popper,n=t.popperRect,s=t.placement,o=t.variation,r=t.offsets,a=t.position,l=t.gpuAcceleration,c=t.adaptive,h=t.roundOffsets,d=!0===h?function(t){var e=t.x,i=t.y,n=window.devicePixelRatio||1;return{x:se(se(e*n)/n)||0,y:se(se(i*n)/n)||0}}(r):"function"==typeof h?h(r):r,u=d.x,f=void 0===u?0:u,p=d.y,m=void 0===p?0:p,g=r.hasOwnProperty("x"),_=r.hasOwnProperty("y"),b=bt,v=mt,y=window;if(c){var w=te(i),E="clientHeight",A="clientWidth";w===Wt(i)&&"static"!==Yt(w=Gt(i)).position&&"absolute"===a&&(E="scrollHeight",A="scrollWidth"),w=w,s!==mt&&(s!==bt&&s!==_t||o!==Et)||(v=gt,m-=w[E]-n.height,m*=l?1:-1),s!==bt&&(s!==mt&&s!==gt||o!==Et)||(b=_t,f-=w[A]-n.width,f*=l?1:-1)}var T,O=Object.assign({position:a},c&&he);return l?Object.assign({},O,((T={})[v]=_?"0":"",T[b]=g?"0":"",T.transform=(y.devicePixelRatio||1)<=1?"translate("+f+"px, "+m+"px)":"translate3d("+f+"px, "+m+"px, 0)",T)):Object.assign({},O,((e={})[v]=_?m+"px":"",e[b]=g?f+"px":"",e.transform="",e))}const ue={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(t){var e=t.state,i=t.options,n=i.gpuAcceleration,s=void 0===n||n,o=i.adaptive,r=void 0===o||o,a=i.roundOffsets,l=void 0===a||a,c={placement:Ut(e.placement),variation:ce(e.placement),popper:e.elements.popper,popperRect:e.rects.popper,gpuAcceleration:s};null!=e.modifiersData.popperOffsets&&(e.styles.popper=Object.assign({},e.styles.popper,de(Object.assign({},c,{offsets:e.modifiersData.popperOffsets,position:e.options.strategy,adaptive:r,roundOffsets:l})))),null!=e.modifiersData.arrow&&(e.styles.arrow=Object.assign({},e.styles.arrow,de(Object.assign({},c,{offsets:e.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-placement":e.placement})},data:{}};var fe={passive:!0};const pe={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(t){var e=t.state,i=t.instance,n=t.options,s=n.scroll,o=void 0===s||s,r=n.resize,a=void 0===r||r,l=Wt(e.elements.popper),c=[].concat(e.scrollParents.reference,e.scrollParents.popper);return o&&c.forEach((function(t){t.addEventListener("scroll",i.update,fe)})),a&&l.addEventListener("resize",i.update,fe),function(){o&&c.forEach((function(t){t.removeEventListener("scroll",i.update,fe)})),a&&l.removeEventListener("resize",i.update,fe)}},data:{}};var me={left:"right",right:"left",bottom:"top",top:"bottom"};function ge(t){return t.replace(/left|right|bottom|top/g,(function(t){return me[t]}))}var _e={start:"end",end:"start"};function be(t){return t.replace(/start|end/g,(function(t){return _e[t]}))}function ve(t){var e=Wt(t);return{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}}function ye(t){return Vt(Gt(t)).left+ve(t).scrollLeft}function we(t){var e=Yt(t),i=e.overflow,n=e.overflowX,s=e.overflowY;return/auto|scroll|overlay|hidden/.test(i+s+n)}function Ee(t){return["html","body","#document"].indexOf(Rt(t))>=0?t.ownerDocument.body:zt(t)&&we(t)?t:Ee(Zt(t))}function Ae(t,e){var i;void 0===e&&(e=[]);var n=Ee(t),s=n===(null==(i=t.ownerDocument)?void 0:i.body),o=Wt(n),r=s?[o].concat(o.visualViewport||[],we(n)?n:[]):n,a=e.concat(r);return s?a:a.concat(Ae(Zt(r)))}function Te(t){return Object.assign({},t,{left:t.x,top:t.y,right:t.x+t.width,bottom:t.y+t.height})}function Oe(t,e){return e===Tt?Te(function(t){var e=Wt(t),i=Gt(t),n=e.visualViewport,s=i.clientWidth,o=i.clientHeight,r=0,a=0;return n&&(s=n.width,o=n.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(r=n.offsetLeft,a=n.offsetTop)),{width:s,height:o,x:r+ye(t),y:a}}(t)):zt(e)?function(t){var e=Vt(t);return e.top=e.top+t.clientTop,e.left=e.left+t.clientLeft,e.bottom=e.top+t.clientHeight,e.right=e.left+t.clientWidth,e.width=t.clientWidth,e.height=t.clientHeight,e.x=e.left,e.y=e.top,e}(e):Te(function(t){var e,i=Gt(t),n=ve(t),s=null==(e=t.ownerDocument)?void 0:e.body,o=ie(i.scrollWidth,i.clientWidth,s?s.scrollWidth:0,s?s.clientWidth:0),r=ie(i.scrollHeight,i.clientHeight,s?s.scrollHeight:0,s?s.clientHeight:0),a=-n.scrollLeft+ye(t),l=-n.scrollTop;return"rtl"===Yt(s||i).direction&&(a+=ie(i.clientWidth,s?s.clientWidth:0)-o),{width:o,height:r,x:a,y:l}}(Gt(t)))}function Ce(t){var e,i=t.reference,n=t.element,s=t.placement,o=s?Ut(s):null,r=s?ce(s):null,a=i.x+i.width/2-n.width/2,l=i.y+i.height/2-n.height/2;switch(o){case mt:e={x:a,y:i.y-n.height};break;case gt:e={x:a,y:i.y+i.height};break;case _t:e={x:i.x+i.width,y:l};break;case bt:e={x:i.x-n.width,y:l};break;default:e={x:i.x,y:i.y}}var c=o?ee(o):null;if(null!=c){var h="y"===c?"height":"width";switch(r){case wt:e[c]=e[c]-(i[h]/2-n[h]/2);break;case Et:e[c]=e[c]+(i[h]/2-n[h]/2)}}return e}function ke(t,e){void 0===e&&(e={});var i=e,n=i.placement,s=void 0===n?t.placement:n,o=i.boundary,r=void 0===o?At:o,a=i.rootBoundary,l=void 0===a?Tt:a,c=i.elementContext,h=void 0===c?Ot:c,d=i.altBoundary,u=void 0!==d&&d,f=i.padding,p=void 0===f?0:f,m=re("number"!=typeof p?p:ae(p,yt)),g=h===Ot?Ct:Ot,_=t.rects.popper,b=t.elements[u?g:h],v=function(t,e,i){var n="clippingParents"===e?function(t){var e=Ae(Zt(t)),i=["absolute","fixed"].indexOf(Yt(t).position)>=0&&zt(t)?te(t):t;return $t(i)?e.filter((function(t){return $t(t)&&Xt(t,i)&&"body"!==Rt(t)})):[]}(t):[].concat(e),s=[].concat(n,[i]),o=s[0],r=s.reduce((function(e,i){var n=Oe(t,i);return e.top=ie(n.top,e.top),e.right=ne(n.right,e.right),e.bottom=ne(n.bottom,e.bottom),e.left=ie(n.left,e.left),e}),Oe(t,o));return r.width=r.right-r.left,r.height=r.bottom-r.top,r.x=r.left,r.y=r.top,r}($t(b)?b:b.contextElement||Gt(t.elements.popper),r,l),y=Vt(t.elements.reference),w=Ce({reference:y,element:_,strategy:"absolute",placement:s}),E=Te(Object.assign({},_,w)),A=h===Ot?E:y,T={top:v.top-A.top+m.top,bottom:A.bottom-v.bottom+m.bottom,left:v.left-A.left+m.left,right:A.right-v.right+m.right},O=t.modifiersData.offset;if(h===Ot&&O){var C=O[s];Object.keys(T).forEach((function(t){var e=[_t,gt].indexOf(t)>=0?1:-1,i=[mt,gt].indexOf(t)>=0?"y":"x";T[t]+=C[i]*e}))}return T}function Le(t,e){void 0===e&&(e={});var i=e,n=i.placement,s=i.boundary,o=i.rootBoundary,r=i.padding,a=i.flipVariations,l=i.allowedAutoPlacements,c=void 0===l?Lt:l,h=ce(n),d=h?a?kt:kt.filter((function(t){return ce(t)===h})):yt,u=d.filter((function(t){return c.indexOf(t)>=0}));0===u.length&&(u=d);var f=u.reduce((function(e,i){return e[i]=ke(t,{placement:i,boundary:s,rootBoundary:o,padding:r})[Ut(i)],e}),{});return Object.keys(f).sort((function(t,e){return f[t]-f[e]}))}const xe={name:"flip",enabled:!0,phase:"main",fn:function(t){var e=t.state,i=t.options,n=t.name;if(!e.modifiersData[n]._skip){for(var s=i.mainAxis,o=void 0===s||s,r=i.altAxis,a=void 0===r||r,l=i.fallbackPlacements,c=i.padding,h=i.boundary,d=i.rootBoundary,u=i.altBoundary,f=i.flipVariations,p=void 0===f||f,m=i.allowedAutoPlacements,g=e.options.placement,_=Ut(g),b=l||(_!==g&&p?function(t){if(Ut(t)===vt)return[];var e=ge(t);return[be(t),e,be(e)]}(g):[ge(g)]),v=[g].concat(b).reduce((function(t,i){return t.concat(Ut(i)===vt?Le(e,{placement:i,boundary:h,rootBoundary:d,padding:c,flipVariations:p,allowedAutoPlacements:m}):i)}),[]),y=e.rects.reference,w=e.rects.popper,E=new Map,A=!0,T=v[0],O=0;O=0,D=x?"width":"height",S=ke(e,{placement:C,boundary:h,rootBoundary:d,altBoundary:u,padding:c}),N=x?L?_t:bt:L?gt:mt;y[D]>w[D]&&(N=ge(N));var I=ge(N),P=[];if(o&&P.push(S[k]<=0),a&&P.push(S[N]<=0,S[I]<=0),P.every((function(t){return t}))){T=C,A=!1;break}E.set(C,P)}if(A)for(var j=function(t){var e=v.find((function(e){var i=E.get(e);if(i)return i.slice(0,t).every((function(t){return t}))}));if(e)return T=e,"break"},M=p?3:1;M>0&&"break"!==j(M);M--);e.placement!==T&&(e.modifiersData[n]._skip=!0,e.placement=T,e.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function De(t,e,i){return void 0===i&&(i={x:0,y:0}),{top:t.top-e.height-i.y,right:t.right-e.width+i.x,bottom:t.bottom-e.height+i.y,left:t.left-e.width-i.x}}function Se(t){return[mt,_t,gt,bt].some((function(e){return t[e]>=0}))}const Ne={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(t){var e=t.state,i=t.name,n=e.rects.reference,s=e.rects.popper,o=e.modifiersData.preventOverflow,r=ke(e,{elementContext:"reference"}),a=ke(e,{altBoundary:!0}),l=De(r,n),c=De(a,s,o),h=Se(l),d=Se(c);e.modifiersData[i]={referenceClippingOffsets:l,popperEscapeOffsets:c,isReferenceHidden:h,hasPopperEscaped:d},e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-reference-hidden":h,"data-popper-escaped":d})}},Ie={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(t){var e=t.state,i=t.options,n=t.name,s=i.offset,o=void 0===s?[0,0]:s,r=Lt.reduce((function(t,i){return t[i]=function(t,e,i){var n=Ut(t),s=[bt,mt].indexOf(n)>=0?-1:1,o="function"==typeof i?i(Object.assign({},e,{placement:t})):i,r=o[0],a=o[1];return r=r||0,a=(a||0)*s,[bt,_t].indexOf(n)>=0?{x:a,y:r}:{x:r,y:a}}(i,e.rects,o),t}),{}),a=r[e.placement],l=a.x,c=a.y;null!=e.modifiersData.popperOffsets&&(e.modifiersData.popperOffsets.x+=l,e.modifiersData.popperOffsets.y+=c),e.modifiersData[n]=r}},Pe={name:"popperOffsets",enabled:!0,phase:"read",fn:function(t){var e=t.state,i=t.name;e.modifiersData[i]=Ce({reference:e.rects.reference,element:e.rects.popper,strategy:"absolute",placement:e.placement})},data:{}},je={name:"preventOverflow",enabled:!0,phase:"main",fn:function(t){var e=t.state,i=t.options,n=t.name,s=i.mainAxis,o=void 0===s||s,r=i.altAxis,a=void 0!==r&&r,l=i.boundary,c=i.rootBoundary,h=i.altBoundary,d=i.padding,u=i.tether,f=void 0===u||u,p=i.tetherOffset,m=void 0===p?0:p,g=ke(e,{boundary:l,rootBoundary:c,padding:d,altBoundary:h}),_=Ut(e.placement),b=ce(e.placement),v=!b,y=ee(_),w="x"===y?"y":"x",E=e.modifiersData.popperOffsets,A=e.rects.reference,T=e.rects.popper,O="function"==typeof m?m(Object.assign({},e.rects,{placement:e.placement})):m,C={x:0,y:0};if(E){if(o||a){var k="y"===y?mt:bt,L="y"===y?gt:_t,x="y"===y?"height":"width",D=E[y],S=E[y]+g[k],N=E[y]-g[L],I=f?-T[x]/2:0,P=b===wt?A[x]:T[x],j=b===wt?-T[x]:-A[x],M=e.elements.arrow,H=f&&M?Kt(M):{width:0,height:0},B=e.modifiersData["arrow#persistent"]?e.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},R=B[k],W=B[L],$=oe(0,A[x],H[x]),z=v?A[x]/2-I-$-R-O:P-$-R-O,q=v?-A[x]/2+I+$+W+O:j+$+W+O,F=e.elements.arrow&&te(e.elements.arrow),U=F?"y"===y?F.clientTop||0:F.clientLeft||0:0,V=e.modifiersData.offset?e.modifiersData.offset[e.placement][y]:0,K=E[y]+z-V-U,X=E[y]+q-V;if(o){var Y=oe(f?ne(S,K):S,D,f?ie(N,X):N);E[y]=Y,C[y]=Y-D}if(a){var Q="x"===y?mt:bt,G="x"===y?gt:_t,Z=E[w],J=Z+g[Q],tt=Z-g[G],et=oe(f?ne(J,K):J,Z,f?ie(tt,X):tt);E[w]=et,C[w]=et-Z}}e.modifiersData[n]=C}},requiresIfExists:["offset"]};function Me(t,e,i){void 0===i&&(i=!1);var n=zt(e);zt(e)&&function(t){var e=t.getBoundingClientRect();e.width,t.offsetWidth,e.height,t.offsetHeight}(e);var s,o,r=Gt(e),a=Vt(t),l={scrollLeft:0,scrollTop:0},c={x:0,y:0};return(n||!n&&!i)&&(("body"!==Rt(e)||we(r))&&(l=(s=e)!==Wt(s)&&zt(s)?{scrollLeft:(o=s).scrollLeft,scrollTop:o.scrollTop}:ve(s)),zt(e)?((c=Vt(e)).x+=e.clientLeft,c.y+=e.clientTop):r&&(c.x=ye(r))),{x:a.left+l.scrollLeft-c.x,y:a.top+l.scrollTop-c.y,width:a.width,height:a.height}}function He(t){var e=new Map,i=new Set,n=[];function s(t){i.add(t.name),[].concat(t.requires||[],t.requiresIfExists||[]).forEach((function(t){if(!i.has(t)){var n=e.get(t);n&&s(n)}})),n.push(t)}return t.forEach((function(t){e.set(t.name,t)})),t.forEach((function(t){i.has(t.name)||s(t)})),n}var Be={placement:"bottom",modifiers:[],strategy:"absolute"};function Re(){for(var t=arguments.length,e=new Array(t),i=0;ij.on(t,"mouseover",d))),this._element.focus(),this._element.setAttribute("aria-expanded",!0),this._menu.classList.add(Je),this._element.classList.add(Je),j.trigger(this._element,"shown.bs.dropdown",t)}hide(){if(c(this._element)||!this._isShown(this._menu))return;const t={relatedTarget:this._element};this._completeHide(t)}dispose(){this._popper&&this._popper.destroy(),super.dispose()}update(){this._inNavbar=this._detectNavbar(),this._popper&&this._popper.update()}_completeHide(t){j.trigger(this._element,"hide.bs.dropdown",t).defaultPrevented||("ontouchstart"in document.documentElement&&[].concat(...document.body.children).forEach((t=>j.off(t,"mouseover",d))),this._popper&&this._popper.destroy(),this._menu.classList.remove(Je),this._element.classList.remove(Je),this._element.setAttribute("aria-expanded","false"),U.removeDataAttribute(this._menu,"popper"),j.trigger(this._element,"hidden.bs.dropdown",t))}_getConfig(t){if(t={...this.constructor.Default,...U.getDataAttributes(this._element),...t},a(Ue,t,this.constructor.DefaultType),"object"==typeof t.reference&&!o(t.reference)&&"function"!=typeof t.reference.getBoundingClientRect)throw new TypeError(`${Ue.toUpperCase()}: Option "reference" provided type "object" without a required "getBoundingClientRect" method.`);return t}_createPopper(t){if(void 0===Fe)throw new TypeError("Bootstrap's dropdowns require Popper (https://popper.js.org)");let e=this._element;"parent"===this._config.reference?e=t:o(this._config.reference)?e=r(this._config.reference):"object"==typeof this._config.reference&&(e=this._config.reference);const i=this._getPopperConfig(),n=i.modifiers.find((t=>"applyStyles"===t.name&&!1===t.enabled));this._popper=qe(e,this._menu,i),n&&U.setDataAttribute(this._menu,"popper","static")}_isShown(t=this._element){return t.classList.contains(Je)}_getMenuElement(){return V.next(this._element,ei)[0]}_getPlacement(){const t=this._element.parentNode;if(t.classList.contains("dropend"))return ri;if(t.classList.contains("dropstart"))return ai;const e="end"===getComputedStyle(this._menu).getPropertyValue("--bs-position").trim();return t.classList.contains("dropup")?e?ni:ii:e?oi:si}_detectNavbar(){return null!==this._element.closest(".navbar")}_getOffset(){const{offset:t}=this._config;return"string"==typeof t?t.split(",").map((t=>Number.parseInt(t,10))):"function"==typeof t?e=>t(e,this._element):t}_getPopperConfig(){const t={placement:this._getPlacement(),modifiers:[{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"offset",options:{offset:this._getOffset()}}]};return"static"===this._config.display&&(t.modifiers=[{name:"applyStyles",enabled:!1}]),{...t,..."function"==typeof this._config.popperConfig?this._config.popperConfig(t):this._config.popperConfig}}_selectMenuItem({key:t,target:e}){const i=V.find(".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",this._menu).filter(l);i.length&&v(i,e,t===Ye,!i.includes(e)).focus()}static jQueryInterface(t){return this.each((function(){const e=hi.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}static clearMenus(t){if(t&&(2===t.button||"keyup"===t.type&&"Tab"!==t.key))return;const e=V.find(ti);for(let i=0,n=e.length;ie+t)),this._setElementAttributes(di,"paddingRight",(e=>e+t)),this._setElementAttributes(ui,"marginRight",(e=>e-t))}_disableOverFlow(){this._saveInitialAttribute(this._element,"overflow"),this._element.style.overflow="hidden"}_setElementAttributes(t,e,i){const n=this.getWidth();this._applyManipulationCallback(t,(t=>{if(t!==this._element&&window.innerWidth>t.clientWidth+n)return;this._saveInitialAttribute(t,e);const s=window.getComputedStyle(t)[e];t.style[e]=`${i(Number.parseFloat(s))}px`}))}reset(){this._resetElementAttributes(this._element,"overflow"),this._resetElementAttributes(this._element,"paddingRight"),this._resetElementAttributes(di,"paddingRight"),this._resetElementAttributes(ui,"marginRight")}_saveInitialAttribute(t,e){const i=t.style[e];i&&U.setDataAttribute(t,e,i)}_resetElementAttributes(t,e){this._applyManipulationCallback(t,(t=>{const i=U.getDataAttribute(t,e);void 0===i?t.style.removeProperty(e):(U.removeDataAttribute(t,e),t.style[e]=i)}))}_applyManipulationCallback(t,e){o(t)?e(t):V.find(t,this._element).forEach(e)}isOverflowing(){return this.getWidth()>0}}const pi={className:"modal-backdrop",isVisible:!0,isAnimated:!1,rootElement:"body",clickCallback:null},mi={className:"string",isVisible:"boolean",isAnimated:"boolean",rootElement:"(element|string)",clickCallback:"(function|null)"},gi="show",_i="mousedown.bs.backdrop";class bi{constructor(t){this._config=this._getConfig(t),this._isAppended=!1,this._element=null}show(t){this._config.isVisible?(this._append(),this._config.isAnimated&&u(this._getElement()),this._getElement().classList.add(gi),this._emulateAnimation((()=>{_(t)}))):_(t)}hide(t){this._config.isVisible?(this._getElement().classList.remove(gi),this._emulateAnimation((()=>{this.dispose(),_(t)}))):_(t)}_getElement(){if(!this._element){const t=document.createElement("div");t.className=this._config.className,this._config.isAnimated&&t.classList.add("fade"),this._element=t}return this._element}_getConfig(t){return(t={...pi,..."object"==typeof t?t:{}}).rootElement=r(t.rootElement),a("backdrop",t,mi),t}_append(){this._isAppended||(this._config.rootElement.append(this._getElement()),j.on(this._getElement(),_i,(()=>{_(this._config.clickCallback)})),this._isAppended=!0)}dispose(){this._isAppended&&(j.off(this._element,_i),this._element.remove(),this._isAppended=!1)}_emulateAnimation(t){b(t,this._getElement(),this._config.isAnimated)}}const vi={trapElement:null,autofocus:!0},yi={trapElement:"element",autofocus:"boolean"},wi=".bs.focustrap",Ei="backward";class Ai{constructor(t){this._config=this._getConfig(t),this._isActive=!1,this._lastTabNavDirection=null}activate(){const{trapElement:t,autofocus:e}=this._config;this._isActive||(e&&t.focus(),j.off(document,wi),j.on(document,"focusin.bs.focustrap",(t=>this._handleFocusin(t))),j.on(document,"keydown.tab.bs.focustrap",(t=>this._handleKeydown(t))),this._isActive=!0)}deactivate(){this._isActive&&(this._isActive=!1,j.off(document,wi))}_handleFocusin(t){const{target:e}=t,{trapElement:i}=this._config;if(e===document||e===i||i.contains(e))return;const n=V.focusableChildren(i);0===n.length?i.focus():this._lastTabNavDirection===Ei?n[n.length-1].focus():n[0].focus()}_handleKeydown(t){"Tab"===t.key&&(this._lastTabNavDirection=t.shiftKey?Ei:"forward")}_getConfig(t){return t={...vi,..."object"==typeof t?t:{}},a("focustrap",t,yi),t}}const Ti="modal",Oi="Escape",Ci={backdrop:!0,keyboard:!0,focus:!0},ki={backdrop:"(boolean|string)",keyboard:"boolean",focus:"boolean"},Li="hidden.bs.modal",xi="show.bs.modal",Di="resize.bs.modal",Si="click.dismiss.bs.modal",Ni="keydown.dismiss.bs.modal",Ii="mousedown.dismiss.bs.modal",Pi="modal-open",ji="show",Mi="modal-static";class Hi extends B{constructor(t,e){super(t),this._config=this._getConfig(e),this._dialog=V.findOne(".modal-dialog",this._element),this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._isShown=!1,this._ignoreBackdropClick=!1,this._isTransitioning=!1,this._scrollBar=new fi}static get Default(){return Ci}static get NAME(){return Ti}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||this._isTransitioning||j.trigger(this._element,xi,{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._isAnimated()&&(this._isTransitioning=!0),this._scrollBar.hide(),document.body.classList.add(Pi),this._adjustDialog(),this._setEscapeEvent(),this._setResizeEvent(),j.on(this._dialog,Ii,(()=>{j.one(this._element,"mouseup.dismiss.bs.modal",(t=>{t.target===this._element&&(this._ignoreBackdropClick=!0)}))})),this._showBackdrop((()=>this._showElement(t))))}hide(){if(!this._isShown||this._isTransitioning)return;if(j.trigger(this._element,"hide.bs.modal").defaultPrevented)return;this._isShown=!1;const t=this._isAnimated();t&&(this._isTransitioning=!0),this._setEscapeEvent(),this._setResizeEvent(),this._focustrap.deactivate(),this._element.classList.remove(ji),j.off(this._element,Si),j.off(this._dialog,Ii),this._queueCallback((()=>this._hideModal()),this._element,t)}dispose(){[window,this._dialog].forEach((t=>j.off(t,".bs.modal"))),this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}handleUpdate(){this._adjustDialog()}_initializeBackDrop(){return new bi({isVisible:Boolean(this._config.backdrop),isAnimated:this._isAnimated()})}_initializeFocusTrap(){return new Ai({trapElement:this._element})}_getConfig(t){return t={...Ci,...U.getDataAttributes(this._element),..."object"==typeof t?t:{}},a(Ti,t,ki),t}_showElement(t){const e=this._isAnimated(),i=V.findOne(".modal-body",this._dialog);this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||document.body.append(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.scrollTop=0,i&&(i.scrollTop=0),e&&u(this._element),this._element.classList.add(ji),this._queueCallback((()=>{this._config.focus&&this._focustrap.activate(),this._isTransitioning=!1,j.trigger(this._element,"shown.bs.modal",{relatedTarget:t})}),this._dialog,e)}_setEscapeEvent(){this._isShown?j.on(this._element,Ni,(t=>{this._config.keyboard&&t.key===Oi?(t.preventDefault(),this.hide()):this._config.keyboard||t.key!==Oi||this._triggerBackdropTransition()})):j.off(this._element,Ni)}_setResizeEvent(){this._isShown?j.on(window,Di,(()=>this._adjustDialog())):j.off(window,Di)}_hideModal(){this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._isTransitioning=!1,this._backdrop.hide((()=>{document.body.classList.remove(Pi),this._resetAdjustments(),this._scrollBar.reset(),j.trigger(this._element,Li)}))}_showBackdrop(t){j.on(this._element,Si,(t=>{this._ignoreBackdropClick?this._ignoreBackdropClick=!1:t.target===t.currentTarget&&(!0===this._config.backdrop?this.hide():"static"===this._config.backdrop&&this._triggerBackdropTransition())})),this._backdrop.show(t)}_isAnimated(){return this._element.classList.contains("fade")}_triggerBackdropTransition(){if(j.trigger(this._element,"hidePrevented.bs.modal").defaultPrevented)return;const{classList:t,scrollHeight:e,style:i}=this._element,n=e>document.documentElement.clientHeight;!n&&"hidden"===i.overflowY||t.contains(Mi)||(n||(i.overflowY="hidden"),t.add(Mi),this._queueCallback((()=>{t.remove(Mi),n||this._queueCallback((()=>{i.overflowY=""}),this._dialog)}),this._dialog),this._element.focus())}_adjustDialog(){const t=this._element.scrollHeight>document.documentElement.clientHeight,e=this._scrollBar.getWidth(),i=e>0;(!i&&t&&!m()||i&&!t&&m())&&(this._element.style.paddingLeft=`${e}px`),(i&&!t&&!m()||!i&&t&&m())&&(this._element.style.paddingRight=`${e}px`)}_resetAdjustments(){this._element.style.paddingLeft="",this._element.style.paddingRight=""}static jQueryInterface(t,e){return this.each((function(){const i=Hi.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===i[t])throw new TypeError(`No method named "${t}"`);i[t](e)}}))}}j.on(document,"click.bs.modal.data-api",'[data-bs-toggle="modal"]',(function(t){const e=n(this);["A","AREA"].includes(this.tagName)&&t.preventDefault(),j.one(e,xi,(t=>{t.defaultPrevented||j.one(e,Li,(()=>{l(this)&&this.focus()}))}));const i=V.findOne(".modal.show");i&&Hi.getInstance(i).hide(),Hi.getOrCreateInstance(e).toggle(this)})),R(Hi),g(Hi);const Bi="offcanvas",Ri={backdrop:!0,keyboard:!0,scroll:!1},Wi={backdrop:"boolean",keyboard:"boolean",scroll:"boolean"},$i="show",zi=".offcanvas.show",qi="hidden.bs.offcanvas";class Fi extends B{constructor(t,e){super(t),this._config=this._getConfig(e),this._isShown=!1,this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._addEventListeners()}static get NAME(){return Bi}static get Default(){return Ri}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||j.trigger(this._element,"show.bs.offcanvas",{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._element.style.visibility="visible",this._backdrop.show(),this._config.scroll||(new fi).hide(),this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.classList.add($i),this._queueCallback((()=>{this._config.scroll||this._focustrap.activate(),j.trigger(this._element,"shown.bs.offcanvas",{relatedTarget:t})}),this._element,!0))}hide(){this._isShown&&(j.trigger(this._element,"hide.bs.offcanvas").defaultPrevented||(this._focustrap.deactivate(),this._element.blur(),this._isShown=!1,this._element.classList.remove($i),this._backdrop.hide(),this._queueCallback((()=>{this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._element.style.visibility="hidden",this._config.scroll||(new fi).reset(),j.trigger(this._element,qi)}),this._element,!0)))}dispose(){this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}_getConfig(t){return t={...Ri,...U.getDataAttributes(this._element),..."object"==typeof t?t:{}},a(Bi,t,Wi),t}_initializeBackDrop(){return new bi({className:"offcanvas-backdrop",isVisible:this._config.backdrop,isAnimated:!0,rootElement:this._element.parentNode,clickCallback:()=>this.hide()})}_initializeFocusTrap(){return new Ai({trapElement:this._element})}_addEventListeners(){j.on(this._element,"keydown.dismiss.bs.offcanvas",(t=>{this._config.keyboard&&"Escape"===t.key&&this.hide()}))}static jQueryInterface(t){return this.each((function(){const e=Fi.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}j.on(document,"click.bs.offcanvas.data-api",'[data-bs-toggle="offcanvas"]',(function(t){const e=n(this);if(["A","AREA"].includes(this.tagName)&&t.preventDefault(),c(this))return;j.one(e,qi,(()=>{l(this)&&this.focus()}));const i=V.findOne(zi);i&&i!==e&&Fi.getInstance(i).hide(),Fi.getOrCreateInstance(e).toggle(this)})),j.on(window,"load.bs.offcanvas.data-api",(()=>V.find(zi).forEach((t=>Fi.getOrCreateInstance(t).show())))),R(Fi),g(Fi);const Ui=new Set(["background","cite","href","itemtype","longdesc","poster","src","xlink:href"]),Vi=/^(?:(?:https?|mailto|ftp|tel|file|sms):|[^#&/:?]*(?:[#/?]|$))/i,Ki=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i,Xi=(t,e)=>{const i=t.nodeName.toLowerCase();if(e.includes(i))return!Ui.has(i)||Boolean(Vi.test(t.nodeValue)||Ki.test(t.nodeValue));const n=e.filter((t=>t instanceof RegExp));for(let t=0,e=n.length;t{Xi(t,r)||i.removeAttribute(t.nodeName)}))}return n.body.innerHTML}const Qi="tooltip",Gi=new Set(["sanitize","allowList","sanitizeFn"]),Zi={animation:"boolean",template:"string",title:"(string|element|function)",trigger:"string",delay:"(number|object)",html:"boolean",selector:"(string|boolean)",placement:"(string|function)",offset:"(array|string|function)",container:"(string|element|boolean)",fallbackPlacements:"array",boundary:"(string|element)",customClass:"(string|function)",sanitize:"boolean",sanitizeFn:"(null|function)",allowList:"object",popperConfig:"(null|object|function)"},Ji={AUTO:"auto",TOP:"top",RIGHT:m()?"left":"right",BOTTOM:"bottom",LEFT:m()?"right":"left"},tn={animation:!0,template:'
',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:[0,0],container:!1,fallbackPlacements:["top","right","bottom","left"],boundary:"clippingParents",customClass:"",sanitize:!0,sanitizeFn:null,allowList:{"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},popperConfig:null},en={HIDE:"hide.bs.tooltip",HIDDEN:"hidden.bs.tooltip",SHOW:"show.bs.tooltip",SHOWN:"shown.bs.tooltip",INSERTED:"inserted.bs.tooltip",CLICK:"click.bs.tooltip",FOCUSIN:"focusin.bs.tooltip",FOCUSOUT:"focusout.bs.tooltip",MOUSEENTER:"mouseenter.bs.tooltip",MOUSELEAVE:"mouseleave.bs.tooltip"},nn="fade",sn="show",on="show",rn="out",an=".tooltip-inner",ln=".modal",cn="hide.bs.modal",hn="hover",dn="focus";class un extends B{constructor(t,e){if(void 0===Fe)throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");super(t),this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this._config=this._getConfig(e),this.tip=null,this._setListeners()}static get Default(){return tn}static get NAME(){return Qi}static get Event(){return en}static get DefaultType(){return Zi}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}toggleEnabled(){this._isEnabled=!this._isEnabled}toggle(t){if(this._isEnabled)if(t){const e=this._initializeOnDelegatedTarget(t);e._activeTrigger.click=!e._activeTrigger.click,e._isWithActiveTrigger()?e._enter(null,e):e._leave(null,e)}else{if(this.getTipElement().classList.contains(sn))return void this._leave(null,this);this._enter(null,this)}}dispose(){clearTimeout(this._timeout),j.off(this._element.closest(ln),cn,this._hideModalHandler),this.tip&&this.tip.remove(),this._disposePopper(),super.dispose()}show(){if("none"===this._element.style.display)throw new Error("Please use show on visible elements");if(!this.isWithContent()||!this._isEnabled)return;const t=j.trigger(this._element,this.constructor.Event.SHOW),e=h(this._element),i=null===e?this._element.ownerDocument.documentElement.contains(this._element):e.contains(this._element);if(t.defaultPrevented||!i)return;"tooltip"===this.constructor.NAME&&this.tip&&this.getTitle()!==this.tip.querySelector(an).innerHTML&&(this._disposePopper(),this.tip.remove(),this.tip=null);const n=this.getTipElement(),s=(t=>{do{t+=Math.floor(1e6*Math.random())}while(document.getElementById(t));return t})(this.constructor.NAME);n.setAttribute("id",s),this._element.setAttribute("aria-describedby",s),this._config.animation&&n.classList.add(nn);const o="function"==typeof this._config.placement?this._config.placement.call(this,n,this._element):this._config.placement,r=this._getAttachment(o);this._addAttachmentClass(r);const{container:a}=this._config;H.set(n,this.constructor.DATA_KEY,this),this._element.ownerDocument.documentElement.contains(this.tip)||(a.append(n),j.trigger(this._element,this.constructor.Event.INSERTED)),this._popper?this._popper.update():this._popper=qe(this._element,n,this._getPopperConfig(r)),n.classList.add(sn);const l=this._resolvePossibleFunction(this._config.customClass);l&&n.classList.add(...l.split(" ")),"ontouchstart"in document.documentElement&&[].concat(...document.body.children).forEach((t=>{j.on(t,"mouseover",d)}));const c=this.tip.classList.contains(nn);this._queueCallback((()=>{const t=this._hoverState;this._hoverState=null,j.trigger(this._element,this.constructor.Event.SHOWN),t===rn&&this._leave(null,this)}),this.tip,c)}hide(){if(!this._popper)return;const t=this.getTipElement();if(j.trigger(this._element,this.constructor.Event.HIDE).defaultPrevented)return;t.classList.remove(sn),"ontouchstart"in document.documentElement&&[].concat(...document.body.children).forEach((t=>j.off(t,"mouseover",d))),this._activeTrigger.click=!1,this._activeTrigger.focus=!1,this._activeTrigger.hover=!1;const e=this.tip.classList.contains(nn);this._queueCallback((()=>{this._isWithActiveTrigger()||(this._hoverState!==on&&t.remove(),this._cleanTipClass(),this._element.removeAttribute("aria-describedby"),j.trigger(this._element,this.constructor.Event.HIDDEN),this._disposePopper())}),this.tip,e),this._hoverState=""}update(){null!==this._popper&&this._popper.update()}isWithContent(){return Boolean(this.getTitle())}getTipElement(){if(this.tip)return this.tip;const t=document.createElement("div");t.innerHTML=this._config.template;const e=t.children[0];return this.setContent(e),e.classList.remove(nn,sn),this.tip=e,this.tip}setContent(t){this._sanitizeAndSetContent(t,this.getTitle(),an)}_sanitizeAndSetContent(t,e,i){const n=V.findOne(i,t);e||!n?this.setElementContent(n,e):n.remove()}setElementContent(t,e){if(null!==t)return o(e)?(e=r(e),void(this._config.html?e.parentNode!==t&&(t.innerHTML="",t.append(e)):t.textContent=e.textContent)):void(this._config.html?(this._config.sanitize&&(e=Yi(e,this._config.allowList,this._config.sanitizeFn)),t.innerHTML=e):t.textContent=e)}getTitle(){const t=this._element.getAttribute("data-bs-original-title")||this._config.title;return this._resolvePossibleFunction(t)}updateAttachment(t){return"right"===t?"end":"left"===t?"start":t}_initializeOnDelegatedTarget(t,e){return e||this.constructor.getOrCreateInstance(t.delegateTarget,this._getDelegateConfig())}_getOffset(){const{offset:t}=this._config;return"string"==typeof t?t.split(",").map((t=>Number.parseInt(t,10))):"function"==typeof t?e=>t(e,this._element):t}_resolvePossibleFunction(t){return"function"==typeof t?t.call(this._element):t}_getPopperConfig(t){const e={placement:t,modifiers:[{name:"flip",options:{fallbackPlacements:this._config.fallbackPlacements}},{name:"offset",options:{offset:this._getOffset()}},{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"arrow",options:{element:`.${this.constructor.NAME}-arrow`}},{name:"onChange",enabled:!0,phase:"afterWrite",fn:t=>this._handlePopperPlacementChange(t)}],onFirstUpdate:t=>{t.options.placement!==t.placement&&this._handlePopperPlacementChange(t)}};return{...e,..."function"==typeof this._config.popperConfig?this._config.popperConfig(e):this._config.popperConfig}}_addAttachmentClass(t){this.getTipElement().classList.add(`${this._getBasicClassPrefix()}-${this.updateAttachment(t)}`)}_getAttachment(t){return Ji[t.toUpperCase()]}_setListeners(){this._config.trigger.split(" ").forEach((t=>{if("click"===t)j.on(this._element,this.constructor.Event.CLICK,this._config.selector,(t=>this.toggle(t)));else if("manual"!==t){const e=t===hn?this.constructor.Event.MOUSEENTER:this.constructor.Event.FOCUSIN,i=t===hn?this.constructor.Event.MOUSELEAVE:this.constructor.Event.FOCUSOUT;j.on(this._element,e,this._config.selector,(t=>this._enter(t))),j.on(this._element,i,this._config.selector,(t=>this._leave(t)))}})),this._hideModalHandler=()=>{this._element&&this.hide()},j.on(this._element.closest(ln),cn,this._hideModalHandler),this._config.selector?this._config={...this._config,trigger:"manual",selector:""}:this._fixTitle()}_fixTitle(){const t=this._element.getAttribute("title"),e=typeof this._element.getAttribute("data-bs-original-title");(t||"string"!==e)&&(this._element.setAttribute("data-bs-original-title",t||""),!t||this._element.getAttribute("aria-label")||this._element.textContent||this._element.setAttribute("aria-label",t),this._element.setAttribute("title",""))}_enter(t,e){e=this._initializeOnDelegatedTarget(t,e),t&&(e._activeTrigger["focusin"===t.type?dn:hn]=!0),e.getTipElement().classList.contains(sn)||e._hoverState===on?e._hoverState=on:(clearTimeout(e._timeout),e._hoverState=on,e._config.delay&&e._config.delay.show?e._timeout=setTimeout((()=>{e._hoverState===on&&e.show()}),e._config.delay.show):e.show())}_leave(t,e){e=this._initializeOnDelegatedTarget(t,e),t&&(e._activeTrigger["focusout"===t.type?dn:hn]=e._element.contains(t.relatedTarget)),e._isWithActiveTrigger()||(clearTimeout(e._timeout),e._hoverState=rn,e._config.delay&&e._config.delay.hide?e._timeout=setTimeout((()=>{e._hoverState===rn&&e.hide()}),e._config.delay.hide):e.hide())}_isWithActiveTrigger(){for(const t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1}_getConfig(t){const e=U.getDataAttributes(this._element);return Object.keys(e).forEach((t=>{Gi.has(t)&&delete e[t]})),(t={...this.constructor.Default,...e,..."object"==typeof t&&t?t:{}}).container=!1===t.container?document.body:r(t.container),"number"==typeof t.delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),a(Qi,t,this.constructor.DefaultType),t.sanitize&&(t.template=Yi(t.template,t.allowList,t.sanitizeFn)),t}_getDelegateConfig(){const t={};for(const e in this._config)this.constructor.Default[e]!==this._config[e]&&(t[e]=this._config[e]);return t}_cleanTipClass(){const t=this.getTipElement(),e=new RegExp(`(^|\\s)${this._getBasicClassPrefix()}\\S+`,"g"),i=t.getAttribute("class").match(e);null!==i&&i.length>0&&i.map((t=>t.trim())).forEach((e=>t.classList.remove(e)))}_getBasicClassPrefix(){return"bs-tooltip"}_handlePopperPlacementChange(t){const{state:e}=t;e&&(this.tip=e.elements.popper,this._cleanTipClass(),this._addAttachmentClass(this._getAttachment(e.placement)))}_disposePopper(){this._popper&&(this._popper.destroy(),this._popper=null)}static jQueryInterface(t){return this.each((function(){const e=un.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}g(un);const fn={...un.Default,placement:"right",offset:[0,8],trigger:"click",content:"",template:'