TMF
1.8.13554-preview
Helper module to manage Azure AD Tenants as code.
Minimum PowerShell version
5.1
See the version list below for details.
Installation Options
Owners
Copyright
Copyright (c) 2021 Volkswagen Group Services GmbH
Package Details
Author(s)
- Azure Team VWGS
Tags
Functions
Beautify-TmfTestResult New-TmfConfiguration Get-TmfRequiredScope Get-TmfActiveConfiguration Get-TmfDesiredConfiguration Activate-TmfConfiguration Deactivate-TmfConfiguration Load-TmfConfiguration Test-TmfTenant Invoke-TmfTenant Register-TmfStringMapping Register-TmfGroup Test-TmfGroup Invoke-TmfGroup Register-TmfNamedLocation Test-TmfNamedLocation Invoke-TmfNamedLocation Register-TmfAgreement Test-TmfAgreement Invoke-TmfAgreement Register-TmfConditionalAccessPolicy Test-TmfConditionalAccessPolicy Invoke-TmfConditionalAccessPolicy Test-TmfEntitlementManagement Invoke-TmfEntitlementManagement Register-TmfAccessPackageCatalog Test-TmfAccessPackageCatalog Invoke-TmfAccessPackageCatalog Register-TmfAccessPackage Test-TmfAccessPackage Invoke-TmfAccessPackage Register-TmfAccessPackageAssignmentPolicy Test-TmfAccessPackageAssignmentPolicy Invoke-TmfAccessPackageAssignmentPolicy Invoke-TmfAdministrativeUnit Test-TmfAdministrativeUnit Register-TmfAdministrativeUnit Register-TmfAccessPackageResource Test-TmfAccessPackageResource Invoke-TmfAccessPackageResource Register-TmfAccessReview Test-TmfAccessReview Invoke-TmfAccessReview Register-TmfDirectoryRole Test-TmfDirectoryRole Invoke-TmfDirectoryRole Register-TmfRoleManagementPolicy Test-TmfRoleManagementPolicy Invoke-TmfRoleManagementPolicy Register-TmfRoleManagementPolicyRuleTemplate Register-TmfRoleAssignment Test-TmfRoleAssignment Invoke-TmfRoleAssignment Register-TmfRoleDefinition Test-TmfRoleDefinition Invoke-TmfRoleDefinition Test-TmfRoleManagement Invoke-TmfRoleManagement Register-TmfAuthenticationFlowsPolicy Test-TmfAuthenticationFlowsPolicy Invoke-TmfAuthenticationFlowsPolicy Register-TmfAuthenticationMethodsPolicy Test-TmfAuthenticationMethodsPolicy Invoke-TmfAuthenticationMethodsPolicy Register-TmfAuthenticationStrengthPolicy Test-TmfAuthenticationStrengthPolicy Invoke-TmfAuthenticationStrengthPolicy Register-TmfAuthorizationPolicy Test-TmfAuthorizationPolicy Invoke-TmfAuthorizationPolicy Register-TmfAppManagementPolicy Test-TmfAppManagementPolicy Invoke-TmfAppManagementPolicy Register-TmfTenantAppManagementPolicy Test-TmfTenantAppManagementPolicy Invoke-TmfTenantAppManagementPolicy Test-TmfPolicy Invoke-TmfPolicy Invoke-TmfAttributeSet Register-TmfAttributeSet Test-TmfAttributeSet Invoke-TmfCustomSecurityAttributeAllowedValue Register-TmfCustomSecurityAttributeAllowedValue Test-TmfCustomSecurityAttributeAllowedValue Invoke-TmfCustomSecurityAttributeDefinition Register-TmfCustomSecurityAttributeDefinition Test-TmfCustomSecurityAttributeDefinition Invoke-TmfCustomSecurityAttribute Test-TmfCustomSecurityAttribute Register-TmfAuthenticationContextClassReference Test-TmfAuthenticationContextClassReference Invoke-TmfAuthenticationContextClassReference
Dependencies
FileList
- TMF.nuspec
- LICENSE
- internal\data\configuration\customSecurityAttributes\customSecurityAttributeDefinitions\customSecurityAttributeDefinitions.json
- internal\data\configuration\customSecurityAttributes\customSecurityAttributeDefinitions\example.md
- TMF.psd1
- internal\data\configuration\directoryRoles\directoryRoles.json
- TMF.psm1
- internal\data\configuration\directoryRoles\example.md
- en-us\about_TMF.help.txt
- internal\data\configuration\entitlementManagement\accessPackageCatalogs\accessPackageCatalogs.json
- en-us\strings.psd1
- internal\data\configuration\entitlementManagement\accessPackageCatalogs\example.md
- functions\readme.md
- internal\data\configuration\entitlementManagement\accessPackages\accessPackages.json
- functions\accessReviews\Invoke-TmfAccessReview.ps1
- internal\data\configuration\entitlementManagement\accessPackages\example.md
- functions\accessReviews\Register-TmfAccessReview.ps1
- internal\data\configuration\groups\example.md
- functions\accessReviews\Test-TmfAccessReview.ps1
- internal\data\configuration\groups\groups.json
- functions\administrativeUnits\Invoke-TmfAdministrativeUnit.ps1
- internal\data\configuration\namedLocations\example.md
- functions\administrativeUnits\Register-TmfAdministrativeUnit.ps1
- internal\data\configuration\namedLocations\namedLocations.json
- functions\administrativeUnits\Test-TmfAdministrativeUnit.ps1
- internal\data\configuration\policies\appManagementPolicies\appManagementPolicies.json
- functions\agreements\Invoke-TmfAgreement.ps1
- internal\data\configuration\policies\appManagementPolicies\example.md
- functions\agreements\Register-TmfAgreement.ps1
- internal\data\configuration\policies\authenticationFlowsPolicies\authenticationFlowsPolicies.json
- functions\agreements\Test-TmfAgreement.ps1
- internal\data\configuration\policies\authenticationFlowsPolicies\example.md
- functions\authenticationContextClassReferences\Invoke-TmfAuthenticationContextClassReference.ps1
- internal\data\configuration\policies\authenticationMethodsPolicies\authenticationMethodsPolicies.json
- functions\authenticationContextClassReferences\Register-TmfAuthenticationContextClassReference.ps1
- internal\data\configuration\policies\authenticationMethodsPolicies\example.md
- functions\authenticationContextClassReferences\Test-TmfAuthenticationContextClassReference.ps1
- internal\data\configuration\policies\authenticationStrengthPolicies\authenticationStrengthPolicies.json
- functions\conditionalAccessPolicies\Invoke-TmfConditionalAccessPolicy.ps1
- internal\data\configuration\policies\authenticationStrengthPolicies\example.md
- functions\conditionalAccessPolicies\Register-TmfConditionalAccessPolicy.ps1
- internal\data\configuration\policies\authorizationPolicies\authorizationPolicies.json
- functions\conditionalAccessPolicies\Test-TmfConditionalAccessPolicy.ps1
- internal\data\configuration\policies\authorizationPolicies\example.md
- functions\customSecurityAttributes\Invoke-TmfCustomSecurityAttribute.ps1
- internal\data\configuration\policies\tenantAppManagementPolicy\example.md
- functions\customSecurityAttributes\Test-TmfCustomSecurityAttribute.ps1
- internal\data\configuration\policies\tenantAppManagementPolicy\tenantAppManagementPolicy.json
- functions\customSecurityAttributes\attributeSets\Invoke-TmfAttributeSet.ps1
- internal\data\configuration\roleManagement\roleAssignments\example.md
- functions\customSecurityAttributes\attributeSets\Register-TmfAttributeSet.ps1
- internal\data\configuration\roleManagement\roleAssignments\roleAssignments.json
- functions\customSecurityAttributes\attributeSets\Test-TmfAttributeSet.ps1
- internal\data\configuration\roleManagement\roleDefinitions\example.md
- functions\customSecurityAttributes\customSecurityAttributeAllowedValues\Invoke-TmfCustomSecurityAttributeAllowedValue.ps1
- internal\data\configuration\roleManagement\roleDefinitions\roleDefinitions.json
- functions\customSecurityAttributes\customSecurityAttributeAllowedValues\Register-TmfCustomSecurityAttributeAllowedValue.ps1
- internal\data\configuration\roleManagement\roleManagementPolicies\example.md
- functions\customSecurityAttributes\customSecurityAttributeAllowedValues\Test-TmfCustomSecurityAttributeAllowedValue.ps1
- internal\data\configuration\roleManagement\roleManagementPolicies\roleManagementPolicies.json
- functions\customSecurityAttributes\customSecurityAttributeDefinitions\Invoke-TmfCustomSecurityAttributeDefinition.ps1
- internal\data\configuration\roleManagement\roleManagementPolicyRuleTemplates\example.md
- functions\customSecurityAttributes\customSecurityAttributeDefinitions\Register-TmfCustomSecurityAttributeDefinition.ps1
- internal\data\configuration\roleManagement\roleManagementPolicyRuleTemplates\roleManagementPolicyRuleTemplates.json
- functions\customSecurityAttributes\customSecurityAttributeDefinitions\Test-TmfCustomSecurityAttributeDefinition.ps1
- internal\data\configuration\stringMappings\stringMappings.json
- functions\directoryRoles\Invoke-TmfDirectoryRole.ps1
- internal\data\configuration\users\example.md
- functions\directoryRoles\Register-TmfDirectoryRole.ps1
- internal\data\configuration\users\users.json
- functions\directoryRoles\Test-TmfDirectoryRole.ps1
- internal\functions\Get-ActionColor.ps1
- functions\entitlementManagement\Invoke-TmfEntitlementManagement.ps1
- internal\functions\New-TestResult.ps1
- functions\entitlementManagement\Test-TmfEntitlementManagement.ps1
- internal\functions\readme.md
- functions\entitlementManagement\accessPackageAssignmentPolicies\Invoke-TmfAccessPackageAssignmentPolicy.ps1
- internal\functions\Test-AzureConnection.ps1
- functions\entitlementManagement\accessPackageAssignmentPolicies\Register-TmfAccessPackageAssignmentPolicy.ps1
- internal\functions\Test-GraphConnection.ps1
- functions\entitlementManagement\accessPackageAssignmentPolicies\Test-TmfAccessPackageAssignmentPolicy.ps1
- internal\functions\check\Check-SubjectSetRequiresUpdate.ps1
- functions\entitlementManagement\accessPackageCatalogs\Invoke-TmfAccessPackageCatalog.ps1
- internal\functions\check\Check-UserSetRequiresUpdate.ps1
- functions\entitlementManagement\accessPackageCatalogs\Register-TmfAccessPackageCatalog.ps1
- internal\functions\compare\Compare-AppManagementPolicyRestrictions.ps1
- functions\entitlementManagement\accessPackageCatalogs\Test-TmfAccessPackageCatalog.ps1
- internal\functions\compare\Compare-AssignedLicenses.ps1
- functions\entitlementManagement\accessPackageResource\Invoke-TmfAccessPackageResource.ps1
- internal\functions\compare\Compare-Hashtable.ps1
- functions\entitlementManagement\accessPackageResource\Register-TmfAccessPackageResource.ps1
- internal\functions\compare\Compare-PolicyProperties.ps1
- functions\entitlementManagement\accessPackageResource\Test-TmfAccessPackageResource.ps1
- internal\functions\compare\Compare-ResourceList.ps1
- functions\entitlementManagement\accessPackages\Invoke-TmfAccessPackage.ps1
- internal\functions\resolve\readme.md
- functions\entitlementManagement\accessPackages\Register-TmfAccessPackage.ps1
- internal\functions\resolve\Resolve-AccessPackage.ps1
- functions\entitlementManagement\accessPackages\Test-TmfAccessPackage.ps1
- internal\functions\resolve\Resolve-AccessPackageCatalog.ps1
- functions\general\Activate-TmfConfiguration.ps1
- internal\functions\resolve\Resolve-AccessPackageResource.ps1
- functions\general\Beautify-TmfTestResult.ps1
- internal\functions\resolve\Resolve-AdministrativeUnit.ps1
- functions\general\Deactivate-TmfConfiguration.ps1
- internal\functions\resolve\Resolve-Agreement.ps1
- functions\general\Get-TmfActiveConfiguration.ps1
- internal\functions\resolve\Resolve-Application.ps1
- functions\general\Get-TmfDesiredConfiguration.ps1
- internal\functions\resolve\Resolve-ApplicationId.ps1
- functions\general\Get-TmfRequiredScope.ps1
- internal\functions\resolve\Resolve-AuthenticationStrengthPolicy.ps1
- functions\general\Invoke-TmfTenant.ps1
- internal\functions\resolve\Resolve-AzureRoleDefinition.ps1
- functions\general\Load-TmfConfiguration.ps1
- internal\functions\resolve\Resolve-ConnectedOrganization.ps1
- functions\general\New-TmfConfiguration.ps1
- internal\functions\resolve\Resolve-CustomSecurityAttributeDefinition.ps1
- functions\general\Test-TmfTenant.ps1
- internal\functions\resolve\Resolve-DirectoryObject.ps1
- functions\groups\Invoke-TmfGroup.ps1
- internal\functions\resolve\Resolve-DirectoryRole.ps1
- functions\groups\Register-TmfGroup.ps1
- internal\functions\resolve\Resolve-DirectoryRoleDefinition.ps1
- functions\groups\Test-TmfGroup.ps1
- internal\functions\resolve\Resolve-DirectoryRoleTemplate.ps1
- functions\namedLocations\Invoke-TmfNamedLocation.ps1
- internal\functions\resolve\Resolve-Group.ps1
- functions\namedLocations\Register-TmfNamedLocation.ps1
- internal\functions\resolve\Resolve-NamedLocation.ps1
- functions\namedLocations\Test-TmfNamedLocation.ps1
- internal\functions\resolve\Resolve-ResourceGroup.ps1
- functions\policies\Invoke-TmfPolicy.ps1
- internal\functions\resolve\Resolve-ServicePrincipal.ps1
- functions\policies\Test-TmfPolicy.ps1
- internal\functions\resolve\Resolve-String.ps1
- functions\policies\appManagementPolicies\Invoke-TmfAppManagementPolicy.ps1
- internal\functions\resolve\Resolve-SubscribedSku.ps1
- functions\policies\appManagementPolicies\Register-TmfAppManagementPolicy.ps1
- internal\functions\resolve\Resolve-Subscription.ps1
- functions\policies\appManagementPolicies\Test-TmfAppManagementPolicy.ps1
- internal\functions\resolve\Resolve-User.ps1
- functions\policies\authenticationFlowsPolicies\Invoke-TmfAuthenticationFlowsPolicy.ps1
- internal\functions\templateFunctions\Assert-TemplateFunctions.ps1
- functions\policies\authenticationFlowsPolicies\Register-TmfAuthenticationFlowsPolicy.ps1
- internal\functions\validate\readme.md
- functions\policies\authenticationFlowsPolicies\Test-TmfAuthenticationFlowsPolicy.ps1
- internal\functions\validate\Validate-AccessReviewPattern.ps1
- functions\policies\authenticationMethodsPolicies\Invoke-TmfAuthenticationMethodsPolicy.ps1
- internal\functions\validate\Validate-AccessReviewRange.ps1
- functions\policies\authenticationMethodsPolicies\Register-TmfAuthenticationMethodsPolicy.ps1
- internal\functions\validate\Validate-AccessReviewRecurrence.ps1
- functions\policies\authenticationMethodsPolicies\Test-TmfAuthenticationMethodsPolicy.ps1
- internal\functions\validate\Validate-AccessReviewReviewers.ps1
- functions\policies\authenticationStrengthPolicies\Invoke-TmfAuthenticationStrengthPolicy.ps1
- internal\functions\validate\Validate-AccessReviewScope.ps1
- functions\policies\authenticationStrengthPolicies\Register-TmfAuthenticationStrengthPolicy.ps1
- internal\functions\validate\Validate-AccessReviewSettings.ps1
- functions\policies\authenticationStrengthPolicies\Test-TmfAuthenticationStrengthPolicy.ps1
- internal\functions\validate\Validate-ApplicationEnforcedRestrictionsSessionControl.ps1
- functions\policies\authorizationPolicies\Invoke-TmfAuthorizationPolicy.ps1
- internal\functions\validate\Validate-ApprovalStage.ps1
- functions\policies\authorizationPolicies\Register-TmfAuthorizationPolicy.ps1
- internal\functions\validate\Validate-AssignedLicense.ps1
- functions\policies\authorizationPolicies\Test-TmfAuthorizationPolicy.ps1
- internal\functions\validate\Validate-AssignmentReviewPattern.ps1
- functions\policies\tenantAppManagementPolicies\Invoke-TmfTenantAppManagementPolicy.ps1
- internal\functions\validate\Validate-AssignmentReviewRange.ps1
- functions\policies\tenantAppManagementPolicies\Register-TmfTenantAppManagementPolicy.ps1
- internal\functions\validate\Validate-AssignmentReviewRecurrence.ps1
- functions\policies\tenantAppManagementPolicies\Test-TmfTenantAppManagementPolicy.ps1
- internal\functions\validate\Validate-AssignmentReviewSchedule.ps1
- functions\roleManagement\Invoke-TmfRoleManagement.ps1
- internal\functions\validate\Validate-AssignmentReviewSettings.ps1
- functions\roleManagement\Test-TmfRoleManagement.ps1
- internal\functions\validate\Validate-CloudAppSecuritySessionControl.ps1
- functions\roleManagement\roleAssignments\Invoke-TmfRoleAssignment.ps1
- internal\functions\validate\Validate-ConditionalAccessApplicationFilter.ps1
- functions\roleManagement\roleAssignments\Register-TmfRoleAssignment.ps1
- internal\functions\validate\Validate-ConditionalAccessApplications.ps1
- functions\roleManagement\roleAssignments\Test-TmfRoleAssignment.ps1
- internal\functions\validate\Validate-ConditionalAccessAuthenticationStrength.ps1
- functions\roleManagement\roleDefinitions\Invoke-TmfRoleDefinition.ps1
- internal\functions\validate\Validate-ConditionalAccessConditionSet.ps1
- functions\roleManagement\roleDefinitions\Register-TmfRoleDefinition.ps1
- internal\functions\validate\Validate-ConditionalAccessDevices.ps1
- functions\roleManagement\roleDefinitions\Test-TmfRoleDefinition.ps1
- internal\functions\validate\Validate-ConditionalAccessFilter.ps1
- functions\roleManagement\roleManagementPolicies\Invoke-TmfRoleManagementPolicy.ps1
- internal\functions\validate\Validate-ConditionalAccessGrantControls.ps1
- functions\roleManagement\roleManagementPolicies\Register-TmfRoleManagementPolicy.ps1
- internal\functions\validate\Validate-ConditionalAccessLocations.ps1
- functions\roleManagement\roleManagementPolicies\Test-TmfRoleManagementPolicy.ps1
- internal\functions\validate\Validate-ConditionalAccessPlatforms.ps1
- functions\roleManagement\roleManagementPolicyRuleTemplates\Register-TmfRoleManagementPolicyRuleTemplate.ps1
- internal\functions\validate\Validate-ConditionalAccessSessionControls.ps1
- functions\stringMappings\Register-TmfStringMapping.ps1
- internal\functions\validate\Validate-ConditionalAccessUsers.ps1
- internal\data\configuration\accessReviews\accessReviews.json
- internal\functions\validate\Validate-PersistentBrowserSessionControl.ps1
- internal\data\configuration\accessReviews\example.md
- internal\functions\validate\Validate-RequestApprovalSettings.ps1
- internal\data\configuration\administrativeUnits\administrativeUnits.json
- internal\functions\validate\Validate-RequestorSettings.ps1
- internal\data\configuration\administrativeUnits\example.md
- internal\functions\validate\Validate-SignInFrequencySessionControl.ps1
- internal\data\configuration\agreements\agreements.json
- internal\functions\validate\Validate-SubjectSet.ps1
- internal\data\configuration\agreements\example.md
- internal\functions\validate\Validate-UserSet.ps1
- internal\data\configuration\agreements\files\Example Terms of Use.pdf
- internal\scripts\mappings.ps1
- internal\data\configuration\authenticationContextClassReferences\authenticationContextClassReferences.json
- internal\scripts\postimport.ps1
- internal\data\configuration\authenticationContextClassReferences\example.md
- internal\scripts\preimport.ps1
- internal\data\configuration\conditionalAccessPolicies\example.md
- internal\scripts\readme.md
- internal\data\configuration\conditionalAccessPolicies\policies.json
- internal\scripts\strings.ps1
- internal\data\configuration\customSecurityAttributes\attributeSets\attributeSets.json
- internal\scripts\variables.ps1
- internal\data\configuration\customSecurityAttributes\attributeSets\example.md
Version History
Version | Downloads | Last updated |
---|---|---|
1.9.19824 | 36 | 12/6/2024 |
1.9.19641-pr... | 25 | 11/29/2024 |
1.9.19562-pr... | 8 | 11/28/2024 |
1.9.19423-pr... | 12 | 11/26/2024 |
1.9.19380-pr... | 3 | 11/26/2024 |
1.9.19194-pr... | 29 | 11/18/2024 |
1.9.18417-pr... | 139 | 9/27/2024 |
1.9.18269-pr... | 43 | 9/16/2024 |
1.9.18225-pr... | 14 | 9/11/2024 |
1.9.18048-pr... | 23 | 9/2/2024 |
1.8.15753 | 958 | 6/4/2024 |
1.8.15740-pr... | 3 | 6/4/2024 |
1.8.15383-pr... | 18 | 5/22/2024 |
1.8.15189-pr... | 10 | 5/14/2024 |
1.8.15022-pr... | 41 | 4/29/2024 |
1.8.14800-pr... | 44 | 4/17/2024 |
1.8.14078-pr... | 4 | 4/4/2024 |
1.8.13554-pr... (current version) | 3 | 3/26/2024 |
1.7.12529 | 454 | 2/28/2024 |
1.7.12501-pr... | 6 | 2/27/2024 |
1.7.11317-pr... | 11 | 1/30/2024 |
1.7.10390-pr... | 6 | 12/20/2023 |
1.7.10335-pr... | 5 | 12/19/2023 |
1.7.9290-pre... | 9 | 11/21/2023 |
1.7.3487-pre... | 5 | 7/7/2023 |
1.6.2370 | 294 | 5/15/2023 |
1.6.2361-pre... | 5 | 5/15/2023 |
1.6.2339-pre... | 7 | 5/11/2023 |
1.6.2294-pre... | 10 | 5/3/2023 |
1.6.2290-pre... | 7 | 5/2/2023 |
1.6.2268-pre... | 5 | 4/21/2023 |
1.6.1861-pre... | 9 | 3/31/2023 |
1.6.1461-pre... | 64 | 12/16/2022 |
1.6.754-preview | 13 | 11/8/2022 |
1.6.649-preview | 14 | 10/28/2022 |
1.6.646-preview | 13 | 10/28/2022 |
1.6.643-preview | 13 | 10/27/2022 |
1.6.639-preview | 11 | 10/26/2022 |
1.6.597-preview | 36 | 10/6/2022 |
1.6.579-preview | 104 | 9/28/2022 |
1.5.493 | 375 | 7/20/2022 |
1.5.488-preview | 10 | 7/20/2022 |
1.5.482-preview | 10 | 7/19/2022 |
1.5.471-preview | 10 | 7/19/2022 |
1.5.467-preview | 10 | 7/19/2022 |
1.5.441-preview | 11 | 5/20/2022 |
1.5.437-preview | 10 | 5/20/2022 |
1.4.419-preview | 11 | 5/18/2022 |
1.4.305 | 177 | 3/29/2022 |
1.4.290-preview | 10 | 3/28/2022 |
1.4.287-preview | 10 | 3/28/2022 |
1.4.281-preview | 12 | 3/17/2022 |
1.4.262-preview | 13 | 3/7/2022 |
1.3.257 | 28 | 3/4/2022 |
1.3.205-preview | 11 | 2/18/2022 |
1.3.203-preview | 14 | 2/17/2022 |
1.3.195-preview | 11 | 2/14/2022 |
1.3.194-preview | 10 | 2/11/2022 |
1.3.192-preview | 11 | 2/10/2022 |
1.3.187-preview | 11 | 2/10/2022 |
1.3.186-preview | 11 | 2/9/2022 |
1.3.184-preview | 11 | 2/9/2022 |
1.3.181-preview | 11 | 2/8/2022 |
1.2.140 | 19 | 2/3/2022 |
1.2.121 | 16 | 1/28/2022 |
1.2.95 | 24 | 11/19/2021 |
1.2.94 | 13 | 11/18/2021 |
1.2.86 | 17 | 11/8/2021 |
1.1.84 | 16 | 10/6/2021 |
1.0.79 | 14 | 9/29/2021 |
1.0.78 | 13 | 9/28/2021 |
0.1.70 | 13 | 9/20/2021 |
0.1.69 | 18 | 9/17/2021 |
0.1.21 | 13 | 9/17/2021 |