Archive:Http://userbase.kde.org/Akonadi 4.4/Troubleshooting/da
Introduktion
Denne side handler hovedsagligt om at løse problemer med Akonadi, da der uundgåligt vil forekomme problemer i de tidlige faser af overgangen til dette nye system. Mange vil støde på Akonadi for første gang i KDE SC 4.4, og mange vil blive forvirrede over det. Se dette afsnit i ordforklaringen for en kort beskrivelse af Akonadis formål. Her finder du også nyttige links til videre læsning. Når de uundgåelige børnesygdomme er overstået, så vil Akonadi være et kraftcenter, som kan bruges af mange programmer.
Forstå strukturen
Du kan selvfølgelig blot bruge Kontact til at håndtere alle dine adressebøger, men hvis du for eksempel har er backupsystem i brug, så vil du have brug for at vide, hvor dine data er og hvordan de håndteres. Siden Akonadi og adressebøger hjælper med det.
Tips til fejlrapportering
- Når du rapporterer om problemer med Akonadi-serveren, så bør du altid inkludere en dækkende selvtest-rapport. Denne rapport kan dannes fra selvtest-dialogen, som altid viser sig når Akonadi-serveren ikke kan startes med succes. Du kan finde selvtest-dialogen i det kcmmodul, som er tilgængeligt via
kcmshell4 kcm_akonadi
- Det kan give yderligere brugbar information, hvis du starter Akonadi-serveren manuelt fra kommandolinjen. Dette kan gøres ved at køre følgende kommando i en konsol:
akonadictl start
På tilsvarende vis kan Akonadi-serveren stoppes ved at køre denne kommando:
akonadictl stop
Denne kommando giver mere brugbar information:
akonadictl status
Almindelige problemer
Kontact starter ikke - og den fortæller mig intet
Hvis Kontact ikke starter og du ikke ser nogen fejlmeddelse, så kontroller, om Akonadi kører. Akonadi skulle starte, når den behøves. Hvis det ikke sker automatisk, så skal du starte den før Kontact kan starte, hvis du har overført nogle ressourcer (mest sandsynligt KAddressBook). Brug Akonadis ikon i statusområdet (som du får frem ved at skrive akonadi i KRunner) til at starte den med eller skriv kommandoerne direkte i Konsole for at starte den.
Kontact starter ikke - version II
Der har været tilfælde, hvor Kontact er blevet ramt efter en updatering. Hvis det sker, så prøv at starte KMail. KOrganizer eller en af de andre programmer ved hjælp af KRunner (eller Konsole). Der er en god chance for, at de kan fungere mens du finder ud af, hvad der gik galt. Dette påvirker især version 4.4.0.
Folder not found: "/Local"
Nogle har rapporteret denne fejlmeddelse, når Kontact ikke ville starte. I nogle tidlige versioner af 4.4 synes der at være en fejl i overførslen, som instruerer KMail til at søge efter lokal mail i ~/.local/share/Local, men denne mappe er ikke blevet sat op. Løsningen på dette er ikke at forsøge korrigere det; luk i stedet KMail/Kontact hvis de kører, åbn Akonaki-konsollen
- Brug KRunner, Alt-F2, eller
- "akonadikonsole" konsole
Fjern så ressourcen, som den siger er til lokal mail. Du skulle nu opleve, at du kan starte Kontact og KMail, og at en ny ressource vil blive skabt, som peget på ~/.local/share/local-mail
Ja. Hvis din adressebog er korrekt overført, så er der blevet dannet en ny ressource kaldet ~/.local/share/contacts/
Hvad er /usr/bin/akonadi_maildir_resource og /usr/bin/akonadi_maildispatcher_agent?
akonadi_maildir_resource dannes automatisk af akonadi_maildispatcher_agent, som altid startes sammen med Akonadi-serveren, da den stiller grundlæggende funktioner til rådighed (som fx at sende mail), som bruges af alle de mailprogrammer, som er baseret på Akonadi. Det er derfor i orden, at disse to kører; som bruger kan du simpelthen ignorere dem. Denne automatisk dannede akonadi_maildir_resource vil altid pege på ~/.local/share/local-mail/ som er din Local folders-konto, hvor dine lokale mapper og emails vil blive gemt.
Indtil videre (KDE SC 4.4) bliver mail endnu ikke overført.
Nepomuk Indexing Agents er slået fra
Kontact virker nu, men du ser følgende dialog:
Den mest almindelige årsag til denne meddelelse er, at Nepomuk er slået fra i Systemindstillinger. Prøv at aktivere den i
og så klikke Anvend.Hvis det ikke hjælper (eller hvis den allerede var aktiveret, da du fik fejlmeddelelsen) og hvis du tidligere har brugt en betaversion af KDE SC 4.4, så kan du være påvirket af en ændring i databasens layout (på grund af en opgradering af databaseserveren Virtuoso fra version 5 til version 6; den endelige udgave af KDE SC 4.4 forventes at udgives med Virtuoso version 6). Følgende kommando skulle få det til at virke igen.
qdbus org.kde.NepomukServer /nepomukserver org.kde.NepomukServer.quit rm -r ~/.kde/share/apps/nepomuk rm -r ~/.kde4/share/apps/nepomuk nepomukserver
Bemærk, at ovenstående kommandoer ikke vil aktivere Nepomuk permanent, hvis den ikke allerede er aktiveret; du skal bruge Systemindstillinger til permanent aktivering.
Det er nødvendigt, at Nepomuk kører for at Akonadi og Kontact kan fungere. Dog er filindexeren Strigi ikke nødvendig for Kontact, så den kan du slå fra. Strigi bruges kun til skrivebordssøgning. Du skal blot sikre dig, at Nepomuk selv kører korrekt for at kunne bruge Kontact.
I Kontact bruges Nepomuk til mange ting fra visning af forestående fødselsdage til visning af fotos i meddelelsesfremviseren. Hvis Nepomuk ikke kører, så er der flere ting i Kontact, som vil ophøre med at fungere. Dialogen vises for at advare dig om den reducerede funktionalitet. Aktivering af Nepomuk som vist ovenfor løser problemet.
Du kan kontrollere, om Nepomuk kører korrekt ved at skrive
akonadictl status
Jeg ønsker at bruge min nuværende adressebog og Organizer - kan jeg det?
Ja. Når du bruger Akonadi-konsollen til at tilføje ressourcer, lader den dig vælge Standard adressebog - det burde virke, at du lader den pege på std.vcf. Overførsel sletter ikke din gamle adressebog. Du kan fortsætte med at bruge den, men så mister du mange af fordelene, som Akonadi kan give dig. Det er også muligt både at bruge en Akonadi-adressebog og din oprindelige adressebog samtidigt, hvis du føler dig mere sikke på den måde.
Jeg kan ikke se nogle detaljer i min adressebog
I øjeblikket kender vi ikke årsagen til dette problem, men det er let løst. Luk Kontact og start KAddressBook som et selvstændigt program. Efter at lukke den igen vil du være i stand til at bruge den i Kontact. Det virker som om, at noget ikke bliver udløst når Kontact bliver startet, og jeg regner med, at dette bliver identificeret og rettet snart. Dette synes hovedsaligt at påvirke version 4.4.0.
Mine kontakter vises ikke, når jeg bruger knappen Vælg i KMail
Kontroller her.
for at sikre dig, at din Akonadi-kontrollerede adressebog (eller -bøger) er med i listen; hvis ikke, så må du tilføje dem. Det er også en god ide at sikre dig, at din primære Akonadi-adressebog, som i reglen kaldes Personal Contacts, er sat til at være standard. Flere detaljer om dette kan findesHvordan får jeg min Groupware-adressebog tilbage?
Der er to løsninger: du kan bruge det gamle system eller det nye.
Det gamle system: Tilføj en "KDE Address Book (traditional)" i akonadiconsole; på den måde kan du sætte gamle kresource'r op for Akonadi. I konfigurationen af "KDE Address Book (traditional)" lader du den pege på en "IMAP over KMail"-KResource, og i KMAil skal groupware-tilvalget aktiveres. Dette skulle virke for Kolab, eGroupware og lignende adressebøger - du bør kontrollere tilvalgene for at sikre dig, at den rigtige type er valgt.
Det nye system (kun testet med Kolab): I Akonadis konfigurationsmodul skal du tilføje en ressource for en "IMAP E-Mail Server" og indsætte din mailservers navn og dit brugernavn og adgangskode og derefter klikke på Autodetektér. Kør denne kommando for at se den:
kcmshell4 kcm_akonadi
Tilføj så en Kolab-ressource. Vent så på at IMAP-ressourcen synkroniserer - det kan tage ret lang tid. Status vises i Akonadis konfigurationsmodul. Hvis der ikke sker noget, så prøv at genstarte akonadiserver. Efter nogen tid skulle Kolab-adressebogen blive vist i KAddressBook.
Du oplaver lange ventetider, når du sender mail
Dette får også KMAil til at fryse, indtil mailen faktisk er sendt.
Der er fundet en fejl i den måde Nepomuk checker adresser, og den kan forårsage store forsinkelser. Dette er blevet rettet i KDE SC 4.4.1. Hvis du ikke kan får 4.4.1 endnu, så kan du omgå problemet således:
Luk Kontact eller KMail og KAddressbook hvis du kører dem for sig selv. Slå Strigi fra i Systemindstillinger. Stop Nepomuk, slet databasen og genstart nepomukserver. Du skal bruge følgende kommandoer (som almindelig bruger):
qdbus org.kde.NepomukServer /nepomukserver org.kde.NepomukServer.quit rm -r ~/.kde/share/apps/nepomuk rm -r ~/.kde4/share/apps/nepomuk nepomukserver
Dette vil selvfølgelig slette hele databasen med alt, hvad du har føjet til den. Det skulle være muligt kun at slette dele af databasen. Hvis det er vigtigt for dig, så kan du finde instruktioner på dette websted.
IMAP Resource hævder altid at være offline
Selv om systemet her en internetforbindelse vil IMAP-ressources ikke skifte til onlinetilstanden.
Denne fejl skyldes en forkert installation af NetworkManager på dit system. Check outputtet fra følgende kommando:
qdbus --system org.freedesktop.NetworkManager /org/freedesktop/NetworkManager org.freedesktop.NetworkManager.state
Du kan få enhver af følgende værdier:
- 20 (tidligere 4), afbrudt. Hvis du har adgang til internettet, så må din NetworkManager være konfigureret forkert.
- 70 (tidligere 3), forbundet. Problemet må ligge et andet sted.
- Det kan være, at et eller flere netværkgrænseflader ikke kontroleres af NetworkManager. Hvis det er tilfældet, så giv NetworkManager kontrol over grænsefladerne. Det kan være så enkelt som at fjerne indgangene for disse grænseflader fra en tekstfil (for eksempel /etc/network/interfaces). Søg mere information i de hjælperessourcer, som din distribution stiller til din rådighed.
Kan ikke læse nogle detaljer i nogen meddelelser eller der er for store forsinkelser ved læsningen
Hvis du ikke kan læse nogle e-mails og ser en besked med "vent venligst ... ", så kan det måske hjælpe at logge ud af KDE-sessionen og ind igen for at geninitialisere alle processer.
Nogle tekniske forhold
Nepomuk
Fra og med KDE SC 4.4 er det nødvendigt, at Nepomuk kører for at Akonadi kan fungere korrekt. Akonadi vil kontrollere, om dette er tilfældet og vise en fejlmeddelse ved opstarten hvis ikke.
Nepomuk virker kun med Virtuoso-bagenden. Du kan finde ud af, om Nepomuk kører med den rigtige bagende ved hjælp af Akonadis selvtest-dialog som beskrevet ovenfor.
Selvom Nepomuk skal køre, så kan du altid slå Strigi fra; det er den mest ressourcekrævende del af Nepomuk-systemet.
Apparmor
Nogle af de distributioner, som bruger Apparmor har indstillet den på en måde, som forhindrer Akonadi i at køre sin interne databaseserver. Dette kan give anledning til en lang række uklare fejlmeddelser, heriblandt de følgende:
unknown error 255 when running akonadictl "DB error: 'Could not open required defaults file: /home/$username/.local/share/akonadi/mysql.conf"
Du kan løse dette ved at køre følgende kommando med root-privilegier og så genindlæse apparmor.
aa-complain mysqld
På Kubuntu skrives i stedet:
sudo aa-complain mysqld sudo /etc/init.d/apparmor reload
Bemærk, at du muligvis bruger Apparmor, selv om den ikke viser sig i proceslisten.
Bemærk også, at der med nogle distributioner følger en ekstra kørbar mysqld-fil kaldet mysqld-akonadi, som har AppArmor sat korrekt op. Hvis det er tilfældet på dit system, med du alligevel ser dette problem, så er der to mulige årsager:
- Akonadi bruger stadig mysqld istedet for mysqld-akonadi. Du kan ændre det i .
- AppArmor er heller ikke opsat korrekt til mysqld-akonadi. Prøv at køre kommandoen "aa-complain"
som ovenfor, men med mysqld-akonadi istedet for mysqld.
---
Du vil også opleve dette problem, hvis du kører en krypteret hjemmemappe ved brug af encryptfs kombineret med AppArmor, da Akonadis apparmor-profil i øjeblikket ikke tager højde for en krypteret hjemmemappe (som er almindelig blandt brugere af Ubuntu Jaunty). Blandt fejlmeddelelserne er:
- dmesg giver:
ecryptfs_do_create: Failure to create dentry in lower fs; rc = [-13] ecryptfs_create: Failed to create file inlower filesystem
- Akonadi vil oplister følgende fejl:
Akonadi server process not registered at D-Bus
Løs dette ved at rette filen "/etc/apparmor.d/usr.sbin.mysqld-akonadi". Under linjen:
@{HOME}/.local/share/akonadi/** rwk,
tilføjes en ny linje:
@{HOME}/.Private/** rwk,
Genstart apparmor og akonadi.
Manglende forudsætninger
For at bruge Akonadi skal du have følgende pakker installeret (navne kan afvige afhængigt af din distribution):
- MySQL-serveren (kaldet mysql i OpenSuse)
- Qt4's MySQL-plugin (kaldet libqt4-sql-mysql i OpenSuse)
Hvis du kompilerer Qt4 selv, så husk at bede configure-skriptet om at indbygge MySQL-understøttelse ved at give tilvalget
-plugin-sql-mysql
Hvis configure ikke kan inde den nødvendige MySQL-klientkode (dvs. hvis det siger "MySQL support cannot be enabled due to functionality tests"), så sørg for at installere de tilsvarende pakker (typisk hedder de [lib]mysql[client]-dev[el]). Afhængigt af, hvor MySQL-headerne er installeret kan der være brug for yderligere parametre til configure (fx -I /usr/include/mysql i OpenSuse).
Hvis du får Qt4 direkte fra Nokia, for eksempel som et download af
qt-sdk-linux-x86_64-opensource-2009.05.bin
, så giver kommandoen "akonadictl start" følgende fejl i Test 1:
Database driver not found. Details: The QtSQL driver 'QMYSQL' is required by your current Akonadi server configuration. The following drivers are installed: QSQLITE. Make sure the required driver is installed.
Den driver du behøver er libqsqlmysql.so
Desværre er denne driver ikke en del af distributionen (før januar 2010). Du må kompilere kildekoden. Download følgende fil:
qt-everywhere-opensource-src-4.6.0.tar.bz
configure og make som ovenfor; men make install kopierer ikke driveren, så det må du gøre selv:
cp <qt-src-dir>/qt-everywhere-opensource-src-4.6.0/plugins/sqldrivers/libqsqlmysql.so /usr/local/bin/sqldrivers/
Men Revision 4.6.1, så som qt-sdk-linux-x86_64-opensource-2010.xx.bin har driveren, som du behøver. Det kan dog være nødvendigt at binde den til libqsqlmysql.so, hvis libmysqlclient.so er blevet ændret til en nyere version.
Opsætning af miljøvariable
Akonadi-serveren leder efter agenter og ressourcer i stierne defineret i miljøvariablen XDG_DATA_DIRS. Hvis Akonadi klager over, at den ikke kan finde agenter eller ressourcer, så check om denne variabel er sat korrekt. Husk også, at selv om den er sat i den aktuelle konsolsession, så behøver den ikke at have været sat, da serveren blev startet. Du kan undgå dette problem ved at starte server i den aktuelle konsol.
mysqld: unknown variable 'innodb_file_per_table=1'
Hvis MySQL-serverens logfil indeholder følgende fejl, så er din MySQL-server blevet bygget uden understøttelse af InnoDB, hvilket Akonadi behøver, eller også skal InnoDB indlæses i din fil mysql.conf:
[ERROR] /usr/libexec/mysqld: unknown variable 'innodb_file_per_table=1' [ERROR] Aborting
Prøv at tilføje:
#sql_mode=strict_trans_tables <- Add underneath this line #plugins plugin_dir=usr/lib/mysql/plugin < - This may be a different path plugin-load=ha_innodb.so
Table 'mysql. servers' doesn't exist
Hvis MySQL's server-log indeholder følgende fejl, så er din konfigurationsfil til MySQL sandsynligvis ikke på plads.:
[ERROR] Can't open and lock privilege tables: Table 'mysql.servers' doesn't exist [ERROR] Cannot open mysql.db [ERROR] Cannot open mysql.user [ERROR] Cannot open mysql.event
Kopier den fra /usr/share/config/akonadi/mysql-global.conf til ~/.config/akonadi/mysql-local.conf. (For brugere af debian og openSuSE findes filen i /etc/akonadi/mysql-global.conf). Åbn herefter filen og fjern kommentar-tegnet fra linjen sql_mode=strict_trans_tables. Herefter får du måske følgende fejl:
[ERROR] Plugin 'InnoDB' init function returned error. [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed. [ERROR] Unknown/unsupported table type: innodb [ERROR] Aborting
Hvis du gør det, så find i den samme fil linjen, som starter lige som den ovenstående (som du afkommenterede), men som har yderligere parametre adskilt af kommaer (noget i retning af sql_mode=strict_trans_tables,strict_all_tables, ...etc). Sæt kommentartegn foran den korte sql_mode=...-linje og fjern det fra den lange.
I openSUSE 11.2 kan du løse problemet ved at køre kommandoen:
mysql_install_db --datadir=$HOME/.local/share/akonadi/db_data/
For Archlinux:
mysql_install_db --datadir=$HOME/.local/share/akonadi/db_data/ --basedir=/usr
Kubuntu 10.04 (Lucid Lynx) opgradering
Dette er en opsummering af andre emner her for de der har opgraderet fra Kububtu 9.10 til 10.04 og som har brugt et personligt pakkearkiv (PPA) til fejlretninger af KDE 4.3.
Installer manglende forudsætninger. Fjern tidligere akonadi cache. Start akonadi-tjenesten. Installer databasen. Opgradér databasen. Stop og genstart akonadi-tjenesten.
sudo apt-get install virtuoso-server mysql-server-5.1 rm -r $HOME/.local/share/akonadi akonadictl start mysql_install_db --datadir=$HOME/.local/share/akonadi/db_data/ mysql_upgrade --socket=$HOME/.local/share/akonadi/db_misc/mysql.socket akonadictl stop akonadictl start
Kommandoen mysql_install_db vil rapportere noget i retning af det følgende, som du roligt kan ignorere:
Installing MySQL system tables... 100501 18:04:30 [Warning] Can't create test file /home/[userid]/.local/share/akonadi/db_data/[hostname].lower-test
Reference: forum.kde.org Akonadi 1.2.1 - nogle problemer
Opgradering af KAddressBook
Ud over ovennævnte løsninger til Kubuntu 10.4, så kan det være nødvendigt at skrive følgende kommando i en konsol på et tidspunkt, hvor Akonadi ikke kører for at løse problemer, som kan opstå når du prøver at tilføje en Vcard-mappe.
rm -rf $HOME/.config/akonadi
Kan ikke initialisere tegnsættet latin1
Hvis du får følgende fejlmeddelelse, når Akonadi starter, så bruger du formentlig en MySQL-server version > 5.1.42:
Character set 'latin1' is not a compiled character set and is not specified in the '/usr/share/mysql/charsets/Index.xml' file Nepomuk QueryServer interface not available! Connecting to deprecated signal QDBusConnectionInterface::serviceOwnerChanged(QString,QString,QString) DataStore::unhideAllPimItems() Character set 'latin1' is not a compiled character set and is not specified in the '/usr/share/mysql/charsets/Index.xml' file Database error: Cannot open database. Last driver error: "QMYSQL: Unable to connect" Last database error: "Can't initialize character set latin1 (path: /usr/share/mysql/charsets/)" Database error: Cannot open database. Last driver error: "QMYSQL: Unable to connect" Last database error: "Can't initialize character set latin1 (path: /usr/share/mysql/charsets/)"
Der en en kendt fejl i MySQL 5.1.43 og 5.1.44, som forhindrer MySQL i at starte.
Se fejlrapporten for flere detaljer.
Genstart efter en tidligere fejl
Hvis du havde problemer med at starte Akonadi (fx en manglende pakke eller Apparmor-problemet) og løste dem, så husk at lukke Akonadi-serveren helt ned ved at køre
akonadictl stop
Du kan sikre dig, at det faktisk blev lukket helt ned ved at køre:
akonadictl status
Under nogle omstændigheder kan Akonadi-serveren hænge fast i en delvist kørende tilstand efter en fejl, hvilket vil forhindre det næste forsøg på at starte serveren igen. Vær venlig at indsende en fejlrapport inklusive selvtest-rapporten af det oprindelige problem, hvis du løber ind i dette problem.
Det såkaldte "Gentoo-Assert"
Dette er et specielt grimt problem, som indtil nu kun påvirker brugere af kildebaserede distributioner, først og fremmest Gentoo. Det har navn efter MySQL-assertioner som det følgende eksempel og forårsages sandsynligvis af en uoverensstemmelse i MySQL-protokollen mellem MySQL-serveren og klientbiblioteket eller Qt's MySQL-driver.
akonadiserver: libmysql.c:4301: setup_one_fetch_function: Assertion `param->buffer_length != 0' failed.
Dette er utroligt vanskeligt at diagnosticere, da den ovennævnte assertion kun udløses en gang imellem. Istedet vil du opleve en bred vifte af besynderlige symptomer:
- ASAP protokol-logs viser succesfuld dannelse af objekter, som angiveligt ikke er tilgængelige mere når den næste kommendo prøver at tilgå dem.
- SQL protokol-logs viser INSERT- eller UPDATE-kommandoer med værdier, som ikke passer med tilsvarende søjletyper men alligevel lykkes.
- SQL protokol-logs, som viser store, tilsyneladende tilfældige "record ids", som ikke desto mindre betragtes som gyldige.
Referencer:
- http://forum.kde.org/viewtopic.php?f=20&t=61738
- http://bugs.gentoo.org/show_bug.cgi?id=267513
- https://bugs.kde.org/202623 (indeholder en mulig løsning)
- http://bbs.archlinux.org/viewtopic.php?id=78358
Mulig løsning: Opgrader MySQL og byg derefter Qt's MySQL-driver igen (som sandsynligvis forårsagede problemet til at begynde med).
At nulstille Nepomuk og akonadi-systemet i KMail 2
Vær opmærksom på, at du ikke bør følge disse råd uden først at lave en backup af dine data.
Efter introduktionen af KMail 2 i kdepim i KDE 4.6.x skal man for at kunne søge i e-mail og få adressebøger aktivere
og .Hvis virtuoso-t bruger næsten 100% af CPU-kerner og systemet næsten er fastfrosset, så kan det være en god ide at nulstille alting.
For at foretage den store nulstilling skal du:
akonadictl stop rm -rf ~/.local/share/akonadi/db_data/* akonadictl start # vi bør også rydde KDE's midlertidige mapper før start af KMail rm -rf /var/tmp/kdecache-$USER /tmp/ksocket-$USER /tmp/kde-$USER
Du skal tjekke
for at se om mappen "Sendte e-mails" er korrekt. Nogle af mine var ikke.Tjek indstillingerne i
og tjek om mappen til modtagelse er korrekt. Nogle af mine var ikke.Tjek alle filtre før du henter nogle e-mails. Jeg anbefaler at deaktivere alle filtre, da nogle mapper kan være forkerte eller mangle.
Hvis du har en "udløbne"-mappe er det også vigtigt at tjekke alle mapper for at se om den modtagende mappe er sat korrekt. Hvis du har aktiveret
kan du miste vigtige e-mails, hvis udløb brugte den forkerte mappe.I hver mappes kontekstmenu vælges
for at tjekke Identiteter, da den tilknyttede identitet også kan være blevet ændret eller tabt.Nu er vi klar til at rydde op i Nepomuks data før Nepomuk semantisk skrivebordsmiljø aktiveres igen.
Hvis du ikke kan læse e-mails efter at alt er ryddet op, så prøv at logge ud og derefter logge ind i en KDE-session igen for at genstarte alle processer.