

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Définitions de tâches pour les tâches de démarrage de EC2 Launch v2
<a name="ec2launch-v2-task-definitions"></a>

Chaque tâche exécutée par EC2 Launch v2 lors du lancement ou du démarrage possède son propre ensemble de propriétés et d'exigences. Les détails des tâches comprennent les paramètres relatifs à la fréquence d'exécution d'une tâche : une fois ou toujours, l'étape du processus de démarrage de l'agent dans laquelle elle s'exécute, la syntaxe et des exemples de documents YAML. Pour plus d'informations, consultez les détails de la tâche présentés dans cette référence.

**Topics**
+ [activateWindows](#ec2launch-v2-activatewindows)
+ [enableJumboFrames](#ec2launch-v2-enablejumboframes)
+ [enableOpenSsh](#ec2launch-v2-enableopenssh)
+ [executeProgram](#ec2launch-v2-executeprogram)
+ [executeScript](#ec2launch-v2-executescript)
+ [extendRootPartition](#ec2launch-v2-extendrootpartition)
+ [initializeVolume](#ec2launch-v2-initializevolume)
+ [optimizeEna](#ec2launch-v2-optimizeena)
+ [setAdminAccount](#ec2launch-v2-setadminaccount)
+ [setDnsSuffix](#ec2launch-v2-setdnssuffix)
+ [setHostName](#ec2launch-v2-sethostname)
+ [setWallpaper](#ec2launch-v2-setwallpaper)
+ [startSsm](#ec2launch-v2-startssm)
+ [sysprep](#ec2launch-v2-task-sysprep)
+ [writeFile](#ec2-launch-v2-writefile)

## activateWindows
<a name="ec2launch-v2-activatewindows"></a>

Active Windows sur un ensemble de AWS KMS serveurs. L'activation est ignorée si l'instance est détectée comme Bring-Your-Own-License (BYOL).

*Fréquence* — Une fois

*AllowedStages* — `[PreReady]`

*Entrées* — 

`activation` : (carte)

`type` : type d’activation (string) à utiliser, défini sur `amazon`

*Exemple*

```
task: activateWindows
  inputs:
    activation:
    type: amazon
```

## enableJumboFrames
<a name="ec2launch-v2-enablejumboframes"></a>

Active les trames Jumbo, qui augmentent l’unité de transmission maximale (MTU) de la carte réseau. Pour plus d’informations, consultez [Trames jumbo (MTU de 9001)](network_mtu.md#jumbo_frame_instances).

*Fréquence* — Toujours

*AllowedStages* — `[PostReady, UserData]`

*Entrées* — Aucune

*Exemple*

```
task: enableJumboFrames
```

## enableOpenSsh
<a name="ec2launch-v2-enableopenssh"></a>

Active Windows OpenSSH et ajoute la clé publique de l’instance au dossier des clés autorisées.

*Fréquence* — Une fois

*AllowedStages* — `[PreReady, UserData]`

*Entrées* — Aucune

*Exemple*

L’exemple suivant montre comment activer OpenSSH sur une instance et ajouter la clé publique de l’instance au dossier des clés autorisées. Cette configuration fonctionne uniquement sur les instances exécutant Windows Server 2019 et versions ultérieures.

```
task: enableOpenSsh
```

## executeProgram
<a name="ec2launch-v2-executeprogram"></a>

Exécute un programme avec des arguments facultatifs et une fréquence spécifiée.

**Étapes :** vous pouvez exécuter la tâche `executeProgram` pendant les étapes `PreReady`, `PostReady` et `UserData`.

**Fréquence :** configurable, voir *Entrées*.

**Inputs**  
Cette section contient un ou plusieurs programmes à exécuter pour **executeProgram** la tâche (entrées). Chaque entrée peut inclure les paramètres configurables suivants :    
**fréquence (chaîne)**  
(Obligatoire) Spécifiez exactement l’une des valeurs suivantes :  
+ `once`
+ `always`  
**chemin (chaîne)**  
(Obligatoire) Le chemin d’accès au fichier de l’exécutable à exécuter.  
**arguments (liste de chaînes)**  
(Facultatif) Liste d’arguments séparés par des virgules à fournir au programme en entrée.  
**runAs (chaîne)**  
(Obligatoire) Doit être défini sur `localSystem`

**Output**  
Toutes les tâches écrivent des entrées du fichier journal dans le fichier `agent.log`. Les résultats supplémentaires de la tâche `executeProgram` sont stockés séparément dans un dossier nommé dynamiquement, comme suit :  
`%LocalAppData%\Temp\EC2Launch#########\outputfilename.tmp`  
Le chemin exact vers les fichiers de sortie est inclus dans le fichier `agent.log`, par exemple :  

```
Program file is created at: C:\Windows\system32\config\systemprofile\AppData\Local\Temp\EC2Launch123456789\ExecuteProgramInputs.tmp
Output file is created at: C:\Windows\system32\config\systemprofile\AppData\Local\Temp\EC2Launch123456789\Output.tmp
Error file is created at: C:\Windows\system32\config\systemprofile\AppData\Local\Temp\EC2Launch123456789\Err.tmp
```
**Fichiers de sortie pour la tâche `executeProgram`**    
`ExecuteProgramInputs.tmp`  
Contient le chemin de l’exécutable et tous les paramètres d’entrée que la tâche `executeProgram` lui transmet lors de son exécution.  
`Output.tmp`  
Contient la sortie d’exécution du programme exécuté par la tâche `executeProgram`.  
`Err.tmp`  
Contient les messages d’erreur d’exécution du programme exécuté par la tâche `executeProgram`.

**Exemples**  
Les exemples suivants montrent comment exécuter un fichier exécutable à partir d’un répertoire local sur une instance avec la tâche `executeProgram`.  
**Exemple 1 : configuration d’un exécutable avec un seul argument**  
Cet exemple montre une tâche `executeProgram` qui exécute un exécutable d’installation en mode silencieux.

```
task: executeProgram
  inputs:
    - frequency: always
      path: C:\Users\Administrator\Desktop\setup.exe
      arguments: ['-quiet']
```
**Exemple 2 : exécutable VLC avec deux arguments**  
Cet exemple montre une tâche `executeProgram` qui exécute un fichier exécutable VLC avec deux arguments transmis en tant que paramètres d’entrée.

```
task: executeProgram
  inputs:
    - frequency: always
      path: C:\vlc-3.0.11-win64.exe 
      arguments: ['/L=1033','/S']
      runAs: localSystem
```

## executeScript
<a name="ec2launch-v2-executescript"></a>

Exécute un script avec des arguments facultatifs et une fréquence spécifiée. Le comportement des scripts dépend du mode dans lequel l’agent exécute les scripts : en ligne ou détaché.

En ligne (par défaut)  
L'agent EC2 Launch v2 exécute les scripts un par un (`detach: false`). Il s’agit du paramètre par défaut.  
Lorsque votre script en ligne émet une commande **reset** ou **sysprep**, il s’exécute immédiatement et réinitialise l’agent. La tâche en cours se termine, puis l’agent s’arrête sans exécuter d’autres tâches.  
Par exemple, si la tâche qui émet la commande aurait été suivie d’une tâche `startSsm` (incluse par défaut après l’exécution des données utilisateur), la tâche ne s’exécute pas et le service Systems Manager ne démarre jamais.

Detached  
L'agent EC2 Launch v2 exécute des scripts simultanément avec d'autres tâches (`detach: true`).  
Lorsque votre script détaché émet une commande **reset** ou **sysprep**, ces commandes attendent que l’agent ait terminé leur exécution avant de s’exécuter. Les tâches exécutées après executeScript se poursuivront.

**Étapes :** vous pouvez exécuter la tâche `executeScript` pendant les étapes `PreReady`, `PostReady` et `UserData`.

**Fréquence :** configurable, voir *Entrées*.

**Inputs**  
Cette section contient un ou plusieurs scripts pour la **executeScript** tâche à exécuter (entrées). Chaque entrée peut inclure les paramètres configurables suivants :    
**fréquence (chaîne)**  
(Obligatoire) Spécifiez exactement l’une des valeurs suivantes :  
+ `once`
+ `always`  
**type (chaîne)**  
(Obligatoire) Spécifiez exactement l’une des valeurs suivantes :  
+ `batch`
+ `powershell`  
**arguments (liste de chaînes)**  
(Facultatif) Une liste d'arguments de chaîne à transmettre au shell (et non au PowerShell script). Ce paramètre n’est pas pris en charge pour `type: batch`. Si aucun argument n'est transmis, EC2 Launch v2 ajoute l'argument suivant par défaut : `-ExecutionPolicy Unrestricted`  
**contenu (chaîne)**  
(Obligatoire) Contenu du script.  
**runAs (chaîne)**  
(Obligatoire) Spécifiez exactement l’une des valeurs suivantes :  
+ `admin`
+ `localSystem`  
**detach (booléen)**  
(Facultatif) L'agent EC2 Launch v2 exécute par défaut les scripts un par un (`detach: false`). Pour exécuter le script en même temps que d’autres tâches, définissez la valeur sur `true` (`detach: true`).  
Codes de sortie de script (y compris `3010`) n’ont aucun effet lorsque `detach` a la valeur `true`.

**Output**  
Toutes les tâches écrivent des entrées du fichier journal dans le fichier `agent.log`. Les résultats supplémentaires du script exécuté par la tâche `executeScript` sont stockés séparément dans un dossier nommé dynamiquement, comme suit :  
`%LocalAppData%\Temp\EC2Launch#########\outputfilename.ext`  
Le chemin exact vers les fichiers de sortie est inclus dans le fichier `agent.log`, par exemple :  

```
Program file is created at: C:\Windows\system32\config\systemprofile\AppData\Local\Temp\EC2Launch123456789\UserScript.ps1
Output file is created at: C:\Windows\system32\config\systemprofile\AppData\Local\Temp\EC2Launch123456789\Output.tmp
Error file is created at: C:\Windows\system32\config\systemprofile\AppData\Local\Temp\EC2Launch123456789\Err.tmp
```
**Fichiers de sortie pour la tâche `executeScript`**    
`UserScript.ext`  
Contient le script exécuté par la tâche `executeScript`. L’extension de fichier dépend du type de script que vous avez spécifié dans le paramètre `type` de la tâche `executeScript`, comme suit :  
+ Si le type est `batch`, l’extension du fichier est `.bat`.
+ Si le type est `powershell`, l’extension du fichier est `.ps1`.  
`Output.tmp`  
Contient la sortie d’exécution du script exécuté par la tâche `executeScript`.  
`Err.tmp`  
Contient les messages d’erreur d’exécution du script exécuté par la tâche `executeScript`.

**Exemples**  
Les exemples suivants montrent comment exécuter un script en ligne avec la tâche `executeScript`.  
**Exemple 1 : fichier texte de sortie Hello World**  
Cet exemple montre une `executeScript` tâche qui exécute un PowerShell script pour créer un fichier texte « Hello world » sur le `C:` lecteur.

```
task: executeScript
  inputs:
    - frequency: always
      type: powershell
      runAs: admin
      content: |-
        New-Item -Path 'C:\PowerShellTest.txt' -ItemType File
        Set-Content 'C:\PowerShellTest.txt' "Hello world"
```
**Exemple 2 : exécuter deux scripts**  
Cet exemple montre que la tâche `executeScript` peut exécuter plusieurs scripts et que le type de script ne doit pas nécessairement correspondre.
Le premier script (`type: powershell`) écrit un résumé des processus en cours d’exécution sur l’instance dans un fichier texte situé sur le lecteur `C:`.  
Le second script (`batch`) écrit les informations système dans le fichier `Output.tmp`.  

```
task: executeScript
  inputs:
    - frequency: always
      type: powershell
      runAs: localSystem
      content: |
        Get-Process | Out-File -FilePath C:\Process.txt
    - frequency: always
      type: batch
      runAs: localSystem
      content: |
        systeminfo
```
**Exemple 3 : configuration d’un système idempotent avec redémarrages**  
Cet exemple montre une tâche `executeScript` qui exécute un script idempotent pour effectuer la configuration système suivante avec un redémarrage entre chaque étape :
+ Renommer l’ordinateur.
+ Joindre l’ordinateur au domaine.
+ Activer Telnet.
Le script garantit que chaque opération ne s’exécute qu’une seule fois. Cela empêche une boucle de redémarrage et rend le script idempotent.  

```
task: executeScript
  inputs:
    - frequency: always
      type: powershell
      runAs: localSystem
      content: |-
        $name = $env:ComputerName
        if ($name -ne $desiredName) {
          Rename-Computer -NewName $desiredName
          exit 3010
        }
        $domain = Get-ADDomain
        if ($domain -ne $desiredDomain) 
        {
          Add-Computer -DomainName $desiredDomain
          exit 3010
        }
        $telnet = Get-WindowsFeature -Name Telnet-Client
        if (-not $telnet.Installed)
        {
          Install-WindowsFeature -Name "Telnet-Client"
          exit 3010 
        }
```

## extendRootPartition
<a name="ec2launch-v2-extendrootpartition"></a>

Étend le volume racine pour utiliser tout l’espace disponible sur le disque.

*Fréquence* — Une fois

*AllowedStages* — `[Boot]`

*Entrées* — Aucune

*Exemple* 

```
task: extendRootPartition
```

## initializeVolume
<a name="ec2launch-v2-initializevolume"></a>

Initialise les volumes vides attachés à l’instance afin qu’ils soient activés et partitionnés. L’agent de lancement ignore l’initialisation s’il détecte que le volume n’est pas vide. Un volume est considéré comme vide si les 4 premiers Kio d’un volume sont vides ou si un volume n’a pas de [disposition de lecteur reconnaissable par Windows](https://learn.microsoft.com/en-us/windows/win32/api/winioctl/ns-winioctl-drive_layout_information_ex).

Le paramètre d’entrée `letter` est toujours appliqué lors de l’exécution de cette tâche, que le lecteur soit déjà initialisé ou non.

La tâche `initializeVolume` effectue ensuite les actions suivantes.
+ Définissez les attributs de disque `offline` et `readonly` sur False.
+ Créez une partition. Si aucun type de partition n’est spécifié dans le paramètre d’entrée `partition`, les valeurs par défaut suivantes s’appliquent :
  + Si la taille de disque est inférieure à 2 To, définissez le type de partition sur `mbr`.
  + Si la taille de disque est supérieure ou égale à 2 To, définissez le type de partition sur `gpt`.
+ Formatez le volume au format NTFS.
+ Définissez l’étiquette du volume comme suit :
  + Utilisez la valeur du paramètre d’entrée `name`, le cas échéant.
  + Si le volume est éphémère et qu’aucun nom n’a été spécifié, définissez l’étiquette du volume sur `Temporary Storage Z`.
+ Si le volume est éphémère (SSD ou HDD, pas Amazon EBS), créez un fichier `Important.txt` à la racine du volume avec le contenu suivant :

  ```
  This is an 'Instance Store' disk and is provided at no additional charge.
  
  *This disk offers increased performance since it is local to the host
  *The number of Instance Store disks available to an instance vary by instance type
  *DATA ON THIS DRIVE WILL BE LOST IN CASES OF IMPAIRMENT OR STOPPING THE INSTANCE. PLEASE ENSURE THAT ANY IMPORTANT DATA IS BACKED UP FREQUENTLY
  
  For more information, please refer to: Stockage de blocs temporaires pour les instances EC2.
  ```
+ Réglez la lettre de lecteur sur la valeur spécifiée dans le paramètre d’entrée `letter`.

**Étapes :** vous pouvez exécuter la tâche `initializeVolume` pendant les étapes `PostReady` et `UserData`.

**Fréquence :** toujours.

**Inputs**  
Vous pouvez configurer les paramètres d’exécution comme suit :    
**appareils (liste de cartes)**  
(Condition) Configuration pour chaque appareil initialisé par l’agent de lancement. Ceci est obligatoire si le paramètre d’entrée `initialize` est défini sur `devices`.  
+ **appareil (chaîne, obligatoire)** : identifie l’appareil lors de la création de l’instance. Par exemple, `xvdb`, `xvdf` ou `\dev\nvme0n1`.
+ **lettre (chaîne, facultatif)** : un caractère. La lettre de lecteur à attribuer.
+ **nom (chaîne, facultatif)** : le nom de volume à attribuer.
+ **partition (chaîne, facultatif)** : spécifiez l’une des valeurs suivantes pour le type de partition à créer, ou laissez l’agent de lancement par défaut en fonction de la taille du volume :
  + mbr
  + gpt  
**initialiser (chaîne)**  
(Obligatoire) Spécifiez exactement l’une des valeurs suivantes :  
+ `all`
+ `devices`

**Exemples**  
Voici des exemples de configurations d’entrée pour la tâche `initializeVolume`.  
**Exemple 1 : Initialiser deux volumes sur une instance**  
Cet exemple montre une tâche `initializeVolume` qui initialise deux volumes secondaires sur une instance. L’appareil nommé `DataVolume2` dans l’exemple est éphémère.

```
task: initializeVolume
inputs:
  initialize: devices
  devices:
  - device: xvdb
    name: DataVolume1
    letter: D
    partition: mbr
  - device: /dev/nvme0n1
    name: DataVolume2
    letter: E
    partition: gpt
```

**Exemple 2 : Initialiser des volumes EBS attachés à une instance**  
Cet exemple montre une tâche `initializeVolume` qui initialise tous les volumes EBS vides qui sont attachés à l’instance.

```
task: initializeVolume
inputs:
  initialize: all
```

## optimizeEna
<a name="ec2launch-v2-optimizeena"></a>

Optimise les paramètres ENA en fonction du type d’instance actuel ; peut redémarrer l’instance.

*Fréquence* — Toujours

*AllowedStages* — `[PostReady, UserData]`

*Entrées* — Aucune

*Exemple* 

```
task: optimizeEna
```

## setAdminAccount
<a name="ec2launch-v2-setadminaccount"></a>

Définit les attributs du compte d’administrateur par défaut créé sur la machine locale.

*Fréquence* — Une fois

*AllowedStages* — `[PreReady]`

*Entrées* — 

`name` : nom (chaîne) du compte administrateur

`password` : (carte)

`type` : stratégie (chaîne) pour définir le mot de passe, comme `static`, `random` ou `doNothing`

`data` : (chaîne) stocke les données si le champ `type` est statique

*Exemple*

```
task: setAdminAccount
inputs:
  name: Administrator
  password:
  type: random
```

## setDnsSuffix
<a name="ec2launch-v2-setdnssuffix"></a>

Ajoute les suffixes DNS à la liste des suffixes de recherche. Seuls les suffixes qui n’existent pas déjà sont ajoutés à la liste. Pour plus d'informations sur la manière dont les agents de lancement définissent les suffixes DNS, consultez [Configurer le suffixe DNS pour les agents de lancement EC2 Windows](launch-agents-set-dns.md).

*Fréquence* — Toujours

*AllowedStages* — `[PreReady]`

*Entrées* — 

`suffixes` : (liste de chaînes) liste d’un ou plusieurs suffixes DNS valides ; les variables de substitution valides sont `$REGION` et `$AZ`

*Exemple*

```
task: setDnsSuffix
inputs:
  suffixes:
  - $REGION.ec2-utilities.amazonaws.com
```

## setHostName
<a name="ec2launch-v2-sethostname"></a>

Définit le nom d'hôte de l'ordinateur sur une chaîne personnalisée ou, si elle n'`hostName`est pas spécifiée, sur l' IPv4 adresse privée.

*Fréquence* — Toujours

*AllowedStages* — `[PostReady, UserData]`

*Entrées* — 

`hostName` : (chaîne) nom d’hôte facultatif, qui doit être formaté comme suit.
+ Doit contenir 15 caractères ou moins
+ Doit contenir uniquement des caractères alphanumériques (a-z, A-Z, 0-9) et tiret (-).
+ Ne doit pas être entièrement composé de caractères numériques.

`reboot` : (booléen) indique si un redémarrage est autorisé lorsque le nom d’hôte est modifié

*Exemple*

```
task: setHostName
inputs:
  reboot: true
```

## setWallpaper
<a name="ec2launch-v2-setwallpaper"></a>

Crée le fichier de raccourci `setwallpaper.lnk` dans le dossier de démarrage de chaque utilisateur existant, sauf pour `Default User`. Ce fichier de raccourci s’exécute lorsque l’utilisateur se connecte pour la première fois après le démarrage de l’instance. Il configure l’instance avec un fond d’écran personnalisé qui affiche les attributs de l’instance.

Le chemin du fichier de raccourci est le suivant :

```
$env:SystemDrive/Users/<user>/AppData/Roaming/Microsoft/Windows/Start Menu/Programs/Startup/setwallpaper.lnk
```

**Note**  
Lorsque vous supprimez la tâche `setWallpaper`, ce fichier de raccourci n’est pas supprimé. Pour de plus amples informations, veuillez consulter [La tâche `setWallpaper` n’est pas activée, mais le fond d’écran se réinitialise au redémarrage](ec2launchv2-troubleshooting.md#ec2launchv2-troubleshooting-wallpaper-resets).

**Étapes :** vous pouvez configurer le fond d’écran au cours des étapes `PreReady` et `UserData`.

**Fréquence :** `always`

**Configuration du fond d’écran**  
Vous pouvez utiliser les paramètres suivants pour configurer votre fond d’écran.

**Inputs**  
Paramètres d’entrée que vous fournissez et attributs que vous pouvez définir pour configurer votre fond d’écran :    
**chemin (chaîne)**  
(Obligatoire) Le chemin du nom du fichier image au format .jpg local à utiliser pour votre image de fond d’écran.  
**attributs (liste de chaînes)**  
(Facultatif) Vous pouvez ajouter un ou plusieurs des attributs suivants à votre fond d’écran :  
+ `architecture`
+ `availabilityZone`
+ `hostName`
+ `instanceId`
+ `instanceSize`
+ `privateIpAddress`
+ `publicIpAddress`
+ `ipv6Address`  
**instanceTags**  
(Facultatif) Vous pouvez utiliser exactement l’une des options suivantes pour ce paramètre.  
+ **AllTags**(string) — Ajoutez toutes les balises d'instance à votre fond d'écran.

  ```
  instanceTags: AllTags
  ```
+ **instanceTags** (liste de chaînes) – Spécifiez une liste de noms de balises d’instance à ajouter à votre fond d’écran. Par exemple :

  ```
  instanceTags:
    - Tag 1
    - Tag 2
  ```

**Exemple**  
L’exemple suivant montre les entrées de configuration du fond d’écran qui définissent le chemin du fichier pour l’image d’arrière-plan du fond d’écran, ainsi que les balises d’instance nommées `Tag 1` et `Tag 2`, ainsi que les attributs qui incluent le nom d’hôte, l’ID d’instance et les adresses IP privées et publiques de l’instance.

```
task: setWallpaper
inputs:
  path: C:\ProgramData\Amazon\EC2Launch\wallpaper\Ec2Wallpaper.jpg
  attributes:
  - hostName
  - instanceId
  - privateIpAddress
  - publicIpAddress
  instanceTags:
  - Tag 1
  - Tag 2
```

**Note**  
Vous devez activer les balises dans les métadonnées pour afficher les balises sur le fond d’écran. Pour plus d’informations sur les balises et métadonnées d’instance, consultez [Affichez les balises pour vos instances EC2 à l'aide des métadonnées d'instance](work-with-tags-in-IMDS.md).

## startSsm
<a name="ec2launch-v2-startssm"></a>

Démarrez le service Systems Manager (SSM) après Sysprep.

*Fréquence* — Toujours

*AllowedStages* — `[PostReady, UserData]`

*Entrées* — Aucune

*Exemple*

```
task: startSsm
```

## sysprep
<a name="ec2launch-v2-task-sysprep"></a>

Réinitialise l’état du service, met à jour `unattend.xml`, désactive RDP et exécute Sysprep. Cette tâche s’exécute uniquement une fois que toutes les autres tâches sont terminées.

*Fréquence* — Une fois

*AllowedStages* — `[UserData]`

*Entrées* — 

`clean` : (booléen) nettoie les journaux d’instance avant d’exécuter Sysprep

`shutdown` : (booléen) arrête l’instance après avoir exécuté Sysprep

*Exemple*

```
task: sysprep
inputs:
clean: true
shutdown: true
```

## writeFile
<a name="ec2-launch-v2-writefile"></a>

Écrit un fichier vers une destination.

*Fréquence* — voir *Entrées*

*AllowedStages* — `[PostReady, UserData]`

*Entrées* — 

`frequency` : (chaîne) `once` ou `always`

`destination` : (chaîne) chemin vers lequel écrire le contenu

`content` : (chaîne) texte à écrire dans la destination

*Exemple*

```
task: writeFile
inputs:
  - frequency: once
  destination: C:\Users\Administrator\Desktop\booted.txt
  content: Windows Has Booted
```