Modello di lettera di diffida in Power Automate: genera una lettera PDF per ogni pratica pronta in SharePoint con PDF4me

PDF4me Generate Document Single è un'azione di Power Automate che unisce dati JSON a un modello Word e restituisce un documento finale. Applicata a un elenco di pratiche legali di SharePoint, trasforma un modello di lettera di diffida in una lettera PDF per ogni pratica contrassegnata come pronta, archivia ciascuna lettera nella cartella della pratica corrispondente e aggiorna lo stato della pratica.
Cercando un modello di lettera di diffida, la prima pagina dei risultati è dedicata a centri di assistenza legale, siti di assistenza legale gratuita e librerie di moduli. California Courts, WashingtonLawHelp e LawDepot spiegano tutti come scrivere una lettera, e lo fanno in modo chiaro. Nessuno di questi siti, però, si occupa degli studi legali che ne inviano trenta a settimana, dove la stesura della lettera è la parte più semplice, mentre la parte amministrativa è tutt'altro che semplice: copiare i dati del cliente, della controparte e l'importo dal fascicolo del caso, salvare il PDF nella cartella corretta e ricordarsi di contrassegnare la pratica come conclusa. Questo flusso di lavoro si occupa di tutta la parte amministrativa, lasciando il testo della lettera dove deve stare, ovvero in un documento Word sotto il controllo degli avvocati.
Contrassegna una pratica come Ready for Demand Letter in SharePoint ed esegui il flusso. Ogni pratica contrassegnata come pronta viene restituita con una lettera di diffida in formato PDF nella propria cartella e con un nuovo stato, e il team riceve un'unica email che indica quante lettere sono state inviate. La lettera stessa è un documento Word con sei segnaposto, compilati automaticamente da PDF4me a partire dai dati della pratica. Undici azioni, circa otto secondi per un gruppo di due pratiche.
Domande e risposte basate sul perché
Perché creare la lettera partendo da un modello Word? Perché chi si occupa della stesura del testo lavora già con Word. Un avvocato può modificare un paragrafo, aggiornare l'intestazione o aggiungere una clausola senza alterare il flusso del documento, e i segnaposto rimangono al loro posto. PDF4me legge direttamente il file .docx, quindi non è necessario ricostruire nulla in HTML prima.
Perché filtrare in base a una colonna di stato invece di attivare la query per ogni nuova pratica? Perché una pratica non è pronta per una lettera di diffida nel momento stesso in cui viene creata. La colonna di stato consente a un assistente legale di decidere quando i fatti sono completi e la query seleziona esattamente quelle righe. Modificare lo stato subito dopo la presentazione è ciò che impedisce alla stessa pratica di ricevere una seconda lettera di diffida al successivo tentativo di elaborazione.
Perché assegnare una cartella a ogni pratica? Perché è così che vengono organizzati i fascicoli. Il percorso della cartella utilizza l' ID della pratica, quindi MAT-1001.pdf finisce in DemandLetters/MAT-1001 insieme a tutti gli altri documenti relativi a quella pratica, e chiunque apra la pratica trova la lettera senza doverla cercare.
Perché contare le lettere in una variabile? Perché l'email di riepilogo dovrebbe riportare il risultato effettivo di questa elaborazione. DocIndex aumenta di uno alla fine di ogni passaggio, dopo che la lettera è stata archiviata e il suo stato è stato modificato, quindi il numero nell'oggetto indica il numero di lettere che hanno completato l'intero processo.
Cosa riceverai
Input: un elenco SharePoint di pratiche, ciascuna con un ID pratica, cliente, data dell'incidente, controparte, importo del risarcimento, avvocato e stato. Output: una lettera di diffida in formato PDF per ogni pratica contrassegnata come pronta, in /Shared Documents/DemandLetters/<matter ID>, lo stato della pratica modificato in Demand Letter Generated e un'e-mail di riepilogo per il lotto.

MAT-1001.pdf nella sua cartella di riferimento, scritto dall'account di flusso.

Il riepilogo di un singolo fascicolo. Il conteggio proviene dalla variabile DocIndex.
Di cosa hai bisogno
- Power Automate. Apri Power Automate. Un flusso cloud su connettori standard. SharePoint, Office 365 Outlook e PDF4me non richiedono un piano premium.
- Chiave API di PDF4me. Ottieni la tua chiave API. Questo flusso utilizza una connessione PDF4me, PDF4me PDF.
- Un elenco di pratiche di SharePoint. L'elenco acquisito si chiama Matters. La sua colonna Title contiene l' ID della pratica e viene rinominata MatterID nella visualizzazione elenco, e sono presenti colonne per ClientName, IncidentDate, OpposingParty, DamagesAmount e Attorney, oltre a una colonna di scelta Status con valori come Bozza, Ready for Demand Letter e Demand Letter Generated.
- Una raccolta di documenti per il modello e le lettere. Il modello si trova nella Shared Documents, mentre le lettere vanno nella cartella Shared Documents/DemandLetters.
- Modello di lettera di diffida .demand demand-letter-template.docx. Sei segnaposto nella sintassi del modello PDF4me. Il testo è un esempio, non una consulenza legale, quindi fate approvare il vostro da un avvocato prima di inviarlo a chiunque.
- La lettera finale. mat-1001-demand-letter.pdf. Esattamente ciò che il flusso ha prodotto per la materia MAT-1001.
Scarica prima gli esempi. Carica il modello in Shared Documents come DemandLetterTemplate.docx, aggiungi una pratica con lo stato Ready for Demand Letter e avvia il flusso. Quindi posiziona la tua lettera accanto a quella completata. Se i nomi, l'importo e l' ID della pratica corrispondono, tutte le corrispondenze sono corrette.
Il flusso in sintesi
- Manually trigger a flow avvia un batch.
- Get items che leggono l'elenco
Matterscon lo stato Filter QueryStatus eq 'Ready for Demand Letter'. - Select ciascuna mappa e associala ai sei campi del modello.
- Get file content letto da
/Shared Documents/DemandLetterTemplate.docx. - Initialize variable crea
DocIndexcome un Integer impostato a0. - Apply to each ciclo sugli elementi da Get items.
- PDF - Generate Document (Single) (PDF4me PDF) compila il modello con Output Type
PDF. - Create file (SharePoint) salva la lettera in
/Shared Documents/DemandLetters/<matter ID>. - Update item (SharePoint) imposta Status su
Demand Letter Generated. - Increment variable aggiunge
1aDocIndex. - Send an email (V2) (Office 365 Outlook) invia il riepilogo del batch.
Panoramica completa del flusso

Un batch di due documenti. Il ciclo ha impiegato sette secondi per entrambi i passaggi e la scrittura su SharePoint è la fase più lenta al suo interno, con due secondi per lettera.
Passaggio 1: Come si avvia un lotto di lettere di diffida su richiesta?
Flusso finora: ancora niente, questo è il trigger.
Un sistema di attivazione manuale si adatta al modo in cui le lettere vengono effettivamente inviate: qualcuno controlla i documenti contrassegnati come pronti, quindi preme il pulsante.
- Crea un Instant cloud flow e seleziona Manually trigger a flow.
- Lascialo senza input. L'elenco stesso decide quali elementi sono inclusi nel batch.
Configurazione manuale del grilletto

Nessun input. La selezione avviene nel passaggio successivo, nella colonna Status.
Suggerimento: nulla nel resto del flusso dipende da chi lo ha avviato. Sostituendo il trigger con Recurrence, lo stesso flusso diventa un batch notturno che riprende tutto ciò che è stato contrassegnato come pronto durante il giorno.
Fase 2: Come si selezionano solo le questioni per le quali è pronta una lettera di diffida?
Flusso finora: Manually trigger a flow.
Il sistema si Get items, quindi il flusso non deve mai verificare autonomamente lo stato.
- Aggiungi SharePoint > Get items.
- Configura:
- Site Address:
PDF4me Sharepoints - https://ynoox1.sharepoint.com/sites/PDF4meSharepoints - List Name:
Matters
- Site Address:
- Apri Advanced parameters e imposta:
- Filter Query:
Status eq 'Ready for Demand Letter' - Order By:
Title asc
- Filter Query:
Get items: configurazione

Il valore del filtro corrisponde esattamente, comprese le maiuscole. L'ordinamento per Title produce le lettere nell'ordine dell'ID della pratica.
Suggerimento: Get items è di massimo 100 righe, a meno che non si aumenti Top Count o si attivi la paginazione nelle impostazioni dell'azione. Questo è più che sufficiente per un'elaborazione giornaliera, ma è bene saperlo prima della prima esecuzione di fine mese.
Passaggio 3: Cosa rappresenta l'azione Select?
Flusso finora: Manually trigger a flow più Get items.
Select trasforma ogni riga della pratica esattamente nei sei campi noti al modello, rendendo così il contratto tra elenco e modello di facile lettura.
- Aggiungi Data Operation > Select.
- Da: il token
body/valueda Get items. - Mappa: una riga per ogni campo del modello, come nella tabella sottostante.
Select: configurazione

Cinque campi mantengono i nomi delle colonne. Il sesto, MatterID, proviene dalla colonna Title dell'elenco.
Come ogni segnaposto acquisisce il suo valore
| Segnaposto nel modello | Chiave JSON | colonna SharePoint | Nella lettera MAT-1001 |
|---|---|---|---|
<<[ClientName]>> | ClientName | ClientName | Sarah Chen |
<<[IncidentDate]>> | IncidentDate | IncidentDate | 06/14/2026 00:00:00 |
<<[OpposingParty]>> | OpposingParty | OpposingParty | Meridian Logistics Inc. |
<<[DamagesAmount]>> | DamagesAmount | DamagesAmount | 18500 |
<<[Attorney]>> | Attorney | Attorney | David Park |
<<[MatterID]>> | MatterID | Title | MAT-1001 |
È importante saperlo prima di copiare questo passaggio. Nel flusso catturato, il ciclo legge direttamente Get items e la lettera prende i suoi valori dal ciclo, quindi nulla a valle utilizza l'output Select. Questo è intenzionale per un motivo: Update item richiede ID di ogni questione, e Select lo omette. Per far partire il ciclo da Select, aggiungi ID alla mappa e Apply to each punti all'output Select.
Passaggio 4: Da dove il flusso legge il modello Word?
Flusso finora: Manually trigger a flow più Get items più Select.
Il modello è un normale file Word presente nella raccolta documenti. Leggerlo qui, prima del ciclo, significa che viene recuperato una volta per ogni batch anziché una volta per ogni pratica.
- Aggiungi SharePoint > Get file content.
- Configura:
- Site Address:
PDF4me Sharepoints - https://ynoox1.sharepoint.com/sites/PDF4meSharepoints - File Identifier:
/Shared Documents/DemandLetterTemplate.docx - Infer content type (avanzato):
Yes
- Site Address:
Get file content: configurazione

Modifica il modello in SharePoint e il lotto successivo utilizzerà la nuova formulazione, senza alcuna modifica al flusso.
Il modello contiene sei segnaposto nella sintassi del modello PDF4me: <<[Attorney]>>, <<[IncidentDate]>>, <<[OpposingParty]>>, <<[MatterID]>>, <<[ClientName]>> e <<[DamagesAmount]>>. L'intestazione, la riga di riferimento e il testo circostante sono semplici contenuti Word. La panoramica della sintassi del modello Word illustra tutte le altre funzionalità di un segnaposto.
Passaggio 5: Perché il flusso necessita di una variabile contatore?
Flusso finora: tutto tramite Get file content.
L'e-mail di riepilogo necessita di un numero, e una variabile è il modo più semplice per inserirlo nel ciclo.
- Aggiungi Variables > Initialize variable.
- Configura:
- Nome:
DocIndex - Tipo:
Integer - Valore:
0
- Nome:
Initialize variable: configurazione

Initialize variable deve trovarsi al livello superiore del flusso. Power Automate non la consente all'interno di un ciclo.
Passaggio 6: Come si genera una lettera di diffida per ogni pratica?
Flusso finora: tutto attraverso Initialize variable.
Questo è il ciclo che svolge il lavoro vero e proprio. Ad ogni passaggio viene creata una lettera, archiviata, aggiornato il fascicolo e conteggiato.
- Aggiungi Control > Apply to each.
- Select an output from previous steps: il token
body/valueda Get items.
Apply to each: configurazione

Quattro azioni all'interno del ciclo, e questo rimane vero per una questione o per cinquanta.
Ora la prima azione all'interno del ciclo.
- Aggiungi PDF - Generate Document (Single) dalla connessione PDF4me PDF.
- Configura:
- Template File Type:
Docx (PDF4me Template Syntax) - Template File Name:
DemandLetterTemplate.docx - Template File Data: un'espressione
base64()sull'output del Get file content, ad esempiobase64(body('Get_file_content')) - Document Data Type:
Json - Document Data File: lasciare vuoto
- Document Data Text: il JSON sottostante, costruito a partire dalla questione corrente
- Output Type:
PDF - Keep Pdf template Editable:
No
- Template File Type:
I token presenti nel Document Data Text corrispondono alle seguenti espressioni:
{
"ClientName": "@{items('Apply_to_each')?['ClientName']}",
"IncidentDate": "@{items('Apply_to_each')?['IncidentDate']}",
"OpposingParty": "@{items('Apply_to_each')?['OpposingParty']}",
"DamagesAmount": "@{items('Apply_to_each')?['DamagesAmount']}",
"Attorney": "@{items('Apply_to_each')?['Attorney']}",
"MatterID": "@{items('Apply_to_each')?['Title']}"
}
Generate Document (Single): configurazione

Le chiavi JSON devono corrispondere esattamente ai nomi dei segnaposto. Solo MatterID ha un valore derivante da una colonna con un nome diverso.
Correggi la data e l'importo prima della prima lettera vera e propria. La lettera acquisita stampa la data dell'incidente come 14/06/2026 00:00:00 e il risarcimento danni come $18500, perché nessuno dei due valori ha un formato. Nessuno invia una lettera di diffida con un timestamp, quindi aggiungi un formato al segnaposto della data nel modello e formatta l'importo nel flusso, come mostrato di seguito.
Per la data, inserisci una stringa di formato nel modello Word, come descritto in Formattazione nei modelli Word:
<<[IncidentDate]:"MMMM dd, yyyy">>stampa il 14 giugno 2026.
Per l'importo, formattalo come Document Data Text prima che venga inserito nel modello. Questo presuppone che DamagesAmount sia una colonna di tipo Numero o Valuta:
formatNumber(items('Apply_to_each')?['DamagesAmount'], 'N0', 'en-US')produce 18.500.
formatNumber e le altre funzioni utilizzate in questo post sono documentate nel riferimento alle funzioni di espressione del flusso di lavoro.
Passaggio 7: Dove va archiviata ogni lettera?
Flusso finora: il ciclo, attraverso Generate Document (Single).
L' ID del caso svolge qui una doppia funzione, identificando sia la cartella che il file.
- Aggiungi SharePoint > Create file all'interno del ciclo.
- Configura:
- Site Address:
PDF4me Sharepoints - https://ynoox1.sharepoint.com/sites/PDF4meSharepoints - Folder Path:
/Shared Documents/DemandLetters/seguito dal token Title - File Name: il token Title seguito da
.pdf - File Content: il token Body dal PDF - Generate Document (Single)
- Site Address:
Create file: configurazione

Per la questione MAT-1001 il file viene scritto in /Shared Documents/DemandLetters/MAT-1001/MAT-1001.pdf.
Suggerimento: un ID come MAT-1001 è un buon nome per cartelle e file perché non contiene nulla che SharePoint rifiuti. Se gli ID delle pratiche sono in formato testo libero, rimuovi prima le barre, i due punti e i punti interrogativi, altrimenti la Create file non riesce sulla prima pratica che li contiene.
Passo 8: Come si fa a impedire che una questione riceva una seconda lettera?
Flusso finora: il ciclo, attraverso Create file.
Il filtro al passaggio 2 funziona solo se lo stato cambia in presenza di una lettera. Questo è proprio lo scopo di questa azione.
- Aggiungi l'elemento SharePoint > Update item all'interno del ciclo.
- Configura:
- Site Address:
PDF4me Sharepoints - https://ynoox1.sharepoint.com/sites/PDF4meSharepoints - List Name:
Matters - ID: il token ID della questione corrente
- Status Value (avanzato):
Demand Letter Generated
- Site Address:
Update item: configurazione

Update item viene eseguito solo dopo che Create file è andata a buon fine, quindi una pratica la cui lettera non è stata elaborata correttamente rimane pronta per il lotto successivo.
Passaggio 9: Come fa il team a sapere che il lotto è pronto?
Flusso finora: il ciclo, attraverso Update item.
Due azioni completano il lavoro: una conta all'interno del ciclo, l'altra segnala il risultato al termine.
- Aggiungi Variables > Increment variable come ultima azione all'interno del ciclo.
- Nome:
DocIndex - Valore:
1
- Nome:
- Aggiungi Office 365 Outlook > Send an email (V2) dopo il ciclo.
- A: indirizzo del tuo team
- Oggetto:
Demand Letters Generated -seguite dal token DocIndex ein this batch - Body:
Hi team,quindi DocIndex, quindidemand letters were generated in this batch and saved to the matter folders in SharePoint. Matter statuses have been updated to "Demand Letter Generated". - Importance (avanzata):
Normal
Increment variable e Send an email (V2): configurazione

Ultimo elemento all'interno del ciclo, quindi conta solo le lettere che sono state archiviate e registrate.

Una email per ogni gruppo di email, non una per ogni lettera.
Suggerimento. L'email catturata contiene 1 lettera di diffida. Sostituisci la parola fissa con if(equals(variables('DocIndex'), 1), 'letter', 'letters') e l'oggetto e il corpo verranno letti correttamente per un batch di uno.
Esegui il flusso e verifica
- Save il flusso e seleziona Test, quindi Manually.
- Prima di eseguirlo, contrassegna almeno una pratica come Ready for Demand Letter.
- Apri la cronologia delle esecuzioni. Apply to each dovrebbe mostrare un'iterazione per ogni elemento contrassegnato come pronto e ogni azione dovrebbe essere verde.
- Apri la cartella
/Shared Documents/DemandLetterse verifica la presenza di una cartella per ogni pratica, ciascuna contenente un file PDF denominato con l' ID della pratica. - Apri l'elenco Matters e verifica che ora venga visualizzato Demand Letter Generated.
L'elenco Matters dopo le corse

Attualmente, tre pratiche risultano contrassegnate Demand Letter Generated. La pratica MAT-1003 è ancora in bozza, pertanto il filtro l'ha ignorata e non è stata prodotta alcuna lettera.
L'esecuzione acquisita ha elaborato due pratiche in circa otto secondi. La lettera per MAT-1001 è di 21.121 byte su una singola pagina, proveniente da PDF4me Legal Associates, firmata da David Park per conto di Sarah Chen e indirizzata a Meridian Logistics Inc. I suoi metadati XMP dichiarano pdfaid:part come 1 e pdfaid:conformance come B, ovvero PDF/A-1b. L'e-mail di riepilogo mostrata in precedenza proviene da un batch separato di una singola pratica.
Cosa hai effettivamente creato? Un piccolo sistema di automazione per la gestione dei documenti legali. Il testo approvato è contenuto in un modello Word, i dati di fatto sono riportati nell'elenco delle pratiche e la colonna Stato decide cosa inviare e ne registra l'avvenuta spedizione. Nessuno deve più copiare il nome del cliente in una lettera e nessuno deve più ricordarsi quali pratiche ne necessitano ancora una.
Varianti comuni che puoi aggiungere senza dover ricostruire
Come si confronta questo metodo con altri modi di redigere lettere di diffida?
Ogni riga descrive l'alternativa. L'ultima riga rappresenta questo flusso.
| Confronto | Modello | Connettore o licenza | Produzione | Aggiorna il record della pratica |
|---|---|---|---|---|
| Modello compilato a mano vs questo flusso | Word, riscritta per ogni lettera | Nessuno | Qualunque cosa la persona salvi | A mano, se qualcuno se lo ricorda |
| Microsoft Populate a Microsoft Word template rispetto a questo flusso | Word con controlli del contenuto | Connettore Premium Word Online (Business) | I file .docx e PDF necessitano di una seconda conversione | Solo se lo aggiungi |
| Software dedicato per l'automazione dei documenti legali rispetto a questo flusso | Solitamente l'editor di modelli del fornitore | Abbonamento separato | Word o PDF | All'interno di quel prodotto |
| Questo flusso | Word con segnaposto nella sintassi del modello PDF4me | Connettori standard | PDF, depositato per questione | Sì, Status è stato aggiornato |
La distinzione che conta è questa: è l'unica riga in cui il modello rimane un normale file Word e il record della pratica cambia durante la stessa esecuzione.
Domande frequenti
Come redigere un modello di lettera di diffida?
Partite dalla lettera che il vostro studio legale invia abitualmente e indicate ogni valore che varia tra le diverse pratiche. Una tipica lettera di diffida include intestazione, data, destinatario, un riferimento con l' ID della pratica, una breve descrizione dei fatti, l'importo richiesto con la relativa scadenza, le conseguenze in caso di mancato rispetto della scadenza e la firma. Tutto, ad eccezione dei valori variabili, è formulato in modo fisso.
Per l'automazione, ogni valore variabile diventa un segnaposto. Il modello di esempio ne utilizza sei: cliente, data dell'incidente, controparte, importo, avvocato e ID della pratica. La sua formulazione è solo a scopo illustrativo, pertanto è necessario che il legale approvi il testo di qualsiasi modello si intenda inviare.
Come compilare un modello Word utilizzando Power Automate?
Esistono due percorsi comuni. L'azione Populate a Microsoft Word template di Microsoft utilizza i controlli del contenuto nel documento e si trova nel connettore premium Word Online (Business). Restituisce un file .docx, quindi la conversione in PDF richiede un secondo passaggio.
Questo flusso utilizza invece PDF4me Generate Document (Single). Il modello è un normale file .docx con segnaposto come <<[ClientName]>>, i dati vengono inseriti come JSON e l'azione restituisce un PDF direttamente su un connettore standard. Leggi il modello con Get file content, passalo attraverso base64() e crea Document Data Text dall'elemento dell'elenco.
Come automatizzare la composizione delle lettere in Word?
All'interno di Word, la soluzione classica è la Stampa unione: un documento con campi di unione e un'origine dati come un foglio Excel. Funziona, ma qualcuno deve eseguirla manualmente su un computer per ogni lotto di documenti e archiviare i risultati in seguito.
Automatizzare correttamente il processo significa mantenere il documento Word come modello e lasciare che un flusso lo compili a partire dai record. In questo caso, i record sono un elenco di SharePoint, il trigger decide quando eseguire un batch e l'archiviazione e gli aggiornamenti di stato avvengono nella stessa esecuzione, eliminando così la necessità di un passaggio di unione manuale.
Che cos'è l'automazione dei documenti legali?
L'automazione dei documenti legali consiste nella produzione di documenti legali come lettere di diffida, lettere di incarico e avvisi a partire da modelli approvati e dati relativi al caso, anziché redigerli manualmente. Il modello contiene il testo approvato dallo studio legale, i dati provengono dal fascicolo del caso e il software si occupa dell'unione.
Questo flusso ne è un piccolo esempio concreto: un modello Word, un elenco di documenti e un'azione di PDF4me che esegue l'unione, con lo stato del documento che registra l'esistenza della lettera.
Risoluzione dei problemi
Cerca le virgolette doppie nei dati di quel documento, spesso nel nome di un'azienda. Document Data Text è un JSON assemblato a partire da testo, quindi una virgoletta fuori posto interrompe prematuramente un valore e il JSON diventa non valido. Esegui l'escape delle virgolette nei valori oppure crea prima l'oggetto in un'azione Compose e passa il suo output.
Il segnaposto non ha un formato, quindi la data viene stampata con l'ora. Aggiungi una stringa di formato al segnaposto IncidentDate nel modello, come mostrato nel passaggio 6, e carica nuovamente il modello.
Get items non restituisce nulla. La Filter Query confronta il testo esattamente, quindi controlla l'ortografia e le maiuscole rispetto alle opzioni Status e assicurati che la query utilizzi il nome interno della colonna. Esegui il flusso con un singolo caso impostato su Ready for Demand Letter per confermare.
Lo stato non è mai cambiato. Verificare che Update item utilizzi l' ID della pratica corrente e che il suo Status Value corrisponda a un'opzione che non soddisfa il filtro. Se lo stato rimane Ready for Demand Letter, ogni esecuzione riprende la pratica.
Prossimi passi
Generate Document Single in Power Automate
Sintassi del modello Word
Formattazione nei modelli Word
Ottieni la tua chiave API
Lo stesso schema in undici fasi (filtrare l'elenco in base allo stato, compilare un modello Word per ogni riga, archiviare il PDF, modificare lo stato, segnalare il conteggio) gestisce qualsiasi documento che una riga dell'elenco può generare: lettere di incarico, avvisi, promemoria di rinnovo e offerte di transazione.