Loading l10n/fi.js +28 −1 Original line number Diff line number Diff line Loading @@ -33,6 +33,7 @@ OC.L10N.register( "Next day" : "Seuraava päivä", "Next week" : "Seuraava viikko", "Next month" : "Seuraava kuukausi", "New event" : "Uusi tapahtuma", "Today" : "Tänään", "Day" : "Päivä", "Week" : "Viikko", Loading @@ -46,11 +47,14 @@ OC.L10N.register( "Appointment link could not be copied to clipboard" : "Linkkiä tapaamiseen ei voitu kopioida leikepöydälle", "Add new" : "Lisää uusi", "Untitled calendar" : "Nimetön kalenteri", "Disable calendar" : "Poista kalenteri käytöstä", "Enable calendar" : "Ota kalenteri käyttöön", "Edit name" : "Muokkaa nimeä", "Saving name …" : "Tallennetaan nimi …", "Edit color" : "Muokkaa väriä", "Saving color …" : "Tallennetaan väri …", "Copy private link" : "Kopioi yksityinen linkki", "Export" : "Vie", "Unshare from me" : "Lopeta jako minulle", "An error occurred, unable to change visibility of the calendar." : "Tapahtui virhe. Kalenterin näkyvyyttä ei voitu muuttaa.", "An error occurred, unable to delete the calendar." : "Tapahtui virhe, kalenteria ei voitu poistaa.", Loading Loading @@ -90,6 +94,7 @@ OC.L10N.register( "An error occurred, unable to change the permission of the share." : "Tapahtui virhe, jaon käyttöoikeuksia ei pysty muokkaamaan.", "+ New calendar" : "+ Uusi kalenteri", "New calendar" : "Uusi kalenteri", "Name for new calendar" : "Uuden kalenterin nimi", "Creating calendar …" : "Luodaan kalenteri …", "New calendar with task list" : "Uusi kalenteri tehtävälistan kera", "New subscription from link (read-only)" : "Uusi tilaus linkistä (vain luku)", Loading @@ -105,6 +110,7 @@ OC.L10N.register( "Delete permanently" : "Poista pysyvästi", "Empty trash bin" : "Tyhjennä roskakori", "Untitled element" : "Nimetön elementti", "Unknown calendar" : "Tuntematon kalenteri", "Could not load deleted calendars and objects" : "Poistettuja kalentereita tai objekteja ei voitu ladata", "Could not restore calendar or event" : "Kalenteria tai tapahtumaa ei voitu palauttaa", "Do you really want to empty the trash bin?" : "Haluatko varmasti tyhjentää roskakorin?", Loading @@ -120,6 +126,7 @@ OC.L10N.register( "{filename} could not be parsed" : "Tiedostoa {filename} ei voitu jäsentää", "No valid files found, aborting import" : "Kelvollisia tiedostoja ei löytynyt, lopetetaan tuonti", "Import partially failed. Imported {accepted} out of {total}." : "Tuonti epäonnistui osittain. Tuotiin {accepted}/{total}.", "_Successfully imported %n event_::_Successfully imported %n events_" : ["Tuotiin onnistuneesti %n tapahtuma","Tuotiin onnistuneesti %n tapahtumaa"], "Automatic" : "Automaattinen", "Automatic ({detected})" : "Automaattinen ({detected})", "New setting was not saved successfully." : "Uutta asetusta ei tallennettu onnistuneesti.", Loading Loading @@ -211,6 +218,8 @@ OC.L10N.register( "_day_::_days_" : ["päivä","päivää"], "_week_::_weeks_" : ["viikko","viikkoa"], "Available" : "Saatavilla", "Invitation accepted" : "Kutsu hyväksytty", "Invitation sent" : "Kutsu lähetetty", "Availability of attendees, resources and rooms" : "Osallistujien, resurssien ja huoneiden saatavuus", "{organizer} (organizer)" : "{organizer} (järjestäjä)", "Free" : "Vapaa", Loading @@ -218,7 +227,11 @@ OC.L10N.register( "Busy" : "Varattu", "Out of office" : "Ulkona toimistolta", "Unknown" : "Tuntematon", "Accept" : "Hyväksy", "Decline" : "Kieltäydy", "Tentative" : "Alustava", "The invitation has been accepted successfully." : "Kutsu on hyväksytty.", "Failed to accept the invitation." : "Kutsun hyväksyminen epäonnistui.", "Create Talk room for this event" : "Luo Talk-huone tälle tapahtumalle", "Show busy times" : "Näytä varatut ajat", "No attendees yet" : "Ei vielä osallistujia", Loading Loading @@ -324,6 +337,7 @@ OC.L10N.register( "Close" : "Sulje", "Show more details" : "Näytä lisää tietoja", "Subscribe to {name}" : "Tilaa {name}", "Export {name}" : "Vie {name}", "Anniversary" : "Vuosipäivä", "Appointment" : "Tapaaminen", "Business" : "Business", Loading Loading @@ -409,14 +423,24 @@ OC.L10N.register( "Meditation" : "Meditaatio", "Relaxing" : "Rentoutumista", "Relax" : "Rentoutumista", "Bank" : "Pankki", "Wedding" : "Häät", "Concert" : "Konsertti", "Festival" : "Festivaali", "Theater" : "Teatteri", "Theatre" : "Teatteri", "Presentation" : "Esitys", "Speech" : "Puhe", "Camping" : "Telttailua", "Camp" : "Leiri", "Barbecue" : "Grillaus", "Barbeque" : "Grillaus", "Movie" : "Elokuva", "Cinema" : "Elokuvateatteri", "Graduation" : "Valmistujaiset", "Brainstorm" : "Brainstorm", "Review" : "Esikatsele", "Proofreading" : "Oikoluku", "Baseball" : "Pesäpallo", "Meet" : "Liity", "Planning" : "Suunnittelua", Loading Loading @@ -485,12 +509,15 @@ OC.L10N.register( "Party" : "Juhlat", "Celebration" : "Juhlintaa", "Celebrate" : "Juhli", "Birthday" : "Syntymäpäivä", "Shopping" : "Ostokset", "Skate" : "Skeittausta", "Skateboard" : "Skeittaus", "Wine tasting" : "Viininmaistelu", "Golf" : "Golf", "Dinner" : "Illallinen", "Lunch" : "Lounas" "Lunch" : "Lounas", "Appointment not found" : "Tapaamista ei löydy", "User not found" : "Käyttäjää ei löydy" }, "nplurals=2; plural=(n != 1);"); l10n/fi.json +28 −1 Original line number Diff line number Diff line Loading @@ -31,6 +31,7 @@ "Next day" : "Seuraava päivä", "Next week" : "Seuraava viikko", "Next month" : "Seuraava kuukausi", "New event" : "Uusi tapahtuma", "Today" : "Tänään", "Day" : "Päivä", "Week" : "Viikko", Loading @@ -44,11 +45,14 @@ "Appointment link could not be copied to clipboard" : "Linkkiä tapaamiseen ei voitu kopioida leikepöydälle", "Add new" : "Lisää uusi", "Untitled calendar" : "Nimetön kalenteri", "Disable calendar" : "Poista kalenteri käytöstä", "Enable calendar" : "Ota kalenteri käyttöön", "Edit name" : "Muokkaa nimeä", "Saving name …" : "Tallennetaan nimi …", "Edit color" : "Muokkaa väriä", "Saving color …" : "Tallennetaan väri …", "Copy private link" : "Kopioi yksityinen linkki", "Export" : "Vie", "Unshare from me" : "Lopeta jako minulle", "An error occurred, unable to change visibility of the calendar." : "Tapahtui virhe. Kalenterin näkyvyyttä ei voitu muuttaa.", "An error occurred, unable to delete the calendar." : "Tapahtui virhe, kalenteria ei voitu poistaa.", Loading Loading @@ -88,6 +92,7 @@ "An error occurred, unable to change the permission of the share." : "Tapahtui virhe, jaon käyttöoikeuksia ei pysty muokkaamaan.", "+ New calendar" : "+ Uusi kalenteri", "New calendar" : "Uusi kalenteri", "Name for new calendar" : "Uuden kalenterin nimi", "Creating calendar …" : "Luodaan kalenteri …", "New calendar with task list" : "Uusi kalenteri tehtävälistan kera", "New subscription from link (read-only)" : "Uusi tilaus linkistä (vain luku)", Loading @@ -103,6 +108,7 @@ "Delete permanently" : "Poista pysyvästi", "Empty trash bin" : "Tyhjennä roskakori", "Untitled element" : "Nimetön elementti", "Unknown calendar" : "Tuntematon kalenteri", "Could not load deleted calendars and objects" : "Poistettuja kalentereita tai objekteja ei voitu ladata", "Could not restore calendar or event" : "Kalenteria tai tapahtumaa ei voitu palauttaa", "Do you really want to empty the trash bin?" : "Haluatko varmasti tyhjentää roskakorin?", Loading @@ -118,6 +124,7 @@ "{filename} could not be parsed" : "Tiedostoa {filename} ei voitu jäsentää", "No valid files found, aborting import" : "Kelvollisia tiedostoja ei löytynyt, lopetetaan tuonti", "Import partially failed. Imported {accepted} out of {total}." : "Tuonti epäonnistui osittain. Tuotiin {accepted}/{total}.", "_Successfully imported %n event_::_Successfully imported %n events_" : ["Tuotiin onnistuneesti %n tapahtuma","Tuotiin onnistuneesti %n tapahtumaa"], "Automatic" : "Automaattinen", "Automatic ({detected})" : "Automaattinen ({detected})", "New setting was not saved successfully." : "Uutta asetusta ei tallennettu onnistuneesti.", Loading Loading @@ -209,6 +216,8 @@ "_day_::_days_" : ["päivä","päivää"], "_week_::_weeks_" : ["viikko","viikkoa"], "Available" : "Saatavilla", "Invitation accepted" : "Kutsu hyväksytty", "Invitation sent" : "Kutsu lähetetty", "Availability of attendees, resources and rooms" : "Osallistujien, resurssien ja huoneiden saatavuus", "{organizer} (organizer)" : "{organizer} (järjestäjä)", "Free" : "Vapaa", Loading @@ -216,7 +225,11 @@ "Busy" : "Varattu", "Out of office" : "Ulkona toimistolta", "Unknown" : "Tuntematon", "Accept" : "Hyväksy", "Decline" : "Kieltäydy", "Tentative" : "Alustava", "The invitation has been accepted successfully." : "Kutsu on hyväksytty.", "Failed to accept the invitation." : "Kutsun hyväksyminen epäonnistui.", "Create Talk room for this event" : "Luo Talk-huone tälle tapahtumalle", "Show busy times" : "Näytä varatut ajat", "No attendees yet" : "Ei vielä osallistujia", Loading Loading @@ -322,6 +335,7 @@ "Close" : "Sulje", "Show more details" : "Näytä lisää tietoja", "Subscribe to {name}" : "Tilaa {name}", "Export {name}" : "Vie {name}", "Anniversary" : "Vuosipäivä", "Appointment" : "Tapaaminen", "Business" : "Business", Loading Loading @@ -407,14 +421,24 @@ "Meditation" : "Meditaatio", "Relaxing" : "Rentoutumista", "Relax" : "Rentoutumista", "Bank" : "Pankki", "Wedding" : "Häät", "Concert" : "Konsertti", "Festival" : "Festivaali", "Theater" : "Teatteri", "Theatre" : "Teatteri", "Presentation" : "Esitys", "Speech" : "Puhe", "Camping" : "Telttailua", "Camp" : "Leiri", "Barbecue" : "Grillaus", "Barbeque" : "Grillaus", "Movie" : "Elokuva", "Cinema" : "Elokuvateatteri", "Graduation" : "Valmistujaiset", "Brainstorm" : "Brainstorm", "Review" : "Esikatsele", "Proofreading" : "Oikoluku", "Baseball" : "Pesäpallo", "Meet" : "Liity", "Planning" : "Suunnittelua", Loading Loading @@ -483,12 +507,15 @@ "Party" : "Juhlat", "Celebration" : "Juhlintaa", "Celebrate" : "Juhli", "Birthday" : "Syntymäpäivä", "Shopping" : "Ostokset", "Skate" : "Skeittausta", "Skateboard" : "Skeittaus", "Wine tasting" : "Viininmaistelu", "Golf" : "Golf", "Dinner" : "Illallinen", "Lunch" : "Lounas" "Lunch" : "Lounas", "Appointment not found" : "Tapaamista ei löydy", "User not found" : "Käyttäjää ei löydy" },"pluralForm" :"nplurals=2; plural=(n != 1);" } No newline at end of file Loading
l10n/fi.js +28 −1 Original line number Diff line number Diff line Loading @@ -33,6 +33,7 @@ OC.L10N.register( "Next day" : "Seuraava päivä", "Next week" : "Seuraava viikko", "Next month" : "Seuraava kuukausi", "New event" : "Uusi tapahtuma", "Today" : "Tänään", "Day" : "Päivä", "Week" : "Viikko", Loading @@ -46,11 +47,14 @@ OC.L10N.register( "Appointment link could not be copied to clipboard" : "Linkkiä tapaamiseen ei voitu kopioida leikepöydälle", "Add new" : "Lisää uusi", "Untitled calendar" : "Nimetön kalenteri", "Disable calendar" : "Poista kalenteri käytöstä", "Enable calendar" : "Ota kalenteri käyttöön", "Edit name" : "Muokkaa nimeä", "Saving name …" : "Tallennetaan nimi …", "Edit color" : "Muokkaa väriä", "Saving color …" : "Tallennetaan väri …", "Copy private link" : "Kopioi yksityinen linkki", "Export" : "Vie", "Unshare from me" : "Lopeta jako minulle", "An error occurred, unable to change visibility of the calendar." : "Tapahtui virhe. Kalenterin näkyvyyttä ei voitu muuttaa.", "An error occurred, unable to delete the calendar." : "Tapahtui virhe, kalenteria ei voitu poistaa.", Loading Loading @@ -90,6 +94,7 @@ OC.L10N.register( "An error occurred, unable to change the permission of the share." : "Tapahtui virhe, jaon käyttöoikeuksia ei pysty muokkaamaan.", "+ New calendar" : "+ Uusi kalenteri", "New calendar" : "Uusi kalenteri", "Name for new calendar" : "Uuden kalenterin nimi", "Creating calendar …" : "Luodaan kalenteri …", "New calendar with task list" : "Uusi kalenteri tehtävälistan kera", "New subscription from link (read-only)" : "Uusi tilaus linkistä (vain luku)", Loading @@ -105,6 +110,7 @@ OC.L10N.register( "Delete permanently" : "Poista pysyvästi", "Empty trash bin" : "Tyhjennä roskakori", "Untitled element" : "Nimetön elementti", "Unknown calendar" : "Tuntematon kalenteri", "Could not load deleted calendars and objects" : "Poistettuja kalentereita tai objekteja ei voitu ladata", "Could not restore calendar or event" : "Kalenteria tai tapahtumaa ei voitu palauttaa", "Do you really want to empty the trash bin?" : "Haluatko varmasti tyhjentää roskakorin?", Loading @@ -120,6 +126,7 @@ OC.L10N.register( "{filename} could not be parsed" : "Tiedostoa {filename} ei voitu jäsentää", "No valid files found, aborting import" : "Kelvollisia tiedostoja ei löytynyt, lopetetaan tuonti", "Import partially failed. Imported {accepted} out of {total}." : "Tuonti epäonnistui osittain. Tuotiin {accepted}/{total}.", "_Successfully imported %n event_::_Successfully imported %n events_" : ["Tuotiin onnistuneesti %n tapahtuma","Tuotiin onnistuneesti %n tapahtumaa"], "Automatic" : "Automaattinen", "Automatic ({detected})" : "Automaattinen ({detected})", "New setting was not saved successfully." : "Uutta asetusta ei tallennettu onnistuneesti.", Loading Loading @@ -211,6 +218,8 @@ OC.L10N.register( "_day_::_days_" : ["päivä","päivää"], "_week_::_weeks_" : ["viikko","viikkoa"], "Available" : "Saatavilla", "Invitation accepted" : "Kutsu hyväksytty", "Invitation sent" : "Kutsu lähetetty", "Availability of attendees, resources and rooms" : "Osallistujien, resurssien ja huoneiden saatavuus", "{organizer} (organizer)" : "{organizer} (järjestäjä)", "Free" : "Vapaa", Loading @@ -218,7 +227,11 @@ OC.L10N.register( "Busy" : "Varattu", "Out of office" : "Ulkona toimistolta", "Unknown" : "Tuntematon", "Accept" : "Hyväksy", "Decline" : "Kieltäydy", "Tentative" : "Alustava", "The invitation has been accepted successfully." : "Kutsu on hyväksytty.", "Failed to accept the invitation." : "Kutsun hyväksyminen epäonnistui.", "Create Talk room for this event" : "Luo Talk-huone tälle tapahtumalle", "Show busy times" : "Näytä varatut ajat", "No attendees yet" : "Ei vielä osallistujia", Loading Loading @@ -324,6 +337,7 @@ OC.L10N.register( "Close" : "Sulje", "Show more details" : "Näytä lisää tietoja", "Subscribe to {name}" : "Tilaa {name}", "Export {name}" : "Vie {name}", "Anniversary" : "Vuosipäivä", "Appointment" : "Tapaaminen", "Business" : "Business", Loading Loading @@ -409,14 +423,24 @@ OC.L10N.register( "Meditation" : "Meditaatio", "Relaxing" : "Rentoutumista", "Relax" : "Rentoutumista", "Bank" : "Pankki", "Wedding" : "Häät", "Concert" : "Konsertti", "Festival" : "Festivaali", "Theater" : "Teatteri", "Theatre" : "Teatteri", "Presentation" : "Esitys", "Speech" : "Puhe", "Camping" : "Telttailua", "Camp" : "Leiri", "Barbecue" : "Grillaus", "Barbeque" : "Grillaus", "Movie" : "Elokuva", "Cinema" : "Elokuvateatteri", "Graduation" : "Valmistujaiset", "Brainstorm" : "Brainstorm", "Review" : "Esikatsele", "Proofreading" : "Oikoluku", "Baseball" : "Pesäpallo", "Meet" : "Liity", "Planning" : "Suunnittelua", Loading Loading @@ -485,12 +509,15 @@ OC.L10N.register( "Party" : "Juhlat", "Celebration" : "Juhlintaa", "Celebrate" : "Juhli", "Birthday" : "Syntymäpäivä", "Shopping" : "Ostokset", "Skate" : "Skeittausta", "Skateboard" : "Skeittaus", "Wine tasting" : "Viininmaistelu", "Golf" : "Golf", "Dinner" : "Illallinen", "Lunch" : "Lounas" "Lunch" : "Lounas", "Appointment not found" : "Tapaamista ei löydy", "User not found" : "Käyttäjää ei löydy" }, "nplurals=2; plural=(n != 1);");
l10n/fi.json +28 −1 Original line number Diff line number Diff line Loading @@ -31,6 +31,7 @@ "Next day" : "Seuraava päivä", "Next week" : "Seuraava viikko", "Next month" : "Seuraava kuukausi", "New event" : "Uusi tapahtuma", "Today" : "Tänään", "Day" : "Päivä", "Week" : "Viikko", Loading @@ -44,11 +45,14 @@ "Appointment link could not be copied to clipboard" : "Linkkiä tapaamiseen ei voitu kopioida leikepöydälle", "Add new" : "Lisää uusi", "Untitled calendar" : "Nimetön kalenteri", "Disable calendar" : "Poista kalenteri käytöstä", "Enable calendar" : "Ota kalenteri käyttöön", "Edit name" : "Muokkaa nimeä", "Saving name …" : "Tallennetaan nimi …", "Edit color" : "Muokkaa väriä", "Saving color …" : "Tallennetaan väri …", "Copy private link" : "Kopioi yksityinen linkki", "Export" : "Vie", "Unshare from me" : "Lopeta jako minulle", "An error occurred, unable to change visibility of the calendar." : "Tapahtui virhe. Kalenterin näkyvyyttä ei voitu muuttaa.", "An error occurred, unable to delete the calendar." : "Tapahtui virhe, kalenteria ei voitu poistaa.", Loading Loading @@ -88,6 +92,7 @@ "An error occurred, unable to change the permission of the share." : "Tapahtui virhe, jaon käyttöoikeuksia ei pysty muokkaamaan.", "+ New calendar" : "+ Uusi kalenteri", "New calendar" : "Uusi kalenteri", "Name for new calendar" : "Uuden kalenterin nimi", "Creating calendar …" : "Luodaan kalenteri …", "New calendar with task list" : "Uusi kalenteri tehtävälistan kera", "New subscription from link (read-only)" : "Uusi tilaus linkistä (vain luku)", Loading @@ -103,6 +108,7 @@ "Delete permanently" : "Poista pysyvästi", "Empty trash bin" : "Tyhjennä roskakori", "Untitled element" : "Nimetön elementti", "Unknown calendar" : "Tuntematon kalenteri", "Could not load deleted calendars and objects" : "Poistettuja kalentereita tai objekteja ei voitu ladata", "Could not restore calendar or event" : "Kalenteria tai tapahtumaa ei voitu palauttaa", "Do you really want to empty the trash bin?" : "Haluatko varmasti tyhjentää roskakorin?", Loading @@ -118,6 +124,7 @@ "{filename} could not be parsed" : "Tiedostoa {filename} ei voitu jäsentää", "No valid files found, aborting import" : "Kelvollisia tiedostoja ei löytynyt, lopetetaan tuonti", "Import partially failed. Imported {accepted} out of {total}." : "Tuonti epäonnistui osittain. Tuotiin {accepted}/{total}.", "_Successfully imported %n event_::_Successfully imported %n events_" : ["Tuotiin onnistuneesti %n tapahtuma","Tuotiin onnistuneesti %n tapahtumaa"], "Automatic" : "Automaattinen", "Automatic ({detected})" : "Automaattinen ({detected})", "New setting was not saved successfully." : "Uutta asetusta ei tallennettu onnistuneesti.", Loading Loading @@ -209,6 +216,8 @@ "_day_::_days_" : ["päivä","päivää"], "_week_::_weeks_" : ["viikko","viikkoa"], "Available" : "Saatavilla", "Invitation accepted" : "Kutsu hyväksytty", "Invitation sent" : "Kutsu lähetetty", "Availability of attendees, resources and rooms" : "Osallistujien, resurssien ja huoneiden saatavuus", "{organizer} (organizer)" : "{organizer} (järjestäjä)", "Free" : "Vapaa", Loading @@ -216,7 +225,11 @@ "Busy" : "Varattu", "Out of office" : "Ulkona toimistolta", "Unknown" : "Tuntematon", "Accept" : "Hyväksy", "Decline" : "Kieltäydy", "Tentative" : "Alustava", "The invitation has been accepted successfully." : "Kutsu on hyväksytty.", "Failed to accept the invitation." : "Kutsun hyväksyminen epäonnistui.", "Create Talk room for this event" : "Luo Talk-huone tälle tapahtumalle", "Show busy times" : "Näytä varatut ajat", "No attendees yet" : "Ei vielä osallistujia", Loading Loading @@ -322,6 +335,7 @@ "Close" : "Sulje", "Show more details" : "Näytä lisää tietoja", "Subscribe to {name}" : "Tilaa {name}", "Export {name}" : "Vie {name}", "Anniversary" : "Vuosipäivä", "Appointment" : "Tapaaminen", "Business" : "Business", Loading Loading @@ -407,14 +421,24 @@ "Meditation" : "Meditaatio", "Relaxing" : "Rentoutumista", "Relax" : "Rentoutumista", "Bank" : "Pankki", "Wedding" : "Häät", "Concert" : "Konsertti", "Festival" : "Festivaali", "Theater" : "Teatteri", "Theatre" : "Teatteri", "Presentation" : "Esitys", "Speech" : "Puhe", "Camping" : "Telttailua", "Camp" : "Leiri", "Barbecue" : "Grillaus", "Barbeque" : "Grillaus", "Movie" : "Elokuva", "Cinema" : "Elokuvateatteri", "Graduation" : "Valmistujaiset", "Brainstorm" : "Brainstorm", "Review" : "Esikatsele", "Proofreading" : "Oikoluku", "Baseball" : "Pesäpallo", "Meet" : "Liity", "Planning" : "Suunnittelua", Loading Loading @@ -483,12 +507,15 @@ "Party" : "Juhlat", "Celebration" : "Juhlintaa", "Celebrate" : "Juhli", "Birthday" : "Syntymäpäivä", "Shopping" : "Ostokset", "Skate" : "Skeittausta", "Skateboard" : "Skeittaus", "Wine tasting" : "Viininmaistelu", "Golf" : "Golf", "Dinner" : "Illallinen", "Lunch" : "Lounas" "Lunch" : "Lounas", "Appointment not found" : "Tapaamista ei löydy", "User not found" : "Käyttäjää ei löydy" },"pluralForm" :"nplurals=2; plural=(n != 1);" } No newline at end of file