From f7e7a923aca8be643f9ae6f7252f9fb27b3d2c3b Mon Sep 17 00:00:00 2001 From: Timothy Pearson Date: Sat, 3 Dec 2011 11:05:10 -0600 Subject: Second part of prior commit --- tde-i18n-it/docs/tdeedu/kig/index.docbook | 948 ++++++++++++++++++++++++++++++ 1 file changed, 948 insertions(+) create mode 100644 tde-i18n-it/docs/tdeedu/kig/index.docbook (limited to 'tde-i18n-it/docs/tdeedu/kig/index.docbook') diff --git a/tde-i18n-it/docs/tdeedu/kig/index.docbook b/tde-i18n-it/docs/tdeedu/kig/index.docbook new file mode 100644 index 00000000000..e38a2ea6eb7 --- /dev/null +++ b/tde-i18n-it/docs/tdeedu/kig/index.docbook @@ -0,0 +1,948 @@ + +KSeg"> +Cabri"> +Dr.Geo"> + + + + + +] +> + + + + +Manuale di &kig; + + +Dominique Devriese
devriese@kde.org
+
+
+PinoToscano
toscano.pino@tiscali.it
Traduzione italiana
+
+ + + +200220032004 Dominique Devriese + + +&FDLNotice; + +2005-08-20 0.10.5 + + +&kig; è un'applicazione &kde; per la geometria interattiva. + + + +KDE +KDE-Edu +Kig +Geometria interattiva +KGeo +Cabri +Dr.Geo +KSeg + +
+ + + +Introduzione + +&kig; è un'applicazione per la Geometria interattiva. Vuole ottenere due scopi: + + +Permettere agli studenti di esplorare interattivamente le forme e i concetti matematici usando il computer. + +Servire da strumento WYSIWYG per disegnare forme matematiche ed includerle in altri documenti. + + +Puoi segnalare problemi in &kig; usando lo strumento interno di segnalazione bug (AiutoSegnala un bug...), o contattandomi all'indirizzo toscano.pino@tiscali.it. +Dato che &kig; supporta le macro e i luoghi, permette la definizione di macro piuttosto avanzate. Se hai creato una macro interessante, che pensi possa essere utile ad altre persone, puoi inviarla per posta elettronica a me all'indirizzo toscano.pino@tiscali.it, così che possa includerla nella distribuzione (in tal caso sarà rilasciata sotto i termini della licenza di &kig;, la licenza GPL, in modo che le altre persone possano usarla ed adattarla liberamente). + + + + +Uso basilare +
+Costruire oggetti +
+Costruire punti +Puoi costruire punti in diversi modi: + + +Seleziona Oggetti PuntiPunto dalla barra dei menu o premi il pulsante appropriato nella barra degli strumenti. Puoi quindi costruire un punto facendo clic sulla posizione desiderata nella finestra. La procedura è la stessa per costruire gli altri oggetti: fai clic sulla voce della barra dei menu o sul pulsante desiderato nella barra degli strumenti e seleziona gli oggetti necessari per costruire l'oggetto. + + +Dato che hai spesso bisogno di costruire punti, puoi costruirne uno facendo semplicemente clic da qualche parte sullo schermo con il &MMB;, senza usare menu o pulsanti. + + +Puoi costruire punti mentre stai costruendo altri oggetti, selezionandoli opzionalmente per l'oggetto che stai costruendo. Per saperne di più, guarda . + + + + +Un punto è stato costruito + + + + + +Un punto è stato costruito + + + +
+ +
+Costruire altri oggetti +Oggetti diversi dai punti si possono costruire selezionando la voce appropriata nel menu Oggetti, o facendo clic su uno dei pulsanti della barra degli strumenti. + +Costruire un cerchio + + + + + +Costruire un cerchio + + + +Questo inizierà la costruzione di un nuovo oggetto del tipo scelto. Tutti questi tipi richiedono argomenti. Per esempio, se hai selezionato un cerchio secondo centro e un punto, avrai bisogno di dare due punti: uno per il centro, e uno per il punto sul cerchio. +Questi argomenti sono anche oggetti, che possono essere selezionati semplicemente facendo clic su di essi. Se muovi il cursore sopra un argomento che vuoi usare per costruire un oggetto, sarà mostrata un'immagine preliminare dell'oggetto, così saprai come sarà. Per oggetti che richiedono punti come argomenti, puoi costruire un nuovo punto alla posizione corrente del cursore e selezionarlo premendo il &LMB;. +Puoi sempre annullare la costruzione del nuovo oggetto premendo il tasto &Esc; o facendo clic sul pulsante Interrompi (ottagono rosso con una X) nella barra degli strumenti. + +Costruire un cerchio. + + + + + +Costruire un cerchio + + + +
+
+ +
+Selezionare oggetti +Gli oggetti possono essere selezionati in due modi: + + +Facendo semplicemente clic su un oggetto lo si selezionerà, annullando la selezione corrente. Se vuoi selezionare più oggetti contemporaneamente, tieni premuto il tasto &Ctrl; mentre fai clic su un oggetto. + + +Facendo clic su un punto vuoto sullo schermo e trascinando il mouse, puoi selezionare tutti gli oggetti dentro il rettangolo che si crea. Quest'azione annullerà la selezione corrente. Come nel caso precedente, tendendo premuto il tasto &Ctrl; potrai mantenere la selezione corrente. + + +Quando hai più di un oggetto sotto il mouse, puoi facilmente scegliere quale oggetto selezionare e aggiungere alla selezione corrente. Fai clic con il &LMB;, mentre tieni premuto il tasto &Shift;, per avere un menu a comparsa con tutti gli oggetti sotto il mouse. Quindi, puoi scegliere l'oggetto di cui hai bisogno. Come detto prima, il comportamento del tasto &Ctrl; avrà effetto sulla selezione. + + +Selezionare oggetti + + + + + +Selezionare oggetti + + + +
+ +
+Muovere oggetti +Per muovere gli oggetti, devi prima selezionarli. +Quando gli oggetti che vuoi muovere sono selezionati, puoi iniziare a muoverli premendo il &LMB; su uno qualsiasi di essi e trascinandoli. Quando hai finito, basta che rilasci il &LMB;. +Per alcuni tipi di oggetti (specialmente quando definiti da complicati luoghi), muoverli può risultare lento sull'hardware più vecchio. È un inconveniente sfortunato, ma inevitabile, data la mole di calcoli necessari. Se premi il &RMB; su uno degli oggetti selezionati, e scegli Muovi, il movimento del mouse muoverà l'oggetto. Quando l'oggetto si trova sulla posizione desiderata, un altro clic con il &LMB; fermerà il movimento dell'oggetto. +
+
+Eliminare oggetti +Gli oggetti possono essere eliminati prima selezionandoli, e poi facendo una di queste cose: + +Premendo il tasto Canc. + + +Premendo il pulsante Elimina nella barra degli strumenti. + + +Premendo il tasto destro su uno degli oggetti, e selezionando Elimina dal menu contestuale che appare. + + + +
+ +
+Mostrare e nascondere oggetti +In &kig; gli oggetti possono essere nascosti. Lo si fa selezionandoli, premendo il &RMB; su uno di loro, e selezionando Nascondi nel menu contestuale che appare. +Per mostrare gli oggetti, scegli la voce di menu ModificaMostra tutti. Questo mostrerà tutti gli oggetti correntemente nascosti. + +
+Visione notturna +La visione notturna è un modo particolare di lavorare con oggetti nascosti. Quando devi muovere o cambiare qualcosa in uno o più oggetti ma senza mostrare tutti gli oggetti nascosti che hai, allora la visione notturna ti sarà d'aiuto. +Fondamentalmente, ti permette di vedere gli oggetti nascosti come se fossero visibili, cosicché puoi manipolarli come faresti normalmente. Nella modalità visione notturna, gli oggetti nascosti saranno visibili con un colore grigio. +Per attivare/disattivare la modalità visione notturna, usa ImpostazioniIndossa occhiali infrarossi. +
+
+ +
+Annulla/Rifai +In &kig; puoi annullare quasi tutte le modifiche fatte nel documento. Basta che usi i pulsanti Annulla/Rifai sulla barra degli strumenti, o le scorciatoie appropriate. +
+ +
+Modalità a tutto schermo +&kig; ha anche una modalità a tutto schermo. Per usarla, fai clic sul pulsante appropriato sulla barra degli strumenti, o seleziona ImpostazioniModalità a tutto schermo. +Per lasciare la modalità a tutto schermo, premi il &RMB; su un punto dove non ci sono oggetti, e seleziona Esci dalla modalità a tutto schermo, o premi il tasto &Esc;. +
+
+ + + +Tipi di oggetti in &kig; +&kig; supporta un numero piuttosto ampio di tipi di oggetti. Nota che non tutti i tipi di oggetti disponibili sono mostrati nelle barre degli strumenti: ci sono alcuni oggetti che possono essere costruiti attraverso il menu Oggetti nella barra dei menu. Ovviamente, come con tutte le applicazioni &kde;, i contenuti delle barre degli strumenti sono configurabili. Per farlo prova l'opzione ImpostazioniConfigura le barre degli strumenti.... + + + + +Uso avanzato +
+Menu contestuali +&kig; ha menu contestuali per i suoi oggetti. Prova a premere il &RMB; su un oggetto per vederlo apparire. Ci sono molte opzioni: per costruire altri oggetti, per impostare i colori, e anche per nascondere, mostrare ed eliminare gli oggetti. Alcuni oggetti hanno opzioni proprie (⪚ puoi associare certi punti ad una retta cui prima non lo erano, &etc;). Queste opzioni dovrebbero essere semplici da capire. +
+ +
+Menu contestuali del documento +Premendo il tasto destro sul documento (&ie; non su un oggetto) apparirà un menu a comparsa che puoi usare per iniziare a costruire nuovi oggetti, cambiare il sistema di coordinate usato, mostrare gli oggetti nascosti, ed anche eseguire lo zoom avanti e indietro nel documento. +
+ +
+Definire Macro +Una delle caratteristiche più avanzate in &kig; è il supporto per le macro. Ciò permette di definire un nuovo tipo di oggetto da altri già definiti. +Per esempio: immagina che tu voglia creare una macro per costruire un cerchio da tre punti sulla sua circonferenza. Dovresti inserire tre punti, quindi costruire delle perpendicolari e punti medi fino a quando trovi il centro. Ora puoi usare il comando esistente Costruisci un cerchio dati il centro e un punto (usando uno dei tre punti come punto per questo comando). L'immagine seguente dovrebbe chiarirti le cose: + +Una macro all'opera + + + + + +Una macro all'opera + + + + +Quindi viene la definizione della macro. Seleziona Nuova macro... dal menu Tipi, o fai clic sul pulsante nella barra degli strumenti. Apparirà una procedura guidata, dicendoti di selezionare gli oggetti dati. Nel nostro esempio, questi sono i tre punti. Seleziona i tre punti (fai clic su di loro per selezionarli, fai clic di nuovo per deselezionarli) e fai clic sul pulsante Successivo per continuare. Infine, seleziona l'ultimo oggetto (solo il cerchio nel nostro esempio). + + +La procedura guidata delle macro + + + + + +La procedura guidata delle macro + + + + +Dopo aver completato i passi precedenti, fai clic sul pulsante Successivo per continuare. Inserisci un nome e opzionalmente una descrizione per il nuovo tipo, e fai clic sul pulsante Fine. Il tuo tipo macro ora è finito. + +Per usare il nuovo tipo macro, fai clic sul suo pulsante nella barra degli strumenti o usa il menu Oggetti. La costruzione di ogni oggetto macro è come quella di ogni altro oggetto. + +Usare il tuo nuovo tipo + + + + + +Usare il tuo nuovo tipo + + + +
+ +
+Lavorare con i tipi +Come hai visto nel capitolo precedente, &kig; ti permette di creare oggetti tuoi. &kig; anche si assicura che una volta che hai creato un oggetto, esso sia salvato all'uscita e caricato all'avvio del programma. Non devi salvare e caricare le definizioni delle macro manualmente. Tuttavia, &kig; ti permette di fare di più con le macro. Se selezioni TipiGestisci tipi... dal menu, vedrai una finestra di dialogo dove puoi modificare i tuoi tipi. Essa ti permette di modificare i tipi esistenti, eliminare i tipi non più utilizzati, esportarli su file, o anche di caricarli da un altro file. + +La finestra di dialogo Modifica tipi + + + + + +La finestra di dialogo Modifica tipi + + + +
+ +
+Etichette di testo +&kig; ti permette di aggiungere etichette di testo ad una costruzione. Ciò è molto utile per aggiungere nomi, spiegazioni o altro testo alle costruzioni. &kig; può anche visualizzare informazioni variabili sugli oggetti (proprietà). +Per iniziare a costruire un'etichetta di testo, premi il pulsante Etichetta di testo nella barra degli strumenti di &kig; o seleziona OggettiAltriEtichetta di testo nella barra dei menu. +Quindi devi scegliere un punto dove porre l'etichetta di testo. Puoi scegliere sia un luogo casuale sullo schermo, sia di associare l'etichetta ad un oggetto. + +Associare un'etichetta ad un cerchio... + + + + + +Associare un'etichetta ad un cerchio... + + + +Dopo aver selezionato dove posizionare l'etichetta, appare ora la finestra di dialogo dell'etichetta di testo. Qui puoi inserire il testo da mostrare nella nuova etichetta, e quindi fai clic su Fine. Ora dovresti vedere l'etichetta nel documento. + +La finestra di dialogo Etichetta di testo + + + + + +La finestra di dialogo Etichetta di testo + + + +L'esempio precedente era semplice, e limitato al solo testo. Tuttavia, c'è anche il supporto per mostrare informazioni variabili sugli oggetti in un'etichetta (⪚ puoi costruire un'etichetta che mostra il testo Questo segmento è lungo %1 unità. dove %1 dovrebbe essere sostituito dinamicamente dalla lunghezza di un segmento specifico). +Per fare ciò, inserisci un testo con dentro dei segnaposto (%1, %2 &etc;). Quando hai finito, premi il pulsante Successivo per continuare. Se più tardi vuoi cambiare il testo o le variabili, puoi sempre tornare indietro usando il pulsante Precedente. +La procedura guidata adesso mostra il testo inserito con tutti i segnaposto sostituiti da qualcosa come argomento 1. Si può selezionare la proprietà connessa ad un certo argomento facendo prima clic sull'argomento in questione, fai poi clic sull'oggetto di cui hai bisogno e che ha questa proprietà, e quindi seleziona la proprietà stessa dal menu a comparsa che appare. Ad es., nell'esempio sopra, è necessario fare clic su argomento 1, clic sul segmento corretto nella finestra principale di &kig;, e selezionare la proprietà Lunghezza. In seguito, puoi riempire le parti variabili rimanenti, o cambiare la proprietà di una delle parti variabili se lo vuoi. Quando hai finito, fai clic sul pulsante Fine per completare la costruzione dell'etichetta di testo. + +Selezionare una proprietà per una parte variabile + + + + + +Selezionare una proprietà per una parte variabile + + + +
+ +
+Luoghi +&kig; supporta l'uso di luoghi. Un luogo è matematicamente definito come l'insieme di tutti i punti o rette che soddisfano o sono determinati da specifiche condizioni; come in il luogo dei punti equidistanti da un punto dato è una circonferenza. Vediamo un esempio di come è usato un luogo in &kig;: +Considera la costruzione geometrica seguente: disegniamo un cerchio, e un punto che può muoversi liberamente lungo la sua circonferenza (costruisci questo punto posizionando il cursore su un cerchio, e premendo il &MMB;. Se provi a muovere il punto risultante, vedrai che non potrai muoverlo fuori dal bordo del cerchio). Quindi, disegniamo un segmento da quel punto fino al centro del cerchio, e il punto medio di quel segmento. + +Una semplice costruzione usando un luogo + + + + + +Una semplice costruzione usando un luogo + + + +Adesso se muovi il punto vincolato al cerchio, vedrai che il secondo punto si muove di conseguenza. Se tu tenessi una penna sul secondo punto, e muovessi il primo punto attorno al cerchio, vedresti disegnato un nuovo cerchio grande la metà dell'altro. Il percorso effettuato dal secondo punto durante il movimento del primo attorno al cerchio è il suo luogo. +Attualmente la costruzione del luogo di un punto è molto semplice. Fai clic sul pulsante luogo nella barra degli strumenti, o seleziona Oggetti Altri Luogo dalla barra dei menu. Quindi seleziona il punto vincolato come punto mobile (apparirà il testo Punto mobile non appena ci posizionerai il mouse sopra), e l'altro come punto dipendente. Sarà così disegnato il luogo del punto vincolato. +
+
+ + +Scripting +&kig; permette di creare tipi personalizzati nel linguaggio di script Python. Questa è una caratteristica molto avanzata, e conosco solo un altro programma per la geometria interattiva con una funzionalità simile (il programma per GNOME &drgeo;). +In &kig; il sistema di script in Python permette di definire oggetti da altri oggetti definiti genitori. Per esempio, se sei un insegnante di matematica, e conosci vari modi per calcolare un punto interessante di una conica, invece di confonderti con costruzioni complesse e macro, scrivi solamente il codice Python necessario per calcolare il punto e &kig; te lo mostrerà. +Immagina di non conoscere il tipo di &kig; già presente Punto medio, e di voler mostrare il punto medio di due punti dati. Fai clic sul pulsante Script Python nella barra degli strumenti, o seleziona OggettiAltriScript Python dalla barra dei menu. Si presenta, quindi, una procedura guidata che ti permette di procedere. + +La procedura guidata degli oggetti Script + + + + + +La procedura guidata degli oggetti Script + + + +La prima cosa da fare è selezionare gli argomenti per l'oggetto script. Nel nostro esempio, questi sono rappresentati dai due punti dei quali vogliamo calcolare il punto medio. Selezionali nella finestra principale di &kig;, e fai clic su Successivo per procedere. +Adesso si presenta una casella di testo dove inserire il codice per lo script. Trovi già del codice che serve da modello e dei commenti. È importante assicurarsi di aver inserito codice Python valido. Chi ha già familiarità con Python noterà che stiamo definendo una funzione Python chiamata calc. Perciò è necessario seguire le regole di Python per la definizione delle funzioni. Per esempio, ogni linea della funzione dovrebbe iniziare con Tab. La prima linea che non inizia con Tab termina la definizione della funzione. +La funzione Python da definire è chiamata calc, e nel nostro caso accetta due argomenti. Questi sono gli oggetti selezionati come argomenti nella schermata precedente. Hai bisogno di tanti argomenti quanti ne hai selezionati lì. Sono chiamati arg1 e arg2 ma, se vuoi, puoi cambiare i loro nomi in qualcosa di più significativo. +Nella funzione, puoi fare tutti i calcoli che ritieni necessari, usando, se opportuno, i due argomenti. Dovresti ritornare l'oggetto che vuoi definire. Nel nostro caso, questo è un oggetto Point. Anche i due argomenti sono oggetti Point, e possiamo usare la funzione Point.coordinate() per ricavare le coordinate dei due punti dati. +I calcoli necessari nel nostro esempio sono molto semplici, dobbiamo sommare assieme le due coordinate, e dividere il risultato per due. Costruiamo quindi un nuovo punto usando il risultato. Il codice Python necessario è: + +def calc( a, b ): + m = ( a.coordinate() + b.coordinate() ) / 2; + return Point( m ) + + + +Inserimento del codice + + + + + +L'inserimento del codice per il punto medio nella procedura guidata dell'oggetto Script. + + + +Se fai clic sul pulsante Fine, apparirà il nuovo oggetto nel documento di &kig;. Se muovi uno dei punti, il punto appena creato si muoverà di conseguenza. In questo modo possono essere costruiti molti oggetti potenti: sei incoraggiato a provarli. + +Un oggetto Script appena costruito + + + + + +L'oggetto Script appena costruito. + + + +Tutti gli oggetti in &kig; possono essere usati nel codice Python. Come visto sopra, i punti appartengono alla classe Point, e ⪚ puoi usare il metodo Point.coordinate(). Puoi restituire tutti i tipi di oggetti, non solo Point. Dal codice Python di &kig; sono disponibili molte altre classi e metodi, ed una guida più completa è disponibile sul sito di &kig;. + + + +Caratteristiche di &kig; + + + +&kig; è un'applicazione open source. Ciò significa che sei libero di usarla e modificarla come vuoi. La distribuzione di &kig; è soggetta ad alcune restrizioni, in pratica ognuno dovrebbe avere gli stessi diritti di usare &kig; con le modifiche apportate. +Il software libero è sviluppato con uno spirito molto aperto, e i programmatori sono di solito molto sensibili alle segnalazioni degli utenti. Perciò, se hai domande, lamentele, o qualsiasi altra cosa su &kig;, fallo sapere all'autore all'indirizzo toscano.pino@tiscali.it. + + +&kig; è un'applicazione KPart, il che significa che puoi integrarla in altro software &kde;. Se apri un file .kig in &konqueror;, può essere aperto direttamente in &konqueror; senza aver bisogno di avviare un'applicazione esterna. + + +Lavorare con &kig; dovrebbe essere molto semplice. La costruzione di oggetti è facile e interattiva, vengono mostrati i risultati preliminari, &etc;. Muovere, selezionare, costruire oggetti funziona come uno se l'aspetta. Anche l'annullamento le modifiche dovrebbe essere molto intuitivo. + + +&kig; supporta la definizione delle macro in maniera semplice. Questi oggetti sono presentati all'utente come oggetti normali. Sono salvati all'uscita e caricati all'avvio, in modo che non vadano persi. Puoi gestire questi tipi nella finestra di dialogo Gestisci tipi (guarda ). Puoi esportarli su file, importarli da file, modificarli ed eliminarli. + + +&kig; salva i suoi dati in un formato &XML; chiaro. + + +&kig; supporta la costruzione di luoghi. + + +&kig; permette di esportare un file di &kig; in formati interessanti, come immagini, file di XFig e di LaTeX e immagini vettoriali SVG. Ciò è piuttosto utile, dato che non tutti i programmi supportano già il formato di file di &kig;. + + +&kig; ha un sistema flessibile per le trasformazioni. + + +&kig; mira ad essere compatibile con i suoi concorrenti. È la ragione per cui supporta il formato di file di &kgeo;, quello di &kseg; e parzialmente quello di &drgeo; e quello di &cabri;; inoltre è stato programmato il supporto per altri formati. + + + + + + +Domande e risposte +&reporting.bugs; &updating.documentation; + + + +Ringraziamenti e licenza + +&kig; +Copyright di &kig; 2002-2004 Dominique Devriese devriese@kde.org + +Copyright della documentazione 2002-2004 Dominique Devriese devriese@kde.org + +Copyright della documentazione 2004-2005 Pino Toscano toscano.pino@tiscali.it + +Riveduta da &Philip.Rodrigues; &Philip.Rodrigues.mail;. +Traduzione italiana di Pino Toscano toscano.pino@tiscali.it +&underFDL; &underGPL; + + +Installazione + + +Come ottenere &kig; +&install.intro.documentation; + + +Compilazione e installazione +&install.compile.documentation; + + + + +Contribuire +
+Software Libero +&kig; è software libero. Ciò significa che il suo codice sorgente è liberamente disponibile su internet, e ognuno può usarlo, leggerlo, modificarlo, e distribuirlo. Io sviluppo &kig; come hobby, e ho già imparato molto su programmazione, C++, &kde;/&Qt;, matematica, collaborazioni tra i gruppi di sviluppo software e progetti open source durante lo sviluppo. +
+ +
+Contribuire +Lo scopo di questo capitolo è di illustrare a te (l'utente) i diritti che la licenza di &kig; ti da. Come con tutti i software liberi, puoi liberamente risolvere i problemi incontrati durante l'uso (e sei incoraggiato a farlo), ad aggiungere caratteristiche mancanti, a distribuire il tuo programma modificato, e ad inviare queste modifiche a me all'indirizzo toscano.pino@tiscali.it, affinché possa includerle nella prossima versione, cosicché gli altri ne possano usufruire. Nota che personalmente non ho interessi finanziari di nessun genere in questo progetto. +Se hai dubbi sui tuoi diritti ad usare questo software, o quelli di altre persone ad usufruire delle modifiche che hai fatto a questo programma, &etc;, leggi la licenza. Puoi trovarla nel file COPYING nei sorgenti di &kig; o nella scheda Accordo di licenza nella finestra di dialogo Informazioni su Kig. +
+ +
+Come contribuire? +Qualsiasi contributo è ben accetto. Se non ti piacciono le icone, o pensi che il manuale debba essere aggiornato, o se hai una bella macro che vuoi condividere con il mondo, non esitare a mandar ciò a me. Nota che i contributi verranno distribuiti sotto i termini della licenza &GNU; GPL; puoi trovare i termini di questa licenza nel file COPYING nei sorgenti di &kig;, e nel capitolo Ringraziamenti e licenza in questo manuale. +
+
+ +&documentation.index; +
+ \ No newline at end of file -- cgit v1.2.1