3.8 Pair Actions

-pair

Performs operations on a pair. When it is used without other pair action options, all pairs on the server are listed.

Syntax

DswCli.exe -pair 
         [pair_action] 
         [-pairId]
         [pair_option]
         [authentication_parameters]

Each of the following pair actions are described below:

-add
-modify
-delete
-addExcludeIncludePaths
-removeExcludeIncludePaths
-associate
-disassociate
-detail
-execute
-move

For information about how to provide the servername and login credentials that are needed to connect to the server that you want to manage, see Section 3.3, Authentication Parameters.

3.8.1 Pair Parameters

This section describes the following common pair parameters:

-description

Specifies a textual description of the pair. The description is optional.

Syntax

-description="text"

Example

-description="Department A user files"
-pairId

Specifies the pair identifier. You can provide the pair name, or provide the GUID of the pair. A GUID is automatically assigned by Dynamic File Services when you create a pair.

Syntax

-pairId=<"pairname"|"GUID">

Examples

-pairId="myPair"

-pairId="42e0064d-0b2c-4bb3-9825-bfa82999720e"

3.8.2 Add a Pair

-add

The -add action creates the pair with the desired name and stores the configuration in the XML file in the C:\ProgramData\Dynamic File Services\Pairs folder.

IMPORTANT:Before you issue a command to create a pair, make sure your system meets the requirements in Pair Requirements in the Dynamic File Services 2.1 Administration Guide.

Syntax
DswCli.exe -pair -add
         -name=<"pairname">
         -primarypath=<"path">
         -secondaryPath=<"path">
         [-description=<"text">]
         [-pairType=<"standard"|"retention">]
         [-secondaryCloud=<cloudId>]
         [-reviewUsers=user1[,user2,...]]
         [-reviewGroups=group1[,group2,...]]
         [authentication_parameters] 

You must specify a name for the pair, a primary path, and a secondary path. You can optionally specify a description of the pair. If the pairType option is not specified, the default is "standard".

For a standard pair, the primary path is a local path. The secondary path can be a local path or the UNC (Universal Naming Convention) path of a remote share. The standard pair provides a merged view of data in the two locations. You must create a network share for the primary path in order to provide a merged view of the data for users.

IMPORTANT:Use the Microsoft Network Sharing tool to create a network share on the primary path of a standard pair. Users connect to the network share by mapping a local drive letter on their workstations to the network share. All user access takes place through the share.

For a retention pair, the primary path and secondary path can be a local path or the UNC path of a remote share. In combination with the -secondaryCloud option, the secondary path of a retention pair can alternatively be a relative path for storage in a predefined cloud account. A retention pair type does not have a merged view.

If you specify a UNC path for remote shares, the share must already exist before you run the command. To set up a share in an Active Directory environment, you must do the following:

  • Create the remote network share.

  • Publish the share in Active Directory.

  • Add the Dynamic File Services Storage Rights group to the remote share and give the group all permissions.

After you create a pair, you should verify that the pair setup is correct before you grant users access to the pair or before you run policies on the pair.

Data is not moved between the primary path and secondary path until you associate the policy with one or more policies, or until you move a specified list of files or folders by using the move command. For information about creating policies, see Section 3.9.2, Add a Policy. For information about moving specified files or folders, see Section 3.8.14, Move a List of Files or Folders in a Pair.

Add Pair Parameters
-name

Specifies the pair name. The name must be unique on the Dynamic File Services server that you are managing.

Syntax

-name=<"pairname">

Example

-name="myPair"
-pairType

Specifies whether the pair is a standard pair or retention pair. If this option is not specified, the default pair type is "standard".

Syntax

-pairType=<"standard"|"retention">

Example

-pairType="standard"
-primaryPath

Specifies the path of the primary location in the pair. The drive or path must already exist; the command does not create it for you.

For a retention pair type, the primary path can also be a UNC path to a remote share. The parser requires that you use 3 backslashes (\\\) instead of two to precede the server name, such as \\\remoteservername\share.

Syntax

-primaryPath=<"path">

Examples

-primaryPath="C:\users"

-primaryPath="M:"

-primaryPath="K:\engineering\proj1" 

-primaryPath="\\\remoteserver\share"
-secondaryPath

Specifies the path of the secondary location in the pair. The drive or path must already exist; the command does not create it for you.

The secondary path can also be a UNC path to a remote share. The parser requires that you use three backslashes (\\\) instead of two to precede the server name, such as \\\remoteserver\share.

For a retention pair, the secondary path can be in a cloud storage account. Use the secondaryCloud parameter to specify the cloud account to use. Specify the secondary path value as a relative path in the cloud account, and use forward slashes (/).

Syntax

-secondaryPath=<"path">

Examples

-secondaryPath="L:\users\media"

-secondaryPath="N:\m_sh"

-secondaryPath="Z:\project1"

-secondaryPath="\\\remoteserver\share"

-secondaryPath="/project_a/dir1/" -secondaryCloud="dropbox1"
-secondaryCloud

Specifies the cloud ID of a predefined cloud account that is used as the secondary location in a retention pair. The cloud account and path must already exist; the command does not create it for you.

Syntax

-secondaryCloud=<"cloud_account_name"|"GUID">

This option is used in combination with the -secondaryPath option.

Examples

-secondaryCloud="dropbox1" -secondaryPath="/Scott3/"

-secondaryCloud="cloudme1" -secondaryPath="/Scott4/"

-secondaryCloud="box1" -secondaryPath="/Scott5/"
-reviewGroups

Specifies one or more comma-separated Active Directory group names or local group names. Use this option to specify groups that are authorized to review retained data for a retention pair. Separate group names with a comma and no spaces.

Syntax

-reviewGroups=<"group1[,group2,...]">

Example

-reviewGroups=finance,deptA
-reviewUsers

Specifies one or more comma-separated Active Directory user names or local user names. Use this option to specify users that are authorized to review retained data for a retention pair. Separate user names with a comma and no spaces.

Syntax

-reviewUsers=<"user1[,user2,...]">

Example

-reviewUsers=bob,tom,sally
Add Pair Examples
Example: Create a Standard Pair
DswCli.exe -servername=localhost -u=Administrator -p=novell 
        ‑pair 
        ‑add 
        -name="myPair" 
        ‑primaryPath="e:\PrimaryPath"
        ‑secondaryPath="f:\SecondaryPath" 
        -pairType="standard"

This command uses the user credentials of the Administrator user to log you in to the server where you are running the command. You can also provide the credentials of a user who is a member of the Dynamic File Services group. It creates a standard pair named myPair on the server. The pair’s primary path is the e:\PrimaryPath directory. The pair’s secondary path is the f:\SecondaryPath directory. No files are moved until you create a policy for the pair, and associate the policy to the pair. Users access a share on the primary path to see a merged view of the data.

Example: Create a Standard Pair with a Description
DswCli.exe -servername=localhost -u=Administrator -p=novell 
        ‑pair 
        ‑add 
        -name="ProjectA" 
        ‑primaryPath="e:\PrimaryPath"
        ‑secondaryPath="f:\SecondaryPath" 
        ‑description=”Project A management files”

This command uses the user credentials of the Administrator user to log you in to the server where you are running the command. You can also provide the credentials of a user who is a member of the Dynamic File Services group. It creates a standard pair named ProjectA. It uses the optional description field to provide more information about the pair. The pair’s primary path is the e:\PrimaryPath directory. The pair’s secondary path is the f:\SecondaryPath directory. No files are moved until you create a policy for the pair, and associate the policy to the pair. The default pair type of "standard" is used. Users access a share on the primary path to see a merged view of the data.

Example: Create a Retention Pair
DswCli.exe -servername=localhost -u=Administrator -p=novell 
        ‑pair 
        ‑add 
        -name="retentionPair" 
        ‑primaryPath="e:\PrimaryPath"
        ‑secondaryPath="s:\SecondaryPath" 
        -pairType="retention"
        -reviewGroups=finance,deptA
        -reviewUsers=bob

This command uses the credentials of the Administrator user to log you in to the server where you are running the command. You can also provide the credentials of a user who is a member of the Dynamic File Services group. It creates a retention pair named retentionPair on the server. The pair’s primary path is the e:\PrimaryPath directory. The pair’s secondary path is the s:\SecondaryPath directory. No files are moved until you create a policy for the pair, and associate the policy to the pair. A merged view is not available for retention pairs. Users can view and access only the data on the primary path.

The finance group, deptA group, and bob user name are specified as reviewers for the pair’s retained data.

Example: Create Retention Pairs with a Secondary Path in a Cloud
DswCli.exe -servername=localhost -u=Administrator -p=novell 
        -pair -add 
        -name=dropbox1_scott3
        -description="Dropbox for Scott - project 3" 
        -pairType=retention 
        -primaryPath=c:\projects\data\p3 
        -secondaryCloud=dropbox1 
        -secondaryPath="/Scott3/"

DswCli.exe -servername=localhost -u=Administrator -p=novell 
        -pair -add 
        -name=cloudme1_scott4 
        -description="CloudMe for Scott - project 4" 
        -pairType=retention 
        -primaryPath=c:\projects\data\p4 
        -secondaryCloud=cloudme1 
        -secondaryPath="/Scott4/"

DswCli.exe -servername=localhost -u=Administrator -p=novell 
       -pair -add 
       -name=box1_scott5
       -description="Box for Scott - project 5" 
       -pairType=retention 
       -primaryPath=c:\projects\data\p5 
       -secondaryCloud=box1 
       -secondaryPath="/Scott5/"

3.8.3 Modify a Pair

-modify

The -modify action modifies a specified pair and stores the new configuration the pair’s XML file in the C:\ProgramData\Dynamic File Services\Pairs folder.

Syntax
DswCli.exe -pair 
         -modify
         -pairId=<pairname|GUID>
         [-description=<"text">]
         [-addReviewUsers=user1[,user2,...]]
         [-addReviewGroups=group1[,group2,...]]
         [-deleteReviewUsers=user1[,user2,...]]
         [-deleteReviewGroups=group1[,group2,...]]
         [authentication_parameters] 

To modify a pair, the required parameters are pair, modify, and pairId. You can modify the description for a pair. For a retention pair, you can also add or remove user names and group names as reviewers of its retained data.

Modify Pair Parameters
-addReviewGroups

Specifies one or more comma-separated Active Directory group names or local group names. Use this option to add group names to the list of authorized reviewers of retained data for a retention pair. Separate group names with a comma and no spaces.

Syntax

-addReviewGroups=<"group1[,group2,...]">

Example

-addReviewGroups="finance,deptA"
-addReviewUsers

Specifies one or more comma-separated Active Directory user names or local user names. Use this option to add user names to the list of authorized reviewers of retained data for a retention pair. Separate user names with a comma and no spaces.

Syntax

-addReviewUsers=<"user1[,user2,...]">

Example

-addReviewUsers="bob,john,sally"
-deleteReviewGroups

Specifies one or more comma-separated Active Directory group names or local group names. Use this option to remove group names from the list of authorized reviewers of retained data for a retention pair. Separate group names with a comma and no spaces.

Syntax

-deleetReviewGroups=<"group1[,group2,...]">

Example

-deleteReviewGroups="finance"
-deleteReviewUsers

Specifies one or more comma-separated Active Directory user names or local user names. Use this option to remove user names from the list of authorized reviewers of retained data for a retention pair. Separate user names with a comma and no spaces.

Syntax

-deleteReviewUsers=<"user1[,user2,...]">

Example

-addReviewUsers="bob,tom,sally"
Modify Pair Examples
Example: Add Reviewers for a Retention Pair
DswCli.exe -servername=localhost -u=Administrator -p=novell 
        ‑pair 
        ‑modify
        -pairId="myRetPair"
        -addReviewUsers="bob,john,sally"
        -addReviewGroup="deptB"

This command adds three user names and one group as reviewers of the retention pair MyRetPair.

Example: Remove Reviewers for a Retention Pair
DswCli.exe -servername=localhost -u=Administrator -p=novell 
        ‑pair 
        ‑modify
        -pairId="myRetPair"
        -removeReviewUsers="john"
        -removeReviewGroup="deptA"

This command removes one user name and one group as reviewers of the retention pair.

3.8.4 Unlink a Pair

-delete

The -delete action removes the specified pair from the pair database. All links between the two storage locations are removed. Data is not destroyed. The data is not moved; that is, the data remains in the location where it was stored when the delete command was executed. The associations between the pair and any policies are removed. After the pair is deleted, the users who are logged in to the network share on the primary location can see and access the data only on the primary location.

You must specify the pairId for the pair that you want to delete.

Syntax

The delete option unlinks the two paths in a pair. The files are not deleted.

DswCli.exe -pair -delete
         ‑pairId=<"pairname"|"GUID">
         [authentication_parameters] 

Example

The following -pair command deletes the pair named myPair on the specified server:

DswCli.exe -servername=localhost -u=Administrator -p=novell 
        ‑pair 
        -delete 
        -pairId="myPair"

3.8.5 Add Exclude/Include Paths to a Pair

-addExcludeIncludePaths

Adds exclude or include folder paths to a pair. It requires the -pairId, -paths, and -flags parameters. A given pair can include folders or exclude folders, but you cannot do both.

IMPORTANT:This option is not supported for pairs with remote primary paths.

Syntax
DswCli.exe -pair 
         -addExcludeIncludePaths 
         -pairId=<pairname|GUID>
         -flags=<"exclude"|"include"|"none">
         [-paths=<"path1[;path2;...]">]
         [authentication_parameters] 
Exclude/Include Paths Options
-flags

Specifies the flag to exclude or include the folders specified by the -paths option. A given pair can include folders or exclude folders, but you cannot do both.

Syntax

-flags=<"exclude"|"include"|"none">

Use this option in combination with the -paths option to add paths.

Use -flags=none without specifying a path to disable an existing exclude policy or include policy for the pair. Any existing paths remain defined. Use -flags=exclude or -flags=include without specifying a path to enable the policy again.

Examples

-flags="exclude" -paths="path1"
-flags="include" -paths="path1;path2;path3"

-flags="none"           ; Disable the feature without altering paths

-flags="include"        ; Enable the feature again
-paths

Specifies one or more subdirectory paths that are to be included or excluded from policies run on the pair. Separate multiple paths with a semi-colon and no spaces. Exclude/include paths should be set on subfolders and not at the root of the primary share.

The primary path must reside on a device that is attached to the Dynamic File Services server. Remote primary paths are not supported.

Syntax

-paths=<"path1[;path2;...]">

Use this option in combination with the -flags option to add paths. The flag’s value must match the pair’s current flag setting in order for any specified paths to be added.

Examples

-flags="exclude" -paths="path1"
-flags="include" -paths="path1;path2;path3"
-flags="exclude" -paths="C:\primary\subdir1;C:\primary\subdir2"
Add Exclude/Include Paths Examples
DswCli.exe -servername=localhost -u=Administrator -p=novell
         ‑pair 
         -addExcludeIncludePaths 
         -pairId="myPair" 
         -flags="exclude" 
         -paths="path1"
DswCli.exe -servername=localhost -u=Administrator -p=novell
         ‑pair 
         -addExcludeIncludePaths 
         -pairId="myPair" 
         -flags="include" 
         -paths="path1;path2;path3"

3.8.6 Delete Exclude/Include Paths from a Pair

-deleteExcludeIncludePaths

Removes exclude or include folder paths from a pair. It requires the -pairId, -paths, and -flags options.

Syntax
DswCli.exe -pair 
         -deleteExcludeIncludePaths 
         -pairId=<pairname|GUID>
         -flags=<"exclude"|"include"|"none">
         [-paths=<"path1[;path2;...]">]
         [authentication_parameters]
Exclude/Include Paths Options
-flags

Specifies the flag setting to use when removing the paths specified by the -paths option. A given pair can include folders or exclude folders, but you cannot do both.

Syntax

-flags=<exclude|include|none>

Use this option in combination with the -paths option to remove paths.

Use -flags=none without specifying a path to disable an existing exclude policy or include policy for the pair. Any existing paths remain defined. Use -flags=exclude or -flags=include without specifying a path to enable the policy again.

Examples

-flags="exclude" -paths="path1"
-flags="include" -paths="path1;path2;path3"
-paths

Specifies one or more directory paths to be removed from the excluded paths list or the included paths list on the pair. Separate multiple paths with a semi-colon and no spaces.

Syntax

-paths=<"dirpath[;dirpath;...]">

Use this option in combination with the -flags option to remove paths. The flag’s value must match the pair’s current flag setting in order for any specified paths to be removed.

Examples

-flags="exclude" -paths="path1"
-flags="include" -paths="path1;path2;path3"
-flags="exclude" -paths="C:\primary\subdir1;C:\primary\subdir2"
Delete Exclude/Include Paths Examples
DswCli.exe -servername=localhost -u=Administrator -p=novell
         ‑pair 
         -deleteExcludeIncludePaths 
         -pairId="myPair" 
         -flags="exclude" 
         -paths="path1"
DswCli.exe -servername=localhost -u=Administrator -p=novell
         ‑pair 
         -deleteExcludeIncludePaths 
         -pairId="myPair" 
         -flags="include" 
         -paths="path1;path2;path3"

3.8.7 Associate a Pair and Policy

-associate

Associates a policy with a retention pair or standard pair. When the -policyId parameter is used with the -associate action and a -pairId parameter, it links the specified pair and policy. Policies that move data in either direction can be associated with retention pairs and standard pairs. Policies that move data from secondary to primary can be associated only with standard pairs.

Syntax

DswCli.exe -pair -associate
        ‑pairId=<"pairname"|"GUID" > 
        -policyId=<"policyname"|"GUID">
        [authentication_parameters] 

Example

The following -pair command associates the pair named myPair with the policy named myPolicy on the specified server:

DswCli.exe -servername=localhost -u=Administrator -p=novell
         ‑pair 
         -associate 
         -pairId="myPair" 
         ‑policyId="myPolicy"

3.8.8 Disassociate a Pair and Policy

-disassociate

Disassociates a policy from a retention pair or standard pair. When the -policyId parameter is used with the -disassociate action and a -pairId parameter, it unlinks the specified pair and policy.

Syntax

DswCli.exe -pair 
         -disassociate 
         ‑pairId=<"pairname"|"GUID"> 
         -policyId=<"policyname"|"GUID">
         [authentication_parameters] 

Example

The following -pair command removes the association between the pair named myPair and the policy named myPolicy on the specified server:

DswCli.exe -servername=localhost -u=Administrator -p=novell
         ‑pair 
         -disassociate 
         -pairId="myPair" 
         ‑policyId="myPolicy"

3.8.9 Associate a Review Schedule to a Retention Pair

-associate

When the -scheduleId option is used with the -associate action, it links a specified retention pair to a specified review schedule. You must specify the pairId parameter for the retention pair that you want to associate, and the scheduleId parameter for the review schedule.

Syntax

DswCli.exe -pair 
         -associate
         ‑pairId=<"pairname"|"GUID"> 
         -scheduleId=<"schedulename"|"GUID">
        [authentication_parameters] 

Example

The following -pair command associates the pair named myRetentionPair with the schedule named quarterly_1st on the specified server:

DswCli.exe -servername=localhost -u=Administrator -p=novell 
         ‑pair 
         -associate 
         -pairId="myPair" 
         ‑scheduleId="quarterly_1st"

3.8.10 Disassociate a Review Schedule from a Retention Pair

-disassociate

When the -scheduleId option is used with the -disassociate action, it removes the association between a specified retention pair and schedule. You must specify the pairId parameter for the pair. You must specify the scheduleId parameter for the review schedule that you no longer want to be associated with the retention pair.

Syntax

DswCli.exe -pair 
         -disassociate 
         ‑pairId=<"pairname"|"GUID"> 
         -scheduleId=<"schedulename"|"GUID">
         [authentication_parameters] 

Example

The following -pair command removes the association between the retention pair named myRetentionPair and the schedule named quarterly_1st on the specified server:

DswCli.exe -servername=localhost -u=Administrator -p=novell
         ‑pair 
         -disassociate 
         -pairId="myPair"
         ‑scheduleId="quarterly_1st"

3.8.11 List Pairs

(no action options)

When the -pair action option is used without any other parameters or options, all pairs on the server are listed.

Syntax

DswCli.exe -pair
        [authentication_parameters]

Example

The following -pair command displays a list of all pairs on the specified server:

DswCli.exe -servername=localhost -u=Administrator -p=novell 
         ‑pair 

3.8.12 List Details for a Pair

-detail

The -detail action provides a details for a pair, including its pair type, paths, and associated policies. For retention pairs, the associated schedule is also identified. You must specify the pairId parameter for the pair.

Syntax

DswCli.exe -pair 
          -detail
          ‑pairId=<"pairname"|"GUID">
          [authentication_parameters]

Example

The following -pair command lists details for the pair named myPair on the specified server:

DswCli.exe -servername=localhost -u=Administrator -p=novell 
         ‑pair 
         -detail 
         -pairId="myPair"

3.8.13 Execute a List of Policies on a Pair

-execute, -run

The -execute action causes all policies defined in the specified policy ID list to be executed for the specified pair. You must specify the pairId parameter for the pair. Use the -policyIdList parameter to list one or more policies to run. If the policy list is not specified, all policies run that are associated with the specified pair.

The -run option is supported as an alias.

Syntax

DswCli.exe -pair 
         -execute ‑pairId=<"pairname"|"GUID"> 
         [-policyIdList=<"policy1[,policy2,...]">]
         [authentication_parameters] 

Example

The following -pair command runs the DynamicFS policies named myPolicy and myPolicy100 for the pair named myPair on the specified server:

DswCli.exe -servername=localhost -u=Administrator -p=novell 
         ‑pair 
         -execute 
         -pairId="myPair" 
         ‑policyIdList="myPolicy,myPolicy100"

3.8.14 Move a List of Files or Folders in a Pair

-move

Moves a specified list of files or a list of folders from primary to secondary. You can specify either a list of files, a list of folders, or both lists in a single move command.

Syntax
DswCli.exe -pair
         ‑pairId=<"pairname"|"GUID"> 
         -move < -folderList | -fileList | -folderList -fileList >
         -primaryToSecondary | -secondaryToPrimary
        [authentication_parameters] 
Description

The -move option requires the following options be specified:

  • -pair
  • ‑pairId=<pairname|GUID>
  • -primaryToSecondary | -secondaryToPrimary
  • -folderList, -folderList, or both of these options

The -pairId option identifies the pair where the folders are located.

The -primaryToSecondary or -secondaryToPrimary option specifies which direction to move the folders and their content. The -secondaryToPrimary option is valid on a standard pair, but not on a retention pair.

In the -fileList option, the ListOfFilesToMove.txt file contains a list of files to move.

In the -folderList option, the ListOfFoldersToMove.txt file contains a list of folders to move. The folders and all of their contents are moved.

List Options
-fileList

Specifies the path to a text file that contains a list of the files that are to be moved. This parameter is used in combination with the -move option.

Syntax

-fileList=<"path\ListOfFilesToMove.txt">

Each entry in the file provides path and filename of the file to be moved. Each file appears on a different line in the text file. The file path is relative to the pair’s root directory.

For example, the following lines are sample text content for the ListOfFilesToMove.txt file:

\file.jpg   
\dir1\anotherfile.avi
\dir2\dir3\file3.bmp

Examples

-fileList="M:\primary\dir1\ListOfFilesToMove.txt"
-fileList="C:\dir1\movelist.txt"
-folderList

Specifies the path to a text file that contains a list of the files that are to be moved. This parameter is used in combination with the -move option.

Syntax

-folderList=<"path\ListOfFoldersToMove.txt">

Each entry in the file provides path of the folder to be moved. Each folder path appears on a different line in the text file. The folder path is relative to the pair’s root directory.

For example, the following lines are sample text content for the ListOfFoldersToMove.txt file:

\home\user1\music   
\dir1\archive
\dir2\dir3\reports

Examples

-folderList="M:\primary\dir1\ListOfFoldersToMove.txt"
-folderList="C:\dir1\movelist.txt"
Move Files or Folders Examples
Example: Move a List of Folders

The following -pair -move command moves the folders that are specified in the ListOfFoldersToMove.txt file from the primary location to the secondary location of the myPair pair. All of the contents in each folder are also moved.

DswCli.exe -servername=localhost -u=Administrator -p=novell 
         ‑pair -pairId="myPair" 
         -move
         -folderList="c:\dir1\ListOfFoldersToMove.txt
         -primaryToSecondary
Example: Move a List of Files and a List of Folders

The following -pair -move command moves the folders that are specified in the ListOfFoldersToMove.txt file from the primary location to the secondary location of the myPair pair. All of the contents in each folder are also moved. The command also moves the individual files that are separately specified in the ListOfFilesToMove.txt file.

DswCli.exe -servername=localhost -u=Administrator -p=novell 
         ‑pair -pairId="myPair" 
         -move
         -folderList="c:\dir1\ListOfFoldersToMove.txt
         -fileList="c:\dir1\ListOfFilesToMove.txt
         -primaryToSecondary