Wiki-Quellcode von Public Beta Guide
Zuletzt geändert von teamwire001 am 2023/08/31 14:44
Zeige letzte Bearbeiter
| author | version | line-number | content |
|---|---|---|---|
| 1 | Vielen Dank für Ihre Teilnahmer am Test der Teamwire Desktop Public Beta. | ||
| 2 | |||
| 3 | In diesem Dokument finden Sie grundlegende Informationen zur neuen Desktop App und wie Sie gefundene Bugs an uns weiterleiten können. | ||
| 4 | |||
| 5 | |||
| 6 | {{id name="versions"/}} | ||
| 7 | |||
| 8 | = Versionierung = | ||
| 9 | |||
| 10 | * 4.0.0-beta.6 | ||
| 11 | [[win-x64.msi>>https://desktop.teamwire.eu/merge/4.0.0-beta.6/teamwire-4.0.0-beta.6-win-x64.msi]] , [[mac-x64.dmg>>https://desktop.teamwire.eu/merge/4.0.0-beta.6/teamwire-4.0.0-beta.6-mac-x64.dmg]] , [[linux-amd64.deb>>https://desktop.teamwire.eu/merge/4.0.0-beta.6/teamwire-4.0.0-beta.6-linux-amd64.deb]] , [[linux-x86_64.rpm>>https://desktop.teamwire.eu/merge/4.0.0-beta.6/teamwire-4.0.0-beta.6-linux-x86_64.rpm]] | ||
| 12 | |||
| 13 | * 4.0.0-beta.5 | ||
| 14 | * 4.0.0-beta.4 | ||
| 15 | * 4.0.0-beta.3 | ||
| 16 | * 4.0.0-beta.2 | ||
| 17 | ## ## | ||
| 18 | |||
| 19 | {{id name="requirements"/}} | ||
| 20 | |||
| 21 | = Systemanforderungen = | ||
| 22 | |||
| 23 | Unterstützte Betriebssysteme: | ||
| 24 | |||
| 25 | * Microsoft Windows 10 oder neuer | ||
| 26 | ## ## | ||
| 27 | |||
| 28 | {{id name="bugreport"/}} | ||
| 29 | |||
| 30 | = Bug melden = | ||
| 31 | |||
| 32 | Möchten Sie uns ein Problem melden? Kein Problem! | ||
| 33 | |||
| 34 | Treten bestimmte Verhaltensweisen oder Fehler immer wieder auf, teilen Sie Ihre Erfahrung mit uns! Die folgenden Informationen sind dabei äußerst hilfreich, zur Weiterentwicklung und Verbesserung der App: | ||
| 35 | |||
| 36 | * Lässt sich das Problem wiederholt nachstellen? Ja / Nein / Manchmal | ||
| 37 | * Gehen Sie zu View > Toggle Developer Tools und öffnen in der neuen Ansicht den Reiter "Console". Stellen Sie das Verhalten nach und exportieren Sie die Daten. | ||
| 38 | * Beschreiben Sie Schritt für Schritt, wie sich das Verhalten nachstellen lässt | ||
| 39 | * Ihre [[Logdatei>>doc:||anchor="logfile"]] wie unten beschrieben | ||
| 40 | * Einen Screenshot, falls notwendig | ||
| 41 | * Die Version Ihrer Teamwire Desktop Beta App | ||
| 42 | * Die Version Ihres Betriebssystems (z. B. Windows 10 Pro) | ||
| 43 | ## ## | ||
| 44 | |||
| 45 | Sollten Sie eine bestimmtes Feature vermissen, sehen Sie bitte zunächst in der [[aktuellen Liste der Funktionen>>doc:||anchor="appfeatures"]] nach, ob dieses bereits implementiert wurde. | ||
| 46 | |||
| 47 | |||
| 48 | {{id name="installdir"/}} | ||
| 49 | |||
| 50 | = Installationsverzeichnis = | ||
| 51 | |||
| 52 | Das Installationsverzeichnis ist derzeit nicht modifizierbar. Standardmäßig wird die App hier installiert: | ||
| 53 | |||
| 54 | * **Windows:** ##%LOCALAPPDATA%\Programs\teamwire-beta\## | ||
| 55 | * **macOS:** ##/Applications/Teamwire Beta.app## | ||
| 56 | * **Linux:** ##/bin/Teamwire Beta## | ||
| 57 | ## ## | ||
| 58 | |||
| 59 | {{id name="userdatadir"/}} | ||
| 60 | |||
| 61 | = Benutzerdatenverzeichnis = | ||
| 62 | |||
| 63 | Das Ablageverzeichnis Ihrer Benutzerdaten ist derzeit nicht modifzierbar. Standardmäßig werden ihre Daten hier gespeichert: | ||
| 64 | |||
| 65 | * **Windows:** ##%APPDATA%\teamwire-beta\## | ||
| 66 | * **macOS:** ##/Users/[username]/Library/Application Support/teamwire-beta## | ||
| 67 | * **Linux:** ##/home/[username]/.config/teamwire-beta## | ||
| 68 | ## ## | ||
| 69 | |||
| 70 | {{id name="logfile"/}} | ||
| 71 | |||
| 72 | = Logdatei = | ||
| 73 | |||
| 74 | Die Logdatei mit dem Dateinamen "logs" befindet sich in Ihrem Benutzerdatenverzeichnis. | ||
| 75 | |||
| 76 | * **Windows:** ##%APPDATA%\teamwire-beta\logs## | ||
| 77 | * **macOS:** ##/Users/[username]/Library/Application Support/teamwire-beta/logs## | ||
| 78 | * **Linux:** ##/home/[username]/.config/teamwire-beta/logs## | ||
| 79 | ## ## | ||
| 80 | |||
| 81 | {{id name="troubleshooting"/}} | ||
| 82 | |||
| 83 | = Fehler: "Sorry. Something went wrong" = | ||
| 84 | |||
| 85 | Die Fehlermeldung "Sorry. Something went wrong" ist eine generische Meldung, da noch nicht alle Sonderfälle spezifisch abgefangen werden. | ||
| 86 | |||
| 87 | Bei sporadischem Auftreten, können Sie diese Meldung mit dem **Reload** Button umgehen. | ||
| 88 | |||
| 89 | Sollte der **Reload **Button nicht funktionieren, können Sie eine der folgenden Optionen versuchen: | ||
| 90 | |||
| 91 | * Schließen Sie die App vollständig (ggf. über den Taskmanager) und starten Sie Teamwire Beta erneut. | ||
| 92 | * Löschen Sie alle Inhalte in Ihrem Benutzerdatenverzeichnis. | ||
| 93 | * Deinstallieren Sie die App vollständig und installieren diese erneut. | ||
| 94 | ## ## | ||
| 95 | |||
| 96 | {{id name="config"/}} | ||
| 97 | |||
| 98 | = Konfiguration / Registryeintrag = | ||
| 99 | |||
| 100 | Manche Einstellungen und Benutzerdaten können mit einer Konfigurationsdatei verteilt werden. | ||
| 101 | |||
| 102 | **Windows** | ||
| 103 | |||
| 104 | * Der Registryeintrag muss hier erfolgen: ##HKEY_CURRENT_USER\SOFTWARE\teamwire-beta\## | ||
| 105 | ## ## | ||
| 106 | |||
| 107 | **macOS und Linux** | ||
| 108 | |||
| 109 | * Die Konfigurationsdatei muss hier abgelegt werden: ##~~/.config/teamwire-beta/teamwire-beta.cfg## | ||
| 110 | * Zusätzlich wurde das JSON-Format wie folgt vereinfacht: {{code language="plain text"}}"configurationName": "propertyValue"{{/code}} | ||
| 111 | ## ## | ||
| 112 | |||
| 113 | (% class="lead" %) | ||
| 114 | Unterstützte Parameter | ||
| 115 | |||
| 116 | Desktop App **4.0.0-beta.2** (und neuer) unterstützt die folgenden Paramenter: | ||
| 117 | |||
| 118 | * ##serverHost## (String), zuvor BackendServerName | ||
| 119 | * ##proxyURL## (String) | ||
| 120 | ## ## | ||
| 121 | |||
| 122 | Desktop App **4.0.0-beta.3** (und neuer) unterstützt die automatische Registrierung und die folgenden Paramenter: | ||
| 123 | |||
| 124 | * ##serverHost## (String), zuvor BackendServerName | ||
| 125 | * ##proxyURL## (String) | ||
| 126 | * ##firstName## (String) | ||
| 127 | * ##lastName## (String) | ||
| 128 | * ##email## (String) | ||
| 129 | * ##registrationToken## (String) | ||
| 130 | * ##phoneNumber## (String) | ||
| 131 | * ##trustedCertificates## (Array) | ||
| 132 | Dieser neue Parameter wurde hinzugefügt, um Probleme bei der Verbindung zur Backend API über ein TLS-geschütztes HTTPS mit einem selbstsignierten Zertifikat zu lösen. "trustedCertificates" ist eine Whitelist für Zertifikate. Es handelt sich um ein Array von Base64-kodierten SHA256-Zertifikat-Fingerprints. | ||
| 133 | ## ## | ||
| 134 | |||
| 135 | Eine Vorlage der Windows Registrydatei und der JSON-Konfiguration können Sie hier herunterladen: [[configuration-templates.zip>>attach:Public.Applications.Desktop.Public-Beta-Guide.WebHome@configuration-templates-beta3.zip||download="configuration-templates-beta3.zip"]] | ||
| 136 | |||
| 137 | |||
| 138 | {{id name="appfeatures"/}} | ||
| 139 | |||
| 140 | = App Funktionen = | ||
| 141 | |||
| 142 | |||
| 143 | (% style="text-align:center; width:100%" %) | ||
| 144 | |=(% style="width: 25%;" %) |=(% style="text-align: center; width: 15%; background-color: rgb(155, 207, 239);" %)**Desktop App (4.0.0) Beta**|=(% style="text-align:center; width: 15%;" %)**Desktop App (3.4.2)** | ||
| 145 | |(% colspan="3" style="text-align:left" %)((( | ||
| 146 | == Anmeldung und Registrierung == | ||
| 147 | ))) | ||
| 148 | |(% style="text-align:left" %)Registrieren via E-Mail und SMS|(% style="background-color:#9bcfef" %) |{{velocity}}$services.icon.render('check'){{/velocity}} | ||
| 149 | |(% style="text-align:left" %)Anmelden via Passwort|(% style="background-color:#9bcfef" %){{velocity}}$services.icon.render('check'){{/velocity}}|{{velocity}}$services.icon.render('check'){{/velocity}} | ||
| 150 | |(% style="text-align:left" %)Automatische Registrierung|(% style="background-color:#9bcfef" %){{velocity}}$services.icon.render('check'){{/velocity}}|{{velocity}}$services.icon.render('check'){{/velocity}} | ||
| 151 | |(% style="text-align:left" %)Registrierung per Token einschränken|(% style="background-color:#9bcfef" %) |{{velocity}}$services.icon.render('check'){{/velocity}} | ||
| 152 | |(% style="text-align:left" %)Abmelden|(% style="background-color:#9bcfef" %){{velocity}}$services.icon.render('check'){{/velocity}}|{{velocity}}$services.icon.render('check'){{/velocity}} | ||
| 153 | |(% colspan="3" style="text-align:left" %)((( | ||
| 154 | == Nachrichteneingang == | ||
| 155 | ))) | ||
| 156 | |(% style="text-align:left" %)Nach Chat-Titel / Nachricht / Kontakt suchen|(% style="background-color:#9bcfef" %){{velocity}}$services.icon.render('check'){{/velocity}}|{{velocity}}$services.icon.render('check'){{/velocity}} | ||
| 157 | |(% style="text-align:left" %)Archivierte Chats zeigen / ausblenden|(% style="background-color:#9bcfef" %){{velocity}}$services.icon.render('check'){{/velocity}}|{{velocity}}$services.icon.render('check'){{/velocity}} | ||
| 158 | |(% style="text-align:left" %)Einstellen und Nutzen von Push-to-Talk|(% style="background-color:#9bcfef" %) | | ||
| 159 | |(% style="text-align:left" %)Reiter für favorisierte Chats|(% style="background-color:#9bcfef" %){{velocity}}$services.icon.render('check'){{/velocity}}| | ||
| 160 | |(% style="text-align:left" %)Reiter für ungelesene Chats|(% style="background-color:#9bcfef" %){{velocity}}$services.icon.render('check'){{/velocity}}| | ||
| 161 | |(% colspan="3" style="text-align:left" %)((( | ||
| 162 | == Chats == | ||
| 163 | ))) | ||
| 164 | |(% style="text-align:left" %)1:1 Chat / Gruppen-Chat / Broadcast-Chat|(% style="background-color:#9bcfef" %){{velocity}}$services.icon.render('check'){{/velocity}}|{{velocity}}$services.icon.render('check'){{/velocity}} | ||
| 165 | |(% style="text-align:left" %)Föderierter Chat|(% style="background-color:#9bcfef" %) |{{velocity}}$services.icon.render('check'){{/velocity}} | ||
| 166 | |(% style="text-align:left" %)Föderierte Chats: Unterstützung für Statusnachrichten und Standortfunktion|(% style="background-color:#9bcfef" %) |{{velocity}}$services.icon.render('check'){{/velocity}} | ||
| 167 | |(% style="text-align:left" %)Sprach- und Videoanrufe|(% style="background-color:#9bcfef" %){{velocity}}$services.icon.render('check'){{/velocity}}|{{velocity}}$services.icon.render('check'){{/velocity}} | ||
| 168 | |(% style="text-align:left" %)Sprach- und Videoanrufe: Bildschirm freigeben / Hand heben / An laufenden Gesprächen teilnehmen / Hintergrund ändern|(% style="background-color:#9bcfef" %){{velocity}}$services.icon.render('check'){{/velocity}}|{{velocity}}$services.icon.render('check'){{/velocity}} | ||
| 169 | |(% style="text-align:left" %)Notfall-Alarm|(% style="background-color:#9bcfef" %) | | ||
| 170 | |(% style="text-align:left" %)Status-Nachrichten|(% style="background-color:#9bcfef" %){{velocity}}$services.icon.render('check'){{/velocity}}|{{velocity}}$services.icon.render('check'){{/velocity}} | ||
| 171 | |(% style="text-align:left" %)Nach Nachrichten suchen|(% style="background-color:#9bcfef" %){{velocity}}$services.icon.render('check'){{/velocity}}|{{velocity}}$services.icon.render('check'){{/velocity}} | ||
| 172 | |(% style="text-align:left" %)Nachricht löschen|(% style="background-color:#9bcfef" %){{velocity}}$services.icon.render('check'){{/velocity}}|{{velocity}}$services.icon.render('check'){{/velocity}} | ||
| 173 | |(% style="text-align:left" %)Anhang: Bild / Video / Datei / Sprachnachricht / Interaktiv (Umfrage)|(% style="background-color:#9bcfef" %){{velocity}}$services.icon.render('check'){{/velocity}}|{{velocity}}$services.icon.render('check'){{/velocity}} | ||
| 174 | |(% style="text-align:left" %)Anhang: Standort / Live Standort|(% style="background-color:#9bcfef" %) | | ||
| 175 | |(% style="text-align:left" %)Ansicht eines Live-Standorts: Anzeige des Benutzernames in der Kartenansicht|(% style="background-color:#9bcfef" %){{velocity}}$services.icon.render('check'){{/velocity}}|{{velocity}}$services.icon.render('check'){{/velocity}} | ||
| 176 | |(% style="text-align:left" %)Ansicht eines Live-Standorts: Anzeige der Benutzerrolle in der Kartenansicht|(% style="background-color:#9bcfef" %) |{{velocity}}$services.icon.render('check'){{/velocity}} | ||
| 177 | |(% style="text-align:left" %)Ansicht eines Live-Standorts: Fokussieren eines Benutzers in der Kartenansicht|(% style="background-color:#9bcfef" %){{velocity}}$services.icon.render('check'){{/velocity}}|{{velocity}}$services.icon.render('check'){{/velocity}} | ||
| 178 | |(% style="text-align:left" %)Anhang: Kalender|(% style="background-color:#9bcfef" %){{velocity}}$services.icon.render('check'){{/velocity}} | ||
| 179 | wird als Datei versendet|{{velocity}}$services.icon.render('check'){{/velocity}} | ||
| 180 | wird als Datei versendet | ||
| 181 | |(% style="text-align:left" %)Anhang: Teilen über Dracoon|(% style="background-color:#9bcfef" %) | | ||
| 182 | |(% style="text-align:left" %)Bild vor dem Versenden bearbeiten (inkl. autom. Verwischen)|(% style="background-color:#9bcfef" %) | | ||
| 183 | |(% style="text-align:left" %)Anhang herunterladen und speichern|(% style="background-color:#9bcfef" %){{velocity}}$services.icon.render('check'){{/velocity}}|{{velocity}}$services.icon.render('check'){{/velocity}} | ||
| 184 | |(% style="text-align:left" %)Speichern von Anhängen einschränken|(% style="background-color:#9bcfef" %) |{{velocity}}$services.icon.render('check'){{/velocity}} | ||
| 185 | |(% style="text-align:left" %)Auf Nachricht oder Anhang antworten|(% style="background-color:#9bcfef" %){{velocity}}$services.icon.render('check'){{/velocity}}|{{velocity}}$services.icon.render('check'){{/velocity}} | ||
| 186 | |(% style="text-align:left" %)Nachricht oder Anhang an neuen oder bestehenden Chat weiterleiten|(% style="background-color:#9bcfef" %){{velocity}}$services.icon.render('check'){{/velocity}}|{{velocity}}$services.icon.render('check'){{/velocity}} | ||
| 187 | |(% style="text-align:left" %)Chat verlassen / schließen / stummschalten / archivieren|(% style="background-color:#9bcfef" %){{velocity}}$services.icon.render('check'){{/velocity}}|{{velocity}}$services.icon.render('check'){{/velocity}} | ||
| 188 | |(% style="text-align:left" %)Chat favorisieren / als gelesen bzw. ungelesen markieren|(% style="background-color:#9bcfef" %){{velocity}}$services.icon.render('check'){{/velocity}}| | ||
| 189 | |(% style="text-align:left" %)Chat Admins und Mitglieder anzeigen|(% style="background-color:#9bcfef" %){{velocity}}$services.icon.render('check'){{/velocity}}|{{velocity}}$services.icon.render('check'){{/velocity}} | ||
| 190 | |(% style="text-align:left" %)Chat Avatar / Titel / Modus / Mitglieder bearbeiten|(% style="background-color:#9bcfef" %){{velocity}}$services.icon.render('check'){{/velocity}} | ||
| 191 | Chat-Avatar bearbeiten folgt|{{velocity}}$services.icon.render('check'){{/velocity}} | ||
| 192 | |(% style="text-align:left" %)Mitglied zum Chat Admin ernennen|(% style="background-color:#9bcfef" %){{velocity}}$services.icon.render('check'){{/velocity}}|{{velocity}}$services.icon.render('check'){{/velocity}} | ||
| 193 | |(% style="text-align:left" %)Medienübersicht|(% style="background-color:#9bcfef" %) |{{velocity}}$services.icon.render('check'){{/velocity}} | ||
| 194 | |(% style="text-align:left" %)Chat via E-Mail senden|(% style="background-color:#9bcfef" %) | | ||
| 195 | |(% style="text-align:left" %)Chat als PDF drucken|(% style="background-color:#9bcfef" %) |{{velocity}}$services.icon.render('check'){{/velocity}} | ||
| 196 | |(% style="text-align:left" %)Systemnachrichten mit Zeitstempel|(% style="background-color:#9bcfef" %){{velocity}}$services.icon.render('check'){{/velocity}}|{{velocity}}$services.icon.render('check'){{/velocity}} | ||
| 197 | |(% colspan="3" style="text-align:left" %)((( | ||
| 198 | == Verzeichnis == | ||
| 199 | ))) | ||
| 200 | |(% style="text-align:left" %)Kontakte / Listen / Kreise / Bots anzeigen|(% style="background-color:#9bcfef" %){{velocity}}$services.icon.render('check'){{/velocity}} | ||
| 201 | Kontaktdetails folgen|{{velocity}}$services.icon.render('check'){{/velocity}} | ||
| 202 | |(% style="text-align:left" %)Föderierte Kontakte / Kreise anzeigen|(% style="background-color:#9bcfef" %) |{{velocity}}$services.icon.render('check'){{/velocity}} | ||
| 203 | |(% style="text-align:left" %)Listen erstellen / verwalten / löschen|(% style="background-color:#9bcfef" %) |{{velocity}}$services.icon.render('check'){{/velocity}} | ||
| 204 | |(% style="text-align:left" %)Nach Benutzern anderer Organisationen suchen|(% style="background-color:#9bcfef" %) |{{velocity}}$services.icon.render('check'){{/velocity}} | ||
| 205 | |(% style="text-align:left" %)Über Profil eines Benutzers einen Chat erstellen|(% style="background-color:#9bcfef" %){{velocity}}$services.icon.render('check'){{/velocity}}|{{velocity}}$services.icon.render('check'){{/velocity}} | ||
| 206 | |(% style="text-align:left" %)Über Profil eines Benutzers einen Telefonanruf (extern) starten|(% style="background-color:#9bcfef" %) | | ||
| 207 | |(% style="text-align:left" %)Über Profil eines Benutzers Teamwire Sprach- und Videoanrufe starten|(% style="background-color:#9bcfef" %){{velocity}}$services.icon.render('check'){{/velocity}}|{{velocity}}$services.icon.render('check'){{/velocity}} | ||
| 208 | |(% style="text-align:left" %)Über Profil eines Benutzers eine E-Mail (extern) schreiben|(% style="background-color:#9bcfef" %){{velocity}}$services.icon.render('check'){{/velocity}}|{{velocity}}$services.icon.render('check'){{/velocity}} | ||
| 209 | |(% colspan="3" style="text-align:left" %)((( | ||
| 210 | == Profil und Einstellungen == | ||
| 211 | ))) | ||
| 212 | |(% style="text-align:left" %)Profildaten und -bild bearbeiten|(% style="background-color:#9bcfef" %) |{{velocity}}$services.icon.render('check'){{/velocity}} | ||
| 213 | |(% style="text-align:left" %)Kontaktdetails bearbeiten (E-Mail und Telefonnummer)|(% style="background-color:#9bcfef" %) |{{velocity}}$services.icon.render('check'){{/velocity}} | ||
| 214 | |(% style="text-align:left" %)Passwort ändern|(% style="background-color:#9bcfef" %) |{{velocity}}$services.icon.render('check'){{/velocity}} | ||
| 215 | |(% style="text-align:left" %)Sitzungen verwalten|(% style="background-color:#9bcfef" %) |{{velocity}}$services.icon.render('check'){{/velocity}} | ||
| 216 | |(% style="text-align:left" %)Medien automatisch herunterladen|(% style="background-color:#9bcfef" %) |{{velocity}}$services.icon.render('check'){{/velocity}} | ||
| 217 | |(% style="text-align:left" %)Lesebestätigungen verwalten|(% style="background-color:#9bcfef" %) |{{velocity}}$services.icon.render('check'){{/velocity}} | ||
| 218 | |(% style="text-align:left" %)Benachrichtigungen verwalten (Ton, Lautstärke, Pop-up)|(% style="background-color:#9bcfef" %) |{{velocity}}$services.icon.render('check'){{/velocity}} | ||
| 219 | |(% style="text-align:left" %)Textvorschau für Benachrichtigungen bei anderen verwalten|(% style="background-color:#9bcfef" %) |{{velocity}}$services.icon.render('check'){{/velocity}} | ||
| 220 | |(% style="text-align:left" %)"Nachricht mit Enter senden" konfigurieren|(% style="background-color:#9bcfef" %) |{{velocity}}$services.icon.render('check'){{/velocity}} | ||
| 221 | |(% style="text-align:left" %)Proxy Einstellungen konfigurieren|(% style="background-color:#9bcfef" %){{velocity}}$services.icon.render('check'){{/velocity}} | ||
| 222 | nur während des Logins|{{velocity}}$services.icon.render('check'){{/velocity}} | ||
| 223 | |(% style="text-align:left" %)Eigenes Zertifikat konfigurieren|(% style="background-color:#9bcfef" %) |{{velocity}}$services.icon.render('check'){{/velocity}} | ||
| 224 | |(% style="text-align:left" %)Passcode konfigurieren|(% style="background-color:#9bcfef" %) | | ||
| 225 | |(% style="text-align:left" %)Automatisches Schließen der Sitzung nach dreimaliger Falscheingabe des Passcodes|(% style="background-color:#9bcfef" %){{velocity}}$services.icon.render('check'){{/velocity}}| | ||
| 226 | |(% style="text-align:left" %)Option zur Verbindungsdiagnose|(% style="background-color:#9bcfef" %) | | ||
| 227 | |(% style="text-align:left" %)In-App-Option zum Löschen des Kontos (nur Public Cloud)|(% style="background-color:#9bcfef" %) | | ||
| 228 | |||
| 229 | ## ## |