diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..d4ab7bd --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,161 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [0.2.6] - 2025-12-21 + +### Added + +- Notion mobile app template +- VLC mobile app template +- VM-based dynamic groups (12 new groups for AVD, Windows 365, Hyper-V, VMware, VirtualBox, Parallels, QEMU/KVM) +- VM-based device filters (12 new filters matching the dynamic groups) +- Template-based device filter import (`Templates/Filters/` directory) +- Device filter templates organized by platform (Windows, macOS, iOS, Android) +- CHANGELOG.md + +### Changed + +- Refactored `Import-IntuneDeviceFilter` to use JSON templates instead of hardcoded definitions +- Dynamic Groups count increased from 31 to 43 +- Device Filters count increased from 12 to 24 +- Moved changelog from README.md to dedicated CHANGELOG.md + +## [0.2.5] - 2025-12-18 + +### Added + +- Dynamic enrollment profile discovery (auto-detects templates by @odata.type) +- Cross-platform logging to OS temp directories (Windows/macOS/Linux) +- Reports now written to OS temp directory by default + +## [0.2.4] - 2025-12-15 + +### Added + +- WhatsApp mobile app template +- Spotify mobile app template +- Microsoft Copilot mobile app template +- Power BI Desktop mobile app template +- Windows App mobile app template +- Windows Terminal mobile app template +- Windows Self-Deploy Autopilot Profile + +## [0.2.3] - 2025-12-10 + +### Added + +- Slack mobile app template +- Microsoft Teams mobile app template +- Windows, macOS, and Linux build test support + +### Changed + +- Updated module dependencies + +## [0.2.2] - 2025-12-05 + +### Fixed + +- Adobe Acrobat Reader DC JSON template updated to import properly + +## [0.2.1] - 2025-12-01 + +### Added + +- Static Groups support with `New-IntuneStaticGroup` function +- `-StaticGroups` parameter to `Invoke-IntuneHydration` +- `staticGroups` option to settings file imports section +- Static group templates in `Templates/StaticGroups/` directory +- Update Ring groups (Pilot, UAT) for Windows Update for Business +- Ownership groups (Corporate, BYOD) +- User-based groups (Intune Licensed Users, Update Ring Broad) +- Platform-specific ownership groups (macOS, iPhone, iPad, Android) +- Android Enterprise groups (Work Profile, Fully Managed) +- Windows ConfigMgr Managed devices group +- Mobile Apps support with `Import-IntuneMobileApp` function +- `-MobileApps` parameter to `Invoke-IntuneHydration` +- `mobileApps` option to settings file imports section +- `Scripts/New-MobileAppTemplate.ps1` helper to generate mobile app JSON templates +- Support for winGetApp (Microsoft Store), macOSMicrosoftEdgeApp, macOSOfficeSuiteApp, officeSuiteApp types +- Mobile app templates in `Templates/MobileApps/` directory +- PowerShell Gallery publishing support (`Install-Module IntuneHydrationKit`) +- `Invoke-IntuneHydration` as exported module function +- Backward compatible wrapper script for cloned repository users +- InvokeBuild-based build system for CI/CD +- GitHub Actions workflows for automated testing and publishing +- Pester tests for main orchestrator function + +### Changed + +- Expanded Dynamic Groups from 12 to 30+ + +### Fixed + +- PSScriptAnalyzer warnings (variable naming conflicts) +- Notification template deletion (now matches by template name) + +## [0.1.8] - 2025-11-20 + +### Added + +- Full parameter-based invocation support +- Two mutually exclusive modes: settings file (`-SettingsPath`) or parameters (`-TenantId` + auth) +- `-All` switch to enable all targets at once +- PowerShell `-WhatIf` preview mode support across invocation modes +- Parameters for all configuration options (tenant, auth, targets, reporting) +- Windows Driver Update license pre-check to avoid 403 errors +- `LicenseAssignment.Read.All` scope for license validation checks +- `Organization.Read.All` scope for tenant organization details + +## [0.1.4] - 2025-11-15 + +### Added + +- `DeviceManagementScripts.ReadWrite.All` scope for custom compliance scripts +- `Application.Read.All` scope for Conditional Access policies targeting specific applications +- `Policy.Read.All` scope for querying existing Conditional Access policies + +### Changed + +- Updated prerequisite checks to validate Graph permission scopes + +### Removed + +- MDM authority check from prerequisites + +## [0.1.3] - 2025-11-10 + +### Fixed + +- Image paths in README.md + +## [0.1.2] - 2025-11-08 + +### Changed + +- Refactored code structure for improved readability and maintainability + +## [0.1.1] - 2025-11-05 + +### Fixed + +- Module manifest with correct author and company details + +## [0.1.0] - 2025-11-01 + +### Added + +- OpenIntuneBaseline integration (auto-downloads latest policies) +- Compliance policy templates (Windows, macOS, iOS, Android, Linux) +- App protection policies (Android/iOS MAM) +- Dynamic groups and device filters +- Enrollment profiles (Autopilot, ESP) +- Conditional Access starter pack (always created disabled) +- Safe deletion (only removes kit-created objects) +- Multi-cloud support (Global, USGov, USGovDoD, Germany, China) +- WhatIf/dry-run mode +- Detailed logging and reporting \ No newline at end of file diff --git a/IntuneHydrationKit.psd1 b/IntuneHydrationKit.psd1 index 5966fc0..cf10138 100644 --- a/IntuneHydrationKit.psd1 +++ b/IntuneHydrationKit.psd1 @@ -2,7 +2,7 @@ # Module manifest for IntuneHydrationKit # Version number of this module - ModuleVersion = '0.2.5' + ModuleVersion = '0.2.6' # ID used to uniquely identify this module GUID = 'f755f41b-d5fc-48db-8b11-62b7ed71b1cd' @@ -89,12 +89,22 @@ # Release notes for this module ReleaseNotes = @' -## v0.2.5 +## v0.2.6 - **Features:** - - Dynamic enrollment profile discovery (auto-detects templates by @odata.type) - - Cross-platform logging to OS temp directories (Windows/macOS/Linux) - - Reports now written to OS temp directory by default + - Notion mobile app template + - VLC mobile app template + - VM-based dynamic groups (12 new groups for AVD, Windows 365, Hyper-V, VMware, VirtualBox, Parallels, QEMU/KVM) + - VM-based device filters (12 new filters matching the dynamic groups) + - Template-based device filter import (`Templates/Filters/` directory) + - Device filter templates organized by platform (Windows, macOS, iOS, Android) + - CHANGELOG.md + +- **Changes:** + - Refactored Import-IntuneDeviceFilter to use JSON templates instead of hardcoded definitions + - Dynamic Groups count increased from 31 to 43 + - Device Filters count increased from 12 to 24 + - Changelog moved to CHANGELOG.md following Keep a Changelog format '@ } } diff --git a/Public/Import-IntuneDeviceFilter.ps1 b/Public/Import-IntuneDeviceFilter.ps1 index 0c67b14..42d53ad 100644 --- a/Public/Import-IntuneDeviceFilter.ps1 +++ b/Public/Import-IntuneDeviceFilter.ps1 @@ -1,22 +1,47 @@ function Import-IntuneDeviceFilter { <# .SYNOPSIS - Creates device filters for Intune + Creates device filters for Intune from templates .DESCRIPTION - Creates device filters by manufacturer for each device OS platform (Windows, macOS, iOS/iPadOS, Android). - Creates 3 manufacturer filters per OS: Dell/HP/Lenovo for Windows, Apple for macOS/iOS. + Reads JSON templates from Templates/Filters and creates device filters via Graph API. + Filters can be used to target or exclude devices from policy assignments. + .PARAMETER TemplatePath + Path to the filter template directory (defaults to Templates/Filters) + .PARAMETER RemoveExisting + If specified, removes existing filters created by this kit instead of creating new ones .EXAMPLE Import-IntuneDeviceFilter + .EXAMPLE + Import-IntuneDeviceFilter -TemplatePath ./MyFilters #> [CmdletBinding(SupportsShouldProcess)] param( + [Parameter()] + [string]$TemplatePath, + [Parameter()] [switch]$RemoveExisting ) + if (-not $TemplatePath) { + $TemplatePath = Join-Path -Path $script:TemplatesPath -ChildPath "Filters" + } + + if (-not (Test-Path -Path $TemplatePath)) { + Write-Warning "Filter template directory not found: $TemplatePath" + return @() + } + + $templateFiles = Get-HydrationTemplates -Path $TemplatePath -Recurse -ResourceType "filter template" + + if (-not $templateFiles -or $templateFiles.Count -eq 0) { + Write-Warning "No filter templates found in: $TemplatePath" + return @() + } + $results = @() - # Get all existing filters first with pagination (OData filter on displayName not supported for this endpoint) + # Prefetch existing filters with pagination (OData filter on displayName not supported for this endpoint) # Store full filter objects so we can check descriptions later $existingFilters = @{} try { @@ -45,86 +70,6 @@ function Import-IntuneDeviceFilter { $existingFilterNames[$key] = $existingFilters[$key].Id } - # Define filters first so we know what to delete - $filterDefinitions = @( - # Windows filters by manufacturer - @{ - DisplayName = "Windows - Dell Devices" - Description = "Filter for Dell Windows devices" - Platform = "windows10AndLater" - Rule = '(device.manufacturer -eq "Dell Inc.")' - }, - @{ - DisplayName = "Windows - HP Devices" - Description = "Filter for HP Windows devices" - Platform = "windows10AndLater" - Rule = '(device.manufacturer -eq "HP") or (device.manufacturer -eq "Hewlett-Packard")' - }, - @{ - DisplayName = "Windows - Lenovo Devices" - Description = "Filter for Lenovo Windows devices" - Platform = "windows10AndLater" - Rule = '(device.manufacturer -eq "LENOVO")' - }, - # macOS filters - @{ - DisplayName = "macOS - Apple Devices" - Description = "Filter for Apple macOS devices" - Platform = "macOS" - Rule = '(device.manufacturer -eq "Apple")' - }, - @{ - DisplayName = "macOS - MacBook Devices" - Description = "Filter for MacBook devices" - Platform = "macOS" - Rule = '(device.model -startsWith "MacBook")' - }, - @{ - DisplayName = "macOS - iMac Devices" - Description = "Filter for iMac devices" - Platform = "macOS" - Rule = '(device.model -startsWith "iMac")' - }, - # iOS/iPadOS filters - @{ - DisplayName = "iOS - iPhone Devices" - Description = "Filter for iPhone devices" - Platform = "iOS" - Rule = '(device.model -startsWith "iPhone")' - }, - @{ - DisplayName = "iOS - iPad Devices" - Description = "Filter for iPad devices" - Platform = "iOS" - Rule = '(device.model -startsWith "iPad")' - }, - @{ - DisplayName = "iOS - Corporate Owned" - Description = "Filter for corporate-owned iOS/iPadOS devices" - Platform = "iOS" - Rule = '(device.deviceOwnership -eq "Corporate")' - }, - # Android filters - @{ - DisplayName = "Android - Samsung Devices" - Description = "Filter for Samsung Android devices" - Platform = "androidForWork" - Rule = '(device.manufacturer -eq "samsung")' - }, - @{ - DisplayName = "Android - Google Pixel Devices" - Description = "Filter for Google Pixel devices" - Platform = "androidForWork" - Rule = '(device.manufacturer -eq "Google")' - }, - @{ - DisplayName = "Android - Corporate Owned" - Description = "Filter for corporate-owned Android devices" - Platform = "androidForWork" - Rule = '(device.deviceOwnership -eq "Corporate")' - } - ) - # Remove existing filters if requested # SAFETY: Only delete filters that have "Imported by Intune-Hydration-Kit" in description if ($RemoveExisting) { @@ -158,38 +103,79 @@ function Import-IntuneDeviceFilter { return $results } - foreach ($filter in $filterDefinitions) { + # Process each template file + foreach ($templateFile in $templateFiles) { try { - # Check if filter already exists using pre-fetched list - if ($existingFilterNames.ContainsKey($filter.DisplayName)) { - Write-HydrationLog -Message " Skipped: $($filter.DisplayName)" -Level Info - $results += New-HydrationResult -Name $filter.DisplayName -Id $existingFilterNames[$filter.DisplayName] -Platform $filter.Platform -Action 'Skipped' -Status 'Already exists' + $template = Get-Content -Path $templateFile.FullName -Raw -Encoding utf8 | ConvertFrom-Json + + # Each template file contains a "filters" array + if (-not $template.filters) { + Write-Warning "Template missing 'filters' array: $($templateFile.FullName)" + $results += New-HydrationResult -Name $templateFile.Name -Path $templateFile.FullName -Type 'DeviceFilter' -Action 'Failed' -Status "Missing 'filters' array" continue } - if ($PSCmdlet.ShouldProcess($filter.DisplayName, "Create device filter")) { - $filterBody = @{ - displayName = $filter.DisplayName - description = "$($filter.Description) - Imported by Intune-Hydration-Kit" - platform = $filter.Platform - rule = $filter.Rule - roleScopeTags = @("0") + foreach ($filter in $template.filters) { + # Validate required properties + if (-not $filter.displayName) { + Write-Warning "Filter missing displayName in: $($templateFile.FullName)" + continue + } + if (-not $filter.platform) { + Write-Warning "Filter '$($filter.displayName)' missing platform in: $($templateFile.FullName)" + continue + } + if (-not $filter.rule) { + Write-Warning "Filter '$($filter.displayName)' missing rule in: $($templateFile.FullName)" + continue } - $newFilter = Invoke-MgGraphRequest -Method POST -Uri "beta/deviceManagement/assignmentFilters" -Body $filterBody -ErrorAction Stop + try { + # Check if filter already exists using pre-fetched list + if ($existingFilterNames.ContainsKey($filter.displayName)) { + Write-HydrationLog -Message " Skipped: $($filter.displayName)" -Level Info + $results += New-HydrationResult -Name $filter.displayName -Id $existingFilterNames[$filter.displayName] -Platform $filter.platform -Type 'DeviceFilter' -Action 'Skipped' -Status 'Already exists' + continue + } - Write-HydrationLog -Message " Created: $($filter.DisplayName)" -Level Info + if ($PSCmdlet.ShouldProcess($filter.displayName, "Create device filter")) { + # Build description with hydration kit marker + $description = if ($filter.description) { + "$($filter.description) - Imported by Intune-Hydration-Kit" + } else { + "Imported by Intune-Hydration-Kit" + } - $results += New-HydrationResult -Name $filter.DisplayName -Id $newFilter.id -Platform $filter.Platform -Action 'Created' -Status 'Success' - } - else { - Write-HydrationLog -Message " WouldCreate: $($filter.DisplayName)" -Level Info - $results += New-HydrationResult -Name $filter.DisplayName -Platform $filter.Platform -Action 'WouldCreate' -Status 'DryRun' + $filterBody = @{ + displayName = $filter.displayName + description = $description + platform = $filter.platform + rule = $filter.rule + roleScopeTags = @("0") + } + + $newFilter = Invoke-MgGraphRequest -Method POST -Uri "beta/deviceManagement/assignmentFilters" -Body $filterBody -ErrorAction Stop + + Write-HydrationLog -Message " Created: $($filter.displayName)" -Level Info + + $results += New-HydrationResult -Name $filter.displayName -Id $newFilter.id -Platform $filter.platform -Type 'DeviceFilter' -Action 'Created' -Status 'Success' + } + else { + Write-HydrationLog -Message " WouldCreate: $($filter.displayName)" -Level Info + $results += New-HydrationResult -Name $filter.displayName -Platform $filter.platform -Type 'DeviceFilter' -Action 'WouldCreate' -Status 'DryRun' + } + } + catch { + $errMessage = Get-GraphErrorMessage -ErrorRecord $_ + Write-HydrationLog -Message " Failed: $($filter.displayName) - $errMessage" -Level Warning + $results += New-HydrationResult -Name $filter.displayName -Platform $filter.platform -Type 'DeviceFilter' -Action 'Failed' -Status $errMessage + } } } catch { - Write-HydrationLog -Message " Failed: $($filter.DisplayName) - $_" -Level Warning - $results += New-HydrationResult -Name $filter.DisplayName -Platform $filter.Platform -Action 'Failed' -Status $_.Exception.Message + $errMessage = Get-GraphErrorMessage -ErrorRecord $_ + Write-HydrationLog -Message " Failed to parse: $($templateFile.Name) - $errMessage" -Level Warning + $results += New-HydrationResult -Name $templateFile.Name -Path $templateFile.FullName -Type 'DeviceFilter' -Action 'Failed' -Status "Parse error: $errMessage" } } diff --git a/README.md b/README.md index 57dc41f..873f7bb 100644 --- a/README.md +++ b/README.md @@ -46,13 +46,13 @@ The Intune Hydration Kit is a PowerShell module that bootstraps Microsoft Intune | Category | Count | Description | |----------|-------|-------------| -| Dynamic Groups | 31 | Device and user targeting groups (OS, manufacturer, Autopilot, ownership, licensing) | +| Dynamic Groups | 43 | Device and user targeting groups (OS, manufacturer, Autopilot, ownership, licensing, VMs) | | Static Groups | 4 | Update ring groups (Pilot, UAT, Broad) and assignment groups | -| Device Filters | 12 | Platform and manufacturer-based filters (Windows, macOS, iOS, Android) | -| Security Baselines | 70+ | OpenIntuneBaseline policies (Windows, macOS) | +| Device Filters | 24 | Platform, manufacturer, and VM-based filters (Windows, macOS, iOS, Android) | +| Security Baselines | 70+ | [OpenIntuneBaseline](https://github.com/SkipToTheEndpoint/OpenIntuneBaseline) policies (Windows, macOS) | | Compliance Policies | 10 | Multi-platform compliance (Windows, macOS, iOS, Android, Linux) | | App Protection | 8 | MAM policies following [Microsoft's App Protection Framework](https://learn.microsoft.com/en-us/intune/intune-service/apps/app-protection-framework) (Level 1-3 for iOS and Android) | -| Mobile Apps | 15 | Microsoft Store apps (Company Portal, Teams, Slack, Spotify, etc.) | +| Mobile Apps | 17 | Microsoft Store apps (Company Portal, Teams, Slack, Spotify, etc.) | | Enrollment Profiles | 3 | Autopilot deployment profiles + Enrollment Status Page | | Conditional Access | 14 | Starter pack policies (created disabled) | @@ -614,6 +614,7 @@ Intune-Hydration-Kit/ │ ├── Compliance/ │ ├── ConditionalAccess/ │ ├── DynamicGroups/ +│ ├── Filters/ │ ├── StaticGroups/ │ ├── MobileApps/ │ └── ... @@ -626,112 +627,7 @@ Intune-Hydration-Kit/ ## Changelog -### v0.2.5 - -- **Features:** - - Dynamic enrollment profile discovery (auto-detects templates by @odata.type) - - Cross-platform logging to OS temp directories (Windows/macOS/Linux) - - Reports now written to OS temp directory by default - -### v0.2.4 - -- **New Mobile Apps:** - - WhatsApp - - Spotify - - Microsoft Copilot - - Power BI Desktop - - Windows App - - Windows Terminal -- **New Enrollment Profile:** - - Windows Self-Deploy Autopilot Profile - -### v0.2.3 - -- **New Features:** - - Slack added to mobile app templates - - Microsoft Teams added to mobile app templates - - Updated module dependencies - - Added Windows, macOS, and Linux build test support - -### v0.2.2 - -- **Fix:** Adobe Acrobat Reader DC Json updated to import properly - -### v0.2.1 - -- **New Feature:** Static Groups support - - Added `New-IntuneStaticGroup` function for creating assigned security groups - - Added `-StaticGroups` parameter to `Invoke-IntuneHydration` - - Added `staticGroups` option to settings file imports section - - Static group templates stored in `Templates/StaticGroups/` directory - - Includes Update Ring groups (Pilot, UAT) for Windows Update for Business -- **New Feature:** Expanded Dynamic Groups (12 → 30+) - - Added ownership groups (Corporate, BYOD) - - Added user-based groups (Intune Licensed Users, Update Ring Broad) - - Added platform-specific ownership groups (macOS, iPhone, iPad, Android) - - Added Android Enterprise groups (Work Profile, Fully Managed) - - Added Windows ConfigMgr Managed devices group -- **New Feature:** Mobile Apps support - - Added `Import-IntuneMobileApp` function to import mobile app templates - - Added `-MobileApps` parameter to `Invoke-IntuneHydration` - - Added `mobileApps` option to settings file imports section - - Added `Scripts/New-MobileAppTemplate.ps1` helper to generate mobile app JSON templates - - Supports winGetApp (Microsoft Store), macOSMicrosoftEdgeApp, macOSOfficeSuiteApp, officeSuiteApp types - - Mobile app templates stored in `Templates/MobileApps/` directory -- **New Feature:** PowerShell Gallery publishing support - - Module now installable via `Install-Module IntuneHydrationKit` - - Added `Invoke-IntuneHydration` as exported module function - - Backward compatible wrapper script for users who clone the repository - - InvokeBuild-based build system for CI/CD - - GitHub Actions workflows for automated testing and publishing - - Added Pester tests for main orchestrator function - - Fixed PSScriptAnalyzer warnings (variable naming conflicts) - - Fixed notification template deletion (now matches by template name) - -### v0.1.8 - -- **New Feature:** Full parameter-based invocation support -- Two mutually exclusive modes: settings file (`-SettingsPath`) or parameters (`-TenantId` + auth) -- Added `-All` switch to enable all targets at once -- Added PowerShell `-WhatIf` preview mode support across invocation modes -- Added parameters for all configuration options (tenant, auth, targets, reporting) -- Settings file mode continues to work unchanged -- Added Windows Driver Update license pre-check to avoid 403 errors when importing driver update profiles without required licensing (Windows E3/E5, M365 Business Premium) -- Added `LicenseAssignment.Read.All` scope for license validation checks -- Added `Organization.Read.All` scope for tenant organization details - -### v0.1.4 - -- Added `DeviceManagementScripts.ReadWrite.All` scope for custom compliance scripts (required after Microsoft Graph API permission changes) -- Added `Application.Read.All` scope for Conditional Access policies targeting specific applications -- Added `Policy.Read.All` scope for querying existing Conditional Access policies -- Updated prerequisite checks to validate Graph permission scopes -- Removed MDM authority check from prerequisites - -### v0.1.3 - -- Fixed image paths in README.md - -### v0.1.2 - -- Refactored code structure for improved readability and maintainability - -### v0.1.1 - -- Updated module manifest with correct author and company details - -### v0.1.0 - Initial Release - -- OpenIntuneBaseline integration (auto-downloads latest policies) -- Compliance policy templates (Windows, macOS, iOS, Android, Linux) -- App protection policies (Android/iOS MAM) -- Dynamic groups and device filters -- Enrollment profiles (Autopilot, ESP) -- Conditional Access starter pack (always created disabled) -- Safe deletion (only removes kit-created objects) -- Multi-cloud support (Global, USGov, USGovDoD, Germany, China) -- WhatIf/dry-run mode -- Detailed logging and reporting +See [CHANGELOG.md](CHANGELOG.md) for a detailed history of changes. --- diff --git a/Templates/DynamicGroups/VM-Groups.json b/Templates/DynamicGroups/VM-Groups.json new file mode 100644 index 0000000..0e904f9 --- /dev/null +++ b/Templates/DynamicGroups/VM-Groups.json @@ -0,0 +1,64 @@ +{ + "groups": [ + { + "displayName": "Intune - Azure Virtual Desktop (AVD) Devices", + "description": "All Azure Virtual Desktop VMs (model contains Virtual Machine)", + "membershipRule": "(device.deviceModel -contains \"Virtual Machine\")" + }, + { + "displayName": "Intune - Azure Virtual Desktop (AVD) Named Devices", + "description": "Azure Virtual Desktop VMs with AVD- naming convention", + "membershipRule": "(device.deviceModel -contains \"Virtual Machine\") and (device.displayName -startsWith \"AVD-\")" + }, + { + "displayName": "Intune - Azure IaaS Virtual Machines", + "description": "All Azure IaaS VMs (Microsoft Corporation manufacturer with Virtual Machine model)", + "membershipRule": "(device.deviceManufacturer -eq \"Microsoft Corporation\") and (device.deviceModel -contains \"Virtual Machine\")" + }, + { + "displayName": "Intune - Windows 365 Cloud PC Devices", + "description": "All Windows 365 Cloud PC devices", + "membershipRule": "(device.deviceModel -contains \"Cloud PC\")" + }, + { + "displayName": "Intune - Microsoft Dev Box Devices", + "description": "All Microsoft Dev Box devices", + "membershipRule": "(device.deviceManufacturer -contains \"Microsoft\") and (device.deviceModel -contains \"Cloud\")" + }, + { + "displayName": "Intune - Hyper-V Virtual Machines", + "description": "Hyper-V VMs (on-prem or nested) - may overlap with Azure VMs", + "membershipRule": "(device.deviceManufacturer -eq \"Microsoft Corporation\") and (device.deviceModel -contains \"Virtual\")" + }, + { + "displayName": "Intune - VMware Virtual Machines", + "description": "All VMware VMs (ESXi, Horizon, Workstation, Fusion)", + "membershipRule": "(device.deviceManufacturer -contains \"VMware\")" + }, + { + "displayName": "Intune - VirtualBox Virtual Machines", + "description": "All Oracle VirtualBox VMs", + "membershipRule": "(device.deviceModel -contains \"VirtualBox\")" + }, + { + "displayName": "Intune - Parallels Desktop Virtual Machines", + "description": "All Parallels Desktop VMs", + "membershipRule": "(device.deviceManufacturer -contains \"Parallels\")" + }, + { + "displayName": "Intune - QEMU KVM Virtual Machines", + "description": "All QEMU/KVM VMs", + "membershipRule": "(device.deviceManufacturer -contains \"QEMU\") or (device.deviceModel -contains \"KVM\")" + }, + { + "displayName": "Intune - All Virtual Machines", + "description": "Catch-all for all virtual machines - use for reporting only", + "membershipRule": "(device.deviceModel -contains \"Virtual\") or (device.deviceModel -contains \"Cloud PC\") or (device.deviceManufacturer -contains \"VMware\") or (device.deviceManufacturer -contains \"Parallels\") or (device.deviceManufacturer -contains \"QEMU\")" + }, + { + "displayName": "Intune - Physical Devices Only", + "description": "Excludes all known virtual machines", + "membershipRule": "(device.deviceModel -notContains \"Virtual\") and (device.deviceModel -notContains \"Cloud PC\") and (device.deviceManufacturer -notContains \"VMware\") and (device.deviceManufacturer -notContains \"Parallels\") and (device.deviceManufacturer -notContains \"QEMU\")" + } + ] +} diff --git a/Templates/Filters/Android-Filters.json b/Templates/Filters/Android-Filters.json new file mode 100644 index 0000000..f31d746 --- /dev/null +++ b/Templates/Filters/Android-Filters.json @@ -0,0 +1,22 @@ +{ + "filters": [ + { + "displayName": "Android - Samsung Devices", + "description": "Filter for Samsung Android devices", + "platform": "androidForWork", + "rule": "(device.manufacturer -eq \"samsung\")" + }, + { + "displayName": "Android - Google Pixel Devices", + "description": "Filter for Google Pixel devices", + "platform": "androidForWork", + "rule": "(device.manufacturer -eq \"Google\")" + }, + { + "displayName": "Android - Corporate Owned", + "description": "Filter for corporate-owned Android devices", + "platform": "androidForWork", + "rule": "(device.deviceOwnership -eq \"Corporate\")" + } + ] +} diff --git a/Templates/Filters/Windows-Manufacturer-Filters.json b/Templates/Filters/Windows-Manufacturer-Filters.json new file mode 100644 index 0000000..bb319c6 --- /dev/null +++ b/Templates/Filters/Windows-Manufacturer-Filters.json @@ -0,0 +1,22 @@ +{ + "filters": [ + { + "displayName": "Windows - Dell Devices", + "description": "Filter for Dell Windows devices", + "platform": "windows10AndLater", + "rule": "(device.manufacturer -eq \"Dell Inc.\")" + }, + { + "displayName": "Windows - HP Devices", + "description": "Filter for HP Windows devices", + "platform": "windows10AndLater", + "rule": "(device.manufacturer -eq \"HP\") or (device.manufacturer -eq \"Hewlett-Packard\")" + }, + { + "displayName": "Windows - Lenovo Devices", + "description": "Filter for Lenovo Windows devices", + "platform": "windows10AndLater", + "rule": "(device.manufacturer -eq \"LENOVO\")" + } + ] +} diff --git a/Templates/Filters/Windows-VM-Filters.json b/Templates/Filters/Windows-VM-Filters.json new file mode 100644 index 0000000..4d60598 --- /dev/null +++ b/Templates/Filters/Windows-VM-Filters.json @@ -0,0 +1,76 @@ +{ + "filters": [ + { + "displayName": "Windows - Azure Virtual Desktop (AVD)", + "description": "Filter for Azure Virtual Desktop VMs", + "platform": "windows10AndLater", + "rule": "(device.model -contains \"Virtual Machine\")" + }, + { + "displayName": "Windows - Azure Virtual Desktop (AVD) Named", + "description": "Filter for AVD VMs with AVD- naming convention", + "platform": "windows10AndLater", + "rule": "(device.model -contains \"Virtual Machine\") and (device.deviceName -startsWith \"AVD-\")" + }, + { + "displayName": "Windows - Azure IaaS VMs", + "description": "Filter for Azure IaaS Virtual Machines", + "platform": "windows10AndLater", + "rule": "(device.manufacturer -eq \"Microsoft Corporation\") and (device.model -contains \"Virtual Machine\")" + }, + { + "displayName": "Windows - Windows 365 Cloud PC", + "description": "Filter for Windows 365 Cloud PC devices", + "platform": "windows10AndLater", + "rule": "(device.model -contains \"Cloud PC\")" + }, + { + "displayName": "Windows - Microsoft Dev Box", + "description": "Filter for Microsoft Dev Box devices", + "platform": "windows10AndLater", + "rule": "(device.manufacturer -contains \"Microsoft\") and (device.model -contains \"Cloud\")" + }, + { + "displayName": "Windows - Hyper-V VMs", + "description": "Filter for Hyper-V VMs (may overlap with Azure)", + "platform": "windows10AndLater", + "rule": "(device.manufacturer -eq \"Microsoft Corporation\") and (device.model -contains \"Virtual\")" + }, + { + "displayName": "Windows - VMware VMs", + "description": "Filter for VMware VMs (ESXi, Horizon, Workstation, Fusion)", + "platform": "windows10AndLater", + "rule": "(device.manufacturer -contains \"VMware\")" + }, + { + "displayName": "Windows - VirtualBox VMs", + "description": "Filter for Oracle VirtualBox VMs", + "platform": "windows10AndLater", + "rule": "(device.model -contains \"VirtualBox\")" + }, + { + "displayName": "Windows - Parallels VMs", + "description": "Filter for Parallels Desktop VMs", + "platform": "windows10AndLater", + "rule": "(device.manufacturer -contains \"Parallels\")" + }, + { + "displayName": "Windows - QEMU KVM VMs", + "description": "Filter for QEMU/KVM VMs", + "platform": "windows10AndLater", + "rule": "(device.manufacturer -contains \"QEMU\") or (device.model -contains \"KVM\")" + }, + { + "displayName": "Windows - All Virtual Machines", + "description": "Filter for all VMs - use for reporting only", + "platform": "windows10AndLater", + "rule": "(device.model -contains \"Virtual\") or (device.model -contains \"Cloud PC\") or (device.manufacturer -contains \"VMware\") or (device.manufacturer -contains \"Parallels\") or (device.manufacturer -contains \"QEMU\")" + }, + { + "displayName": "Windows - Physical Devices Only", + "description": "Filter excluding all known VMs", + "platform": "windows10AndLater", + "rule": "(device.model -notContains \"Virtual\") and (device.model -notContains \"Cloud PC\") and (device.manufacturer -notContains \"VMware\") and (device.manufacturer -notContains \"Parallels\") and (device.manufacturer -notContains \"QEMU\")" + } + ] +} diff --git a/Templates/Filters/iOS-Filters.json b/Templates/Filters/iOS-Filters.json new file mode 100644 index 0000000..f4bf736 --- /dev/null +++ b/Templates/Filters/iOS-Filters.json @@ -0,0 +1,22 @@ +{ + "filters": [ + { + "displayName": "iOS - iPhone Devices", + "description": "Filter for iPhone devices", + "platform": "iOS", + "rule": "(device.model -startsWith \"iPhone\")" + }, + { + "displayName": "iOS - iPad Devices", + "description": "Filter for iPad devices", + "platform": "iOS", + "rule": "(device.model -startsWith \"iPad\")" + }, + { + "displayName": "iOS - Corporate Owned", + "description": "Filter for corporate-owned iOS/iPadOS devices", + "platform": "iOS", + "rule": "(device.deviceOwnership -eq \"Corporate\")" + } + ] +} diff --git a/Templates/Filters/macOS-Filters.json b/Templates/Filters/macOS-Filters.json new file mode 100644 index 0000000..f274f10 --- /dev/null +++ b/Templates/Filters/macOS-Filters.json @@ -0,0 +1,22 @@ +{ + "filters": [ + { + "displayName": "macOS - Apple Devices", + "description": "Filter for Apple macOS devices", + "platform": "macOS", + "rule": "(device.manufacturer -eq \"Apple\")" + }, + { + "displayName": "macOS - MacBook Devices", + "description": "Filter for MacBook devices", + "platform": "macOS", + "rule": "(device.model -startsWith \"MacBook\")" + }, + { + "displayName": "macOS - iMac Devices", + "description": "Filter for iMac devices", + "platform": "macOS", + "rule": "(device.model -startsWith \"iMac\")" + } + ] +} diff --git a/Templates/MobileApps/Windows/Store/Notion.json b/Templates/MobileApps/Windows/Store/Notion.json new file mode 100644 index 0000000..5e38974 --- /dev/null +++ b/Templates/MobileApps/Windows/Store/Notion.json @@ -0,0 +1,23 @@ +{ + "@odata.type": "#microsoft.graph.winGetApp", + "displayName": "Notion", + "description": "Write, plan, organize-with AI.", + "publisher": "Notion Labs Inc.", + "developer": "Notion Labs Inc.", + "informationUrl": "https://www.notion.com/", + "privacyInformationUrl": "https://www.notion.so/Terms-and-Privacy-28ffdd083dc3473e9c2da6ec011b58ac", + "isFeatured": false, + "categories": [], + "roleScopeTagIds": [], + "notes": "", + "owner": "", + "largeIcon": { + "type": "image/png", + "value": "iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAYAAAD0eNT6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAgAElEQVR4nO3dCZQV533nfdmOJ/vkTTKZJJNM3nlnsr2Tycw4TCaKB829/6duL0Cz00JCCAMSSAKEAWEJkMRmCSEhawGMjIQkBMaIa7CIGAkQWHRD09BsArGr2XeaTc3WzdLUnKfTODKi0AWq6l916/s553dOTnJObKrreZ5f1a166o47AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAClUqnfEpH/1xjzdyJSaIy5xxjT1xjzhDFmuIiMNcaMM8ZMthGRd40x2WvypjFmvIiMMsZ8V0TudRznH++6664/1v73AQCQ10pLS/9VKpX6IxH5G2PMXcaYdsaYB0TkeyLyvIhMEZH3jDHlxphNxphDInLBGOMGnNMisqypINyfyWT+nfaxAgAgkjKZzO+kUqk/N8b8T2NMC8dx7kun0/3tFbaITDDG/MQYs8AYs8YYs9susiEs5L5FRLaIyIuO4/y99rEGAMB3qVTq14wxf5LJZP7WcZx0Op3uKCK9RWSoXQBF5G1jzD8ZYyqaFsWjInJZe4EOOTvs8WjevPkfaP+9AAC41tdSqdS/cRznL+1v2+l0upWIdBORgcaY7xtjJhljZhljfm6M+URE9onIuQgsrrGJiNSLyFQR+SvtPzYAIA8VFBT8ZmFh4b9PpVL/PZ1OO47jdE6n031E5CkRedkY844x5v8YY1aIyHYROW6MuaK9QCYl9g6IiPyYIgAA8HTnnXf+un2oTESaGWNa26vypqfQRxpjXjXGTBOReU232DeLyOfaCxzJOZfsWwcFBQX/Vvs8AwAE5Nvf/vZvp1Kp/5BKpf5HOp0uEpEuxph+xpgRdiFvuiKcLyJVTb8Zs5AnJyfta4kjRoz4uvZ5CgC4gebNm/+ufRUtk8k0/4qr8jUhvopGYh4RWWsLovb5DQCJWMjtq2jpdPofRKSlMaZr00JuX0WbKCIzjTEL7cRsjNljjDmjvUiQvM8le/41a9bsm9rjAwBi8Spa0+/kN7oqz179ndxelRtjLkZgsifEK6tTqdRfa48tANB46O1vHMfJfNVDb02LufZkTUgQqbPbFfNsAIDYLuQeV+WTr7OQX4rApEtIpCIii1Kp1J9qj2kACZNKpX7FGPOHxpj/bBfydDrdVkR6iMhgY8xzIvKGiPzMGFNmjNkoIgfthifakyYh+RQROWH3c9CeDwDk31X5E16310WkQXvyI4T8Iln78Kr2XAIg+q+iLfrCQs6raITkQURkbzqdTmnPQQD8vyovzeGhN7ZtJSTZsXPAq/YTydpzGJB4OTz0xqtohBC/s9EY81+15z8gL79ZLiL/TUTaNC3kz4rIa8aY2SLysYhsEJEDxpjzEZgICCHJjJ1/+tovOmrPmUBsOY7zH+3+7E37sn8WgYFNCCE5xX5LIpVK/ZH2PArEhr1tbz/IYq/mtQcwIYTcZo4ZY9ppz6tApDXd2rd7vfM7PCEkryIiU1Kp1G9pz7NApNx1111/bIx5k/fbCSF5nupUKnWn9pwLRIIxpr3dUSsCA5MQQsL6uuBYvi6IpG9nOykCg5EQEnBE5FwmkznUsmXL7e3bt/+ka9euK/r27Vs+bNiwJS+//HLZtGnTln344YdVVVVVG7Zt21Z9+PDhQ7W1tafOnDlT6zax//OJEyeO7d27d++aNWs2vv/++ysnTJhQ3r9///KOHTuuzWQyR7T/nTeZlfbT19pzMRD6+/nGmH+KwAAkhNxcLjqOc7SoqGhHmzZtNtx7770re/fuvezxxx8vGzNmzJIpU6YsnTt37orly5d/sm3bts+OHDlyuK6u7rwbkkOHDh2cPXt25UMPPbQsk8kcj8Dx+qqcMcY8qD0nA6Gwt72MMQsiMPAISXpOFBQU7G7duvXG0tLSVT179qwYMGBA2ejRo5dMmjSpfNasWcs//vjjNRs2bNhy4MCB/WfPnj3jxsjly5cvr1y5csPgwYPLMpnMvggc7xtlbvPmzf9Ae34GAmWfhI3AYCMkn3Imk8nsLy4u3tKuXbtVXbt2XfrII48sHjp06IJx48YteOedd5bMnz+/avXq1Rt27dpVffLkySMNDQ2X3ARpaGhomD9//vpOnTpF+dXiw8aYFtpzNBAIe6srAoOMkKimzv6O3aJFi+p27dqt79Kly8qHHnpo6ZAhQ8rGjRtX9vbbby+bN2/eSntVu3379uqampojFy9evKC9uMbN1q1btz/44IMVEX3ryH5P4If2Z1Lt+RrwjYj8p6bfu7QHGCGBRkQuO45zrKCgoLpVq1afdOrUacUDDzywbNCgQUueeeaZn0+aNOnjbDZbXlZWtuLTTz/95NChQ5+dP3/+sOu6V7QXxyTZsmXLzo4dO36ifb54ZKuINNOetwFfGGM+iMCgIuRmU1tQULCvVatWmzt16rS6R48eywcMGFA+cuTIJePHjy+bOXNmxaJFi1avW7du0549e/acPn36c+2FDTdnwYIFqwoLC/dG4Fy7NhdFZGhpaek3tOdv4JY5jpOOwGAiyY69vX716fVPO3fu3PjQ28CBA+1iXjZ+/Pjy6dOnV5SVla3dvn37jpqamqPcXk8O+6aC/akloj8LrLB3ULXnceCWiMiyCAwikmevobVt2zan19Dq6+vrtBcYxMPy5cvXR/GNARGpFZH7tedy4KY4jvMt7cFD4nNV3qdPn6VfvCKfP3/+qqqqqk+vXpXbp7m1Fwnkt7Nnz57u1q1bZQTGx/Uy23Gc39ee14GcGGNej8CgIcHmbEFBwYEWLVpstTuydevWbfmjjz5aPnz48CWvvPJK2YwZMyrs76x297Zdu3btPnny5ImGhgYeeEOk2V0GRaQ+AuPr2uxPp9OO9twO3JB9eMUYUxOBAUNyjOM4p77qd3J7VW43h7FX5BcuXKjXnqiBoNhtie1rmdrj0uN1wcklJSW/oT3PA9clIiYCA8VN+mtopaWlvIYG3KLz58+f79u378qIjvVPM5nM32rP9cCXGGPGaA+QfH163T6x7PU7ud0CVXvSBPKNfbjUGHMygiXA/kzxxIgRI76uPecDv8DT/1+9kPMaGhAf9mND9u2TCMwn18vPU6nUn2rP+8DV3//rIjAogngN7UhRUVF1mzZt1tvX0Hr16lU+ePDgnz/zzDOLJ0+e/PM5c+aULV26tHLLli3rDh8+vL2+vv6U9sQFwB+XLl26PHLkSPuA4OUIzEfX5qSI3K09/yPh7HeuIzAYcor9TnmHDh3WXvs1tGw2G+uvoQEITmVl5XrHcQ5qz18emVZcXPyvtdcBJJTjOCURGAReqbWbx9hX0+w7v9oTCYB4qq2tPdmlS5cVEZjTrpfdxpi7tNcCJJCIPBKBAfCl2I1m7Hvo2hMHgPzxxhtvLBWRc9rz27Vp+pliTLNmzb6pvSYgQURkpPbJf21GjRq1RHuiAJCfqqurd7Rs2XK79jznkTWpVOqvtdcFJIT9pnUETvpfxO7v3dDQwOtxAAJTX19f/9hjj1U0bdTjRizn0+l0nzvuuONr2usD8pwx5q0InPC/iP2Mq/bkACAZ7PNFmUzmuPa8d72IyIepVOqPtNcI5DFjzAztE/2Lad++/TrtSQFActTU1Byxbxdpz30eqUmn02211wnkKWNMNmKtt8F+iEZ7UgCQHPbrlePGjSuz+4doz4Ee8+IbqVTqt7TXC+SZqBUAm5YtW26rq6s7pz0pAEiW9evXby4sLNyjPQd6pDqdTv+D9pqBPBLFAmBjP1lrN/XRnhAAJIvdSMy+hqw9B3rkkoiM5XVB5HUBaMoJu+e+9oQAIHnee++9Ffaz2xGYB78UEanKZDJ/ob1+IOYiXgAaN8h44YUXyrQnAwDJc/DgwQP2o2Da86BHzhtjvqu9hiDGol4ArqZbt27Lz58/f1Z7QgCQLJcuXbpkvwQa0Y8K8bog8r8A2BQXF2/ft2/fPu0JAUDyLFu27JNMJnM4oiXgqP2ui/Z6gpiJUwFoysnFixev0Z4MACTP6dOnP+/WrVtlBObB68Xuaji5oKDgN7XXFcREDAtA44k+ZMiQMvvurvaEACB5pk+fXhHFjwo1Zasx5u+01xbEQEwLQGM6d+5cdebMmVrtyQBA8uzYsWNnhD8qZF8XHFlaWvoN7TUGERbnAmBTVFS0yw5E7ckAQPLU19fXDRw4sDyiHxWyzwZUish/0l5nEFFxLwA2juOcef/991dqTwYAkmnevHkr7b4lES0BtSLSW3utQQTlQwFoCs8FAFBz/PjxmtLS0jURmAu9isBPCwsLf097zUGE5FEBaExpaekq+6Su9mQAIHkaGhqujB8/vlxELmjPhR6xrzG20F53EBH5VgBsCgoKdm/btq1aezIAkEwR/6iQfV7h1eLi4l/VXn+gLB8LwNXnAubOnbtCeyIAkExnz5493aNHj+Xac6FXRGRDKpX6L9prEBTlawFoypVhw4YtuXz58mXtyQBAcvcMMMZcjMB8eL3UicjAO+6442vaaxEU5HkBaEynTp1W19bWntSeCAAk07vvvrs8qq8K2ojIImPMn2ivRwhZEgqATWFh4d6tW7du154IACTTgw8+WBGFufAGJcC+xliqvSYhREkpAE0n+NlsNrtceyIAkDzV1dU7tOfAHPNWSUnJb2ivTQhBkgrA1QwePLjMfuJTe0IAkByHDx8+qD335RoR2cwDggmQxAJg0759+3UnT548oT0pAMgftbW1pw4cOLB/8+bN2ysrK9d/+OGHVT/5yU8qRo0ataS4uPgz7XnvJnNeRHppr1EIUFILgE0mkzm0bt26TdqTBgB9dXV1dXYBr6mpObp9+/YdVVVVn86fP3+VfYrfbu4zcuTIMrvvf8+ePSu6du1a2blz51Vt2rT5tKioaEcmkzlqP8CjPacFlDmpVOr/0V6rEIAkFwAbEal/++23l2lPPgBufwH3WrxfeOGFsi8u4Ncu3nYe0J6LIp49qVTqTu31Cj5LegG4mv79+3988eLFC9qTGJBEp0+frjt48ODRrVu37ly5cuWnH3300SfZbHbd66+/XjVu3LjKYcOGVfTr12959+7dq0pLS9e2adNmU1FR0c6mK+/z2vNHEiIi9el0ur/2mgUfUQD+JfaKoKam5oj2ZAjECbfOkxUReffOO+/8de21Cz6gAPxyMpnMkTVr1mzUnlSBsHDrnNxCVtx1111/rL1+4TZRAL4cO6lNnjy5XHtiBr7KmTNnag8dOnRw27Ztn1VVVW1YsGDBqpkzZ1ZMmjSpfMyYMUvsJ7L79OmztFu3bpV2R8zWrVtvbLp1fsTui6E91kh8IyL7MpnMX2ivYbgNFADvdOnSZYWdYLUneSTz6vvqlbddwK939R3h/eVJcrI/lUr9ufY6hltEAbhx7NXStm3b2EIYv6ShocG+812/f//+o5s2bdq5bNmyjfPmzVs9ffr05RMnTlz+3HPPrXjiiScq+/Tps6Jbt26rOnXqtL6kpGRbUVHR3kwmczzC34sn5KbvBBi+IxBPFICcTvBz06ZN41XBPPtUq92Z7Yu3zu0HW1577bXysWPHfvHW+fIv3Dq3V96HjTHcOifE/EtEZMmIESO+rr2e4SZRAHLPPffcs+Lo0aOHtBevpLtw4YJ74sSJ+t27d9ds2LBhV3l5+aa5c+eueeutt1a89NJLy4YPH14+YMCA8l69eq3o2rXruo4dO24sKSn5rLCw8EAmk/k8yl9lIySuEZGh2usZbhIF4Kbz+fjx48suXrx4UXshjKOGhoYG+2nmffv27du4cePWZcuWfTJv3ryV06dPX2aP6+jRo5fYbzX07t17adeuXVd06NBhbUlJyZaCgoLdjuMc46lzQiKbM+wYGDMUgFtLUVHRrlmzZi1P2keFzp49e6bp1nm1fWht4cKFq+xxsG9N2FfGvnjrvLS01N46/7S4uLjabrvsOM4Z7b8bISTQPKG9puEmUABuLwUFBfvGjRtXFocNhOrr6+uOHz9es2vXrt3r16/fXFZWtnbOnDmVb7755tKXXnqpbPjw4UvsrXP73fJ77713Zbt27T5p0aLFVvtvdBznlIg0aB9vQkiks0N7TcNNoAD4ExG53K5du/X23Wt7ZXz+/PmzQSzgtmjY74rb/wz74NqMGTMqJkyYUH711vlDDz1kb51X2lvnrVq12lxYWGhvndcYY+q0jxEhJP9zFxsExQcFILhCYK+c7S1wezVtb4vbK2x7m/x6GTp06JL+/fuXP/DAA8uu/vbdqlWrTV9455sFnBAS+YhIB+11DTmiABBCCPErIvKU9rqGHFEACCGE+Jhx2usackQBIIQQ4ldE5A3tdQ05ogAQQgjx83PBdyAeKACEEEJ8TFZ7XUOOKACEEEJ8TFZ7XUOOKACEEEJ8TFZ7XUOOKACEEEJ8TFZ7XUOOKACEEEJ8TFZ7XUOOKACEEEJ8TFZ7XUOOKACEEEJ8TFZ7XUOOKACEEEJ8TFZ7XUOOKACEEBKpXHQc54T9mFirVq22tG/ffp39oJj9UNiAAQPKhg0btmTUqFGNX//s0qXLCsdxDkbgv7P7hVAA4oICQAgh/kRE6h3HOVZYWLjHLt72q552ke7du/eyQYMGldkvgr788stlb7755tI5c+ZUlpWVrV2/fv3mnTt37jp27NjRurq6c7fyqfCNGzdutQVBRBq0j4GhAMQHBYAQQhpz3nGco4WFhbtbtWq12S7eXbt2rezdu/fSxx57rMxedb/yyitlU6dOXfbee++tsIv3hg0btuzZs2f3iRMnjtXX19e5ytasWbMxk8kcUj6OWe11DTmiABBC4h4ROZvJZI4UFRXtLCkp2dSxY8c1dvF+5JFHlj7++ONlo0ePXjJ+/Piy6dOnL3v//fdXLl26dJ1dvPfu3bv35MmTJy5evHjRzROHDx8+VFBQsF/x75HVXteQIwoAIUQzjuOcsVetRUVFO1q3br2xU6dOq7t161bZp0+fpU888UTZs88+u+SHP/xh+YwZMyrmzZu3cvny5Z/YW9779u3bV1tbe/Ly5cuXtRfdqNm6det2+3OE0t80q72uIUcUAELIbaS2oKDgYHFx8Wdt2rT5tLS0dFW3bt2W28V7yJAhZWPHjl0yadKk8pkzZ1Z8+OGHVZWVles3b968ff/+/XbxPtXQ0HBFe7HMV/Z5A6VzIqu9riFHFABCkhnHcU7ZW8UtW7bc3rZt2w2dO3de1aNHj+X9+vUrHzp06JIXXnihbPLkyeWzZs1avmDBglVVVVUbtm3b9tnBgwcPnD59+nPtBQ43dvbs2dP2pxGFcyurva4hRxQAQmKZukwmc9TeNrdX3nbxtr959+zZs2LgwIHlI0eOLBs/fnz59OnTK+bPn28X70/tb97bt2/fUVNTc5Tb5snQvXv3CoVzM6u9riFHFABCor9424Xb/uZtF++GhoYG7YUF8bBo0aLVCud3VntdQ44oAITkFvtQVSaTOX69d7ztBi3Xe8d73bp1m+w73jU1NUdu9R1v4FZdvHjxgohcCHmsZLXXNeSIAkCSfOV99arbPrDmdeVtr7rtA2vakzlwK4qLi7eHPM6y2usackQBIDFInX1gzWvxtgu3fWDNa/GOwgYtgJYePXqE/RxAVntdQ44oACTMd7xLS0vXXO8db7twX+8d70uXLl3SnkCBOHvmmWfCfh0wq72uIUcUAJLLLXP7m/f1rryvXnXb37yvvfK2vz9qT35A0tmCHfK8kdVe15AjCkAyfu+2D6x5Ld524bYPrF2zeOfN1qhAktntj0Oee7La6xpyRAGI/+J97Tve3DYHcJX99gEFANdFAQg/9qncvn37lttXxuwOa9XV1TuOHDly+Ny5c2e1JwsA+WXx4sVh7wWQ1V7XkCMKQDgpKCg4YJ9U37Nnzx7tCQFAclAA4IkCEPzmMWPGjFnCA3EANFAA4IkCEGhq7dfPtCcAAMlFAYAnCkAwEZHL5eXl67QHP4BkowDAEwUgmNjPqWoPfACgAMATBcD/OI5z4uzZs2e0Bz4AUADgiQLgfwYNGlSmPegBwKIAwBMFwP9UVVVt0B70AGBRAOCJAuBvHMepaWhoaNAe9ABgUQDgiQLgb+zX7rQHPABcRQGAJwqAvxkwYAC//wOIDAoAPFEA/M1rr71Wrj3gAeAqCgA8UQD8zdy5c1doD3gAuIoCAE8UAH9jB5v2gAeAqygA8EQB8DcrV67kFUAAkUEBgCcKgL9Zv379Fu0BDwBXUQDgiQLgbzZu3LhVe8ADwFUUAHiiAFAAAOQvCgA8UQAoAADyFwUAnigAFAAA+YsCAE8UAAoAgPxFAYAnCgAFAED+ogDAEwWAAgAgf1EA4IkCQAEAkL8oAPBEAaAAAMhfFAB4ogBQAADkLwoAPFEAKAAA8hcFAJ4oABQAAPmLAgBPFAAKAIDcXLp0yf3888/dQ4cOudu3b3f37t3rRh0FAJ4oABQAICnq6+vd48ePu7t377Zj1a2srHQXLlzozpkzx505c6Y7depUd+LEie5zzz3nDhs2zO3fv7/bo0cPt7S01G3btq3rOM4vjffBgwe7UUcBgCcKAAUAiMPCffr0ac/F2y7cr7/+uufiXVxcHMh4t/+/o44CAE8UAH9DAQB+2blz59yamhp3z5497ubNm91Vq1a5S5YscefNm+e+++677ptvvumOHz/eHTt2rPv000+7gwYNch966CH3vvvuc9u1a+cWFBSoj+sbxf77oowCAE8UAH9DAUBSXblyxV2/fr371ltvNV6B33PPPV+6ZZ6POXbsmBtlFAB4ogD4GwoAksZeAc+YMcPt2rWr+vjTyL59+9woowDAEwXA31AAkCTl5eWNv4NrjzvN7N+/X/vPcEMUAHiiAPgbCgCS8jrcs88+qz7eohCeATDXhgIQFxQAf0MBiBf7ZPnBgwfdbdu2uWvWrPnFw2n2lvbkyZPdF1980R05cmTjg2m9e/d2Z8+e7SbdxYsX3aeeekp9rEUhJSUlbtRRAOCJAuBvKADhs1dgR44ccaurq91169Y13pb+4IMPGp8wf+ONN9yXXnrJHT16tPu9733PfeSRRxqfLrfvdN/K37dFixaRv+Ub9IN+I0aMUB9nUcmQIUPcqKMAwBMFwN9QAG5NXV1d46tiO3fubHySvKKiwp0/f77705/+tPE1sVdffdV95pln3CeeeMLt27eve//997vt27d3M5lM6H9j+365XQiTaO7cuepjLEqJwx0hCgA8UQD8TZILwIULF264UcuECRPcMWPGNL4i9uijj7rdu3d3O3bs6BYWFqr/3W427733nps0tbW1bps2bdSPfZRu/586dcqNOgoAPFEA/E0+FwB7q33lypXu22+/3biQf/e733V79uzZ+BS4vTWufezDTKtWrdzDhw+7SfLOO++oH/coZdq0aW4cUADgiQLgb/KxANhb8qNGjXKLiorUj2+UYp8pSNJPAfbZCe1jHpX069ev8Y5XHFAA4IkC4G/yqQDYK9yhQ4eqH9Mo58MPP3STwH71TvtYRyX2A0Bnzpxx44ICAE8UAH+TLwVg6dKljb9xah/PqMf+Jm6fe8h3H330kfqx1o59DdQeh7jd9aEAwBMFwN/kQwGwr9BpPF0f1zz55JNuvvvxj3+sfpzDTKdOnRofVrXPu9g3Uo4ePerGFQUAnigA/ibuBWD58uUs/reQxYsXu/nMboqkfYyDin2I1S729k0V++ZKvt3RoQDAEwXA38S5ANj38HnN69Zi9ySIwytht2rKlCnqx9iP2FdO7R0b+0bDihUr8m6xvx4KADxRAPxNnAuA/Ra79vGLc+xug/nK7nugfXz9yL333usmDQUAnigA/iauBcBu3KN97PIh9vfifH0LYOLEie7w4cMbt1O2v5FrH+tbCQUglGS11zXkiALgb+JaAOzErn3s8iF2YbQfGErKFwHtLfTt27e7ZWVl7syZMxtLgt0z4uGHH47kZ4IpAKEkq72uIUcUAH8TxwJgF6yCggL1Y5cvef7557X/pJHaPdJuDV1VVdX4lUX7VP3YsWMbv65ov+fgOE6ofxsKQCjJaq9ryBEFwN/EsQAsWrRI/bjlW1atWqX9Z40F+y2IMP8uFIBQktVe15AjCoC/iWMBeOWVV9SPW77lnnvuabz6xY1RAIJHAYAnCoC/iWMBsLdjtY9bPsZ+whg3RgEIHgUAnigA/iaOBeCBBx5QP275GPv79tq1a7X/vJFGAQgeBQCeKAD+Jo4F4O6771Y/bvmaLl26uHV1ddp/4siiAASPAgBPFAB/E8cCENd3uuOS1157TftPHFkUgOBRAOCJAuBv4lgA7MYu2sct338KsBst4csoAMGjAMATBcDfxLEAjBw5Uv245Xu6d+/uXrhwQftPHTkUgOBRAOCJAuBv4lgAjh071niFarextZ8CnjFjhjtp0iT3ueeec4cMGdJ4h8BOnC1btlQ/vnHOW2+9pf2njhwKQPAoAPBEAfA3cSwAN6O+vr7xq4HV1dWNm93Yz+DOmTOncXF7+eWX3REjRrj9+/dX/ztE9Ut0O3bs0P4TRgoFIHgUAHiiAPibfC8AuZYE7b9DVNOrV6/GPfTxzygAwaMAwBMFwN9QACgAXxX7Ewv+GQUgeBQAeKIA+BsKAAXgq1JUVNT4gRxQAMJAAYAnCoC/oQBQAHJJ37593YaGBjfpKADBowDAEwXA31AAKAC5Zvbs2W7SUQCCRwGAJwqAv6EAUAByTYsWLdwDBw64SUYBCB4FAJ4oAP6GAkABuJkMHDjQvXLliptUFIDgUQDgiQLgbygAFICbzbx589ykogAEjwIATxQAf0MBoADcbEpKSho3V0oiCkDwKADwRE253xoAACAASURBVAHwNxQACsCtxG65nEQUgOBRAOCJAuBvKAAUgFvNRx995CYNBSB4FAB4ogD4GwoABeBW07ZtW/fEiRNuklAAgkcBgCcKgL+hAFAAbidPPfWUmyQUgOBRAOCJAuBvKAAUgNtNeXm5mxQUgOBRAOCJAuBvKAAUgNtN+/bt3VOnTrlJQAEIHgUAnigA/oYCQAHwI88995ybBBSA4FEA4IkC4G8oABQAv1JRUeHmOwpA8CgA8EQB8DcUAAqAXyktLXXPnDnj5jMKQPAoAPBEAfA3FAAKgJ956aWX3HxGAQgeBQCeKAD+hgJAAfAzjuO4a9ascfMVBSB4FAB4ogD4GwoABcDvdOnSxT1//rybjygAwaMAwBMFwN9QACgAQeSHP/yhm48oAMGjAMATBcDfUAAoAEH9FLBx40Y331AAgkcBgCcKgL+hAFAAgsp3vvMd98KFC24+oQAEjwIATxQAf0MBoAAEmSlTprj5hAIQPAoAPFEA/A0FgAIQZAoKCtxt27a5+YICEDwKADxRAPwNBYACEHQefPBB99KlS24+oAAEjwIATxQAf0MBoACEkWnTprn5gAIQPAoAPFEA/A0FgAIQRgoLC91du3a5cUcBCB4FAJ4oAP6GAkABCCt9+vRxGxoa3DijAASPAgBPFAB/QwGgAISZbDbrxhkFIHgUAHiiAPgbCgAFIMy0aNHCPXDggBtXFIDgUQDgiQLgbygA+gXALora50GYGThwoHvlyhU3jigAwaMAwBMFwN9QAPQLgL0tbrfO1T4XwszcuXPdOKIABI8CAE8UAH9DAdAvANu3b3dfeOEF9XMhzLRs2dI9dOiQGzcUgOBRAOCJAuBvKADRKACnT58OfXHRzuDBg2P3UwAFIHgUAHiiAPgbCkA0CoD18ccfq58PYWfBggVunFAAgkcBgCcKgL+hAESnAFhPPfWU+jkRZlq3bu0eO3bMjQsKQPAoAPBEAfA3FIBoFYCjR4+6JSUl6udFmBk2bJgbFxSA4FEA4IkC4G8oANEqANacOXPUz4uws2TJEjcOKADBowDAEwXA31AAolcA7INx/fr1Uz83wkz79u3dU6dOuVFHAQgeBQCeKAD+hgIQvQJg2Q/n2A/oaJ8fYeaZZ55xo44CEDwKADxRAPwNBSCaBcCaMmWK+vkRdpYtW+ZGGQUgeBQAeKIA+BsKQHQLwMWLF93u3burnyNhprS0tHFPhKiiAASPAgBPFAB/QwGIbgGw1q9fn7htgseNG+dGFQUgeBQAeKIA+BsKQLQLgGUXRO3zJOysWrXKjSIKQPAoAPBEAfA3FIDoF4CzZ8823hrXPlfCXvjOnTvnRg0FIHgUAHiiAPgbCkD0C4Bl35PXPlfCzvjx492ooQAEjwIATxQAf0MBiEcBsJ5++mn18yXM2GcfNmzY4EYJBSB4FAB4ogD4GwpAfApATU1N4rYJ7tatW+PfJyooAMGjAMATBcDfUADiUwCsn/3sZ+rnTNiZPHmyGxUUgOBRAOCJAuBvKADxKgB2m+BHH31U/bwJM5lMxt22bZsbBRSA4FEA4IkC4G8oAPEqAEndJthuiGQ3RtJGAQgeBQCeKAD+hgIQvwJgvfnmm+rnTtiZOnWqq40CEDwKADxRAPwNBSCeBSCJ2wQXFBS41dXVriYKQPAoAPBEAfA3FIB4FgDLviKXtG2Ce/fu7V66dMnVQgEIHgUAnigA/oYCEN8CYL344ovq51DYmTlzpquFAhA8CgA8UQD8DQUg3gXAbhN89913q59HYaaoqMjds2ePq4ECEDwKADxRAPwNBSDeBcAqKytTP4/CTr9+/dyGhgY3bBSA4FEA4IkC4G8oAPEvAEncJtjGbooUNgpA8CgA8EQB8DcUgPwoAMePH3fbtGmjfj6FmRYtWrgHDx50w0QBCB4FAJ4oAP6GApAfBcCaO3eu+vkUdgYNGtS4O2JYKADBowDAEwXA31AA8qcA2IWwf//+6udU2Pnggw/csFAAgkcBgCcKgL+hAORPAbD27t3b+JS89nkVZuwXEu2XEsNAAQgeBQCeKAD+hgKQXwXAevvtt9XPq7AzbNgwNwwUgOBRAOCJAuBvKAD5VwDsNsE9evRQP7fCzuLFi92gUQCCRwGAJwqAv6EA5F8BsD799NPEbRPcrl079+TJk26QKADBowDAEwXA31AA8rMAWC+99JL6+RV2Ro8e7QaJAhA8CgA8UQD8DQUgfwvAuXPnErdNsM3SpUvdoFAAgkcBgCcKgL+hAORvAbDKy8vVz7Gw06lTJ/f06dOBHE8KQPAoAPBEAfA3FID8LgBJ3SZ47NixgRxLCkDwKADwRAHwNxSA/C8ASdwm2Kaqqsr3Y0kBCB4FAJ4oAP6GApD/BSCp2wTb5x/OnDnj63GkAASPAgBPFAB/QwFIRgFI6jbBr7zyiq/HkQIQPAoAPFEA/A0FIBkFwNq3b59bXFysfs6FGbsXwtq1a307hhSA4FEA4IkC4G8oAMkpANbUqVPVz7mw06VLF/f8+fO+HD8KQPAoAPBEAfA3FIBkFYBLly4lcpvgSZMm+XL8KADBowDAEwXA31AAklUArM2bNydum2D77924ceNtHzsKQPAoAPBEAfA3FIDkFQDr5ZdfVj/3wk737t3dCxcu3NZxowAEjwIATxQAf0MBSGYBsNsEd+7cWf38CztvvfXWbR03CkDwKADwRAHwNxSAZBYAa8WKFernX9gpKCi4reNNAQgeBQCeKAD+hgKQ3AJgDR8+XP0cDDu9evVqfBjyVlAAgkcBgCcKgL+hACS7ACR1m+AZM2bc0vGiAASPAgBPFAB/QwFIdgGw3n//ffXzMOwUFRW5u3fvvuljRQEIHgUAnigA/oYCQAFI6jbBffv2dRsaGm7qWFEAgkcBgCcKgL+hAFAAkrpNsM1Pf/rTmzpOFIDgUQDgiQLgbygAFICr3nnnHfXzMey0aNHCPXDgQM7HiAIQPAoAPFEA/A0FgAJwlX0yvmfPnurnZNgZOHBg488guaAABI8CAE8UAH9DAaAAfNGWLVsSt02wzbx583I6PhSA4FEA4IkC4G8oABSAa7366qvq52XYKSkpcY8ePfqVx4YCEDwKADxRAPwNBYACcK2kbhM8ZMiQrzw2FIDgUQDgiQLgbygAFIDrSeI2wTYLFy684XGhAASPAgBPFAB/QwGgAHgZOXKk+vkZduyuiMeOHfM8JhSA4FEA4IkC4G8oABQALydOnHDbtm2rfo6GnaeeesrzmFAAgkcBgCcKgL+hAFAAbsQ+Ha99jmqkvLz8useDAhA8CgA8UQD8DQWAAnAj9v34xx57TP08DTvt27d3T5069aXjQQEIHgUAnigA/oYCQAH4Kvv370/kNsFjxoz50rGgAASPAgBPFAB/QwGgAORi2rRp6ueqRioqKn7pOFAAgkcBgCcKgL+hAFAAcnH58mW3V69e6udr2CktLXVPnz79i+NAAQgeBQCeKAD+hgJAAbiZbYIzmYz6ORt2fvCDH/ziGFAAgkcBgCcKgL+hAFAAbkYStwm230ZYvXp147+fAhA8CgA8UQD8DQWAAnAzkrpNcJcuXdzz589TAEJAAYAnCoC/oQBQAG7WypUr1c9bjUycOJECEAIKADxRAPwNBYACcCtGjRqlfu5q/BRQWFgY6n8mBSCUZLXXNeSIAuBvKAAUgFuR1G2Cww4FIJRktdc15IgC4G8oABSAW/XBBx+on7/5HgpAKMlqr2vIEQXA31AAKAC3s03w4MGD1c/hfA4FIJRktdc15IgC4G8oABSA23HgwIFEbhMcVigAoSSrva4hRxQAf0MBoADcrh//+Mfq53G+hgIQSrLa6xpyRAHwNxQACoAf2wT37t1b/VzOx1AAQklWe11DjigA/oYCQAHww9atWxO5TXDQoQCEkqz2uoYcUQD8DQWAAuCXCRMmqJ/P+RYKQCjJaq9ryBEFwN9QACgAfqmrq2vcMlf7nM6nUABCSVZ7XUOOKAD+hgJAAfBTVVWV+jmdT6EAhJKs9rqGHFEA/A0FgALgt9GjR6uf1/kSCkAoyWqva8gRBcDfUAAoAH47efIk2wT7FApAKMlqr2vIEQXA31AAKABB+PDDD9XP7XwIBSCUZLXXNeSIAuBvKAAUgCCwTbA/oQCEkqz2uoYcUQD8DQWAAhDkNsEtWrRQP8fjHApAKMlqr2vIEQXA31AAKABBmjFjhvo5HudQAEJJVntdQ44oAP6GAkABCBLbBN9eKAChJKu9riFHFAB/QwGgAARt27ZtbBN8i6EAhJKs9rqGHFEA/A0FgAIQhokTJ6qf63EMBSCUZLXXNeSIAuBvKAAUgLCOMdsE33woAKEkq72uIUcUAH9DAaAAhIVtgm8+FIBQktVe15AjCoC/oQBQAML0/e9/X/2cj1MoAKEkq72uIUcUAH9DAaAAhOnzzz9327dvr37exyUUgFCS1V7XkCMKgL+hAFAAwjZ//nz18z4uoQCEkqz2uoYcUQD8DQWAAhA2tgnOPRSAUJLVXteQI2PMLO1BmU+hAFAANLBNcG6hAISSrPa6hhyJyFTtQZlPoQBQALTMnDlT/fyPeigAoSSrva4hRyIyUXtQ5lMoABQAzW2CH3roIfUxEOVQAEJJVntdQ45E5HntQZlPoQBQADSxTfCNQwEIJVntdQ05EpGntQdlPoUCQAHQNmnSJPVxENVQAEJJVntdQ45EpIf2oMynUAAoAFE4/vfdd5/6WIhiKAChJKu9riFHmUymufagzKdQACgAUbBq1Sr1sRDFUABCSVZ7XUOOjDF/qD0o8ykUAApAVDz77LPq4yFqoQCEkqz2uoabICKfaw/MfAkFgAIQpW2CO3TooD4mohQKQCjJaq9puAki8rH2wMyXUAAoAFGycOFC9TERpVAAQklWe03DTTDGjNAemPkSCgAFIGq+973vqY+LqIQCEEqy2msabkI6nU5pD8x8CQWAAhA1hw8fdlu2bKk+NqIQCkAoyWqvabgJxcXFv2qMOa89OPMhFAAKQBS9++676mMjCqEAhJKs9pqGmyQi87QHZz6EAkABiOo2wb1791YfH9qhAISSrPZ6hptkjLlHe3DmQygAFICo2rFjh1tYWKg+RjRDAQglWe31DDeppKTkN4wxp7UHaNxDAaAARNlrr72mPkY0QwEIJVnt9Qy3wBgzTXuAxj0UAApA1P82Xbt2VR8nWqEAhJKs9lqGW8DbALcfCgAFIOpWr16tPk60QgEIJVnttQy3yBizQnuQxjkUAApAHIwZM0Z9rGiEAhBKstrrGG6RMaZUe5DGORQACkAc1NbWJnKbYApAKMlqr2O4RaWlpd8wxlRrD9S4hgJAAYiLjz76SH28hB0KQCjJaq9juA0i0lt7oMY1FAAKQJw8/vjj6mMmzFAAQklWew3D7d8F2KQ9WOMYCgAFIE6OHDnitmrVSn3chBUKQCjJaq9huE2O45RoD9Y4hgJAAYibWbNmqY+bsEIBCCVZ7fULPhCRj7QHbNxCAaAAxE1DQ4P78MMPq4+dMEIBCCVZ7bULPnAc51sicll70MYpFAAKQBxVV1e7BQUF6uMn6FAAQklWe+2CT0TkFe1BG6dQAPQLQOfOnd3Ro0e7c+bMcbdu3epeunRJ+5DEwuTJk9XHT9ChAISSrPa6BR+/ESAiO7UHblxCAdAvANfGfgDH3uKeOHGiW1ZW5p46dUr7EEVSErYJpgCEkqz2ugUfOY5TrD1w4xIKQPQKwPVSWlrqjho1qvEuwcaNG7lL0OSTTz5xHcdR//sEFQpAKMlqr1nwmYhM1x68cQgFIB4F4NrYV+H69+/vvv76625lZWXjTnlJNXbsWPW/R1ChAISSrPZ6BZ85jvP7InJQewBHPRSAeBaAa2Ovgnv27On+4Ac/cBcsWODu3bvXvXLlipsEp0+fztufAigAoSSrvV4hAI7jZESkQXsQRzkUgPwoANdLu3bt3GHDhrkzZsxwP/vsMzef7dq1Ky83CKIAhJKs9lqFgBhjXtAexFFO0guA/S09CZ+btV/Ty3fl5eV59zwABSCUZLXXKQSkWbNm3xSRKu2BHNUksQAcOnTInTdvXuNDda1bt1b/G4QRexcgCd566y31Y+1nKAChJKu9TiFAjuP8pYic1R7MUUwSCsC5c+fciooK9+WXX3bvu+8+9WOukfXr17tJYJ97eOqpp9SPt1+hAISSrPYahYCJyP3agzmKyccCYBeBbdu2NV71DhgwoPG9eu3jrJkOHTo0bp+bFOfPn3d79+6tftz9CAUglGS11yeEQER+pD2go5Z8KQD2SfCFCxe6zzzzTOOCp31co5RXX33VTZpjx465d999t/qxv91QAEJJVnttQgiKi4t/1RgT9skV6cS9AFy8eNH90Y9+5BYVFakfyyjG3v2wzzwkkX3zoWXLlup/g9vJyJEj3aShACAwmUzmz4wxx7QHdlQS5wJgr/oHDhyofgyjHLtffpKtXbvWbdGihfrf4Wbz6KOPNv53TyIKAAIlIi3ZHyDeBcD+zv/YY4+pH78ox24MVFdX5yZdVVVVbO4Q2d0d16xZ4yYZBQCBM8Z8X3uwRyFxLQDZbFb92EU59jmIAwcOaP+ZImP58uWRLQF27wL75sKmTZu0D1MkUAAQuNLS0m+IyCLtwa+dOBYAu3Of3eVO+9hFNZ06dXJ3796t/WeKnM2bNzd+VEn773M1JSUlja+m2m2b8S8oAAhF8+bN/8AYs197ItBMHAuA3cRH+7hFNfa1R/sEPK7PHps+ffqo/o169erlvv/++437U+DLKAAIjeM4/ygiF7Qnbq3EsQDY/e21j1vUYu+I/OxnP3MvX76s/eeJxfbP06ZNc4uLi0N9nc9+uXHnzp3a//zIowAgVOl0ur/2BK6VuBUA+/CfvXWqfdyiEruzod3wyL4RgZu/GzBhwoRAzif7u/7DDz/cuDWx/ekhKV9m9AMFAKETkXe1J3ONxK0AnDp1Sv2Yab/X369fv8aFZcOGDSwsPrBvSvz85z93n332Wff+++93M5nMTf9d7KuG9gn+SZMmuUuWLHFPnjyp/c+KLQoAQpdKpX5LRLZoT/BhJ24FwH72VfuY+RW7aNgH9r7zne+4jzzyiDt48ODGDxSNGzeucSGZMmWKO3PmTHfu3LnuihUrGp/qt7evEfxDpnYTocWLFzf+Vm//Bm+//XbjhlP272L/Z/u/W7BgQeM3Fo4ePUoR8xEFACpE5K9EpFZ7YQgzcSsAhw8fVj9mNvb3Y/tEub0F36NHj8arP/tswnPPPedOnDjRnTp1qjtnzpzGBxbtFsWVlZX2WDc+nX/8+PHGHQwBfBkFAGpE5F7txYUCcOOrs9t5n9v+Ntu2bVu3S5cujR+MsU/NP/nkk423f+2e+W+88Ubj1Z298rO3he2Vt1247cNbR44c4bd2IGAUAKgSkQnaCzMFwNvYsWMbH7Cyt8yHDx/uPv/8841X3fZ38VmzZjVedZeVlbmrV69ufADLvmdtH/jitSsg+igAUNWsWbNvGmMqtBdnCgCApKEAQF1hYeG/N8bUaC/QFAAASUIBQCSISGG+fzSIAgAgShYtWkQBQDQYY4ZrL9IUAABJMW/evJUUAETCiBEjvi4iH2ov1BQAAEkwe/bsSgoAIqN58+a/KyK7tBdrCgCAfDd9+vSwH8DOaq8xiDjHcf5eROq1F2wKAIB8NmnSpHIKACJHRB7RXrApAADy2bBhw5ZQABBJIjJVe9GmAADIVw888MAyCgAiqaCg4DeNMRu1F24KAIB81LFjx7UUAERWJpP5CxH5XHvxpgAAyCcNDQ1XHMcJewO2rPaagphJp9NtjTFXtBdwCgCAfLFjx46dCvNgVns9QQwZY17SXsApAADyxRtvvLGUAoBYyIePBlEAAERF165dV1AAEBvGmD8RkSPaCzkFAECcnThx4piIXKAAIFYcx0kbYy5pL+YUAABx9cQTT5QpzYNZ7TUEMSciQ7UXcwoAgDjas2fPbhE5RwFAXH1NRN7XXtApAADipK6urq5Vq1abFefBrPbigfz5aJDGaywUAACxc/HixQudO3euUp4Hs9prB/KE4zjfMsbUaS/sFAAAUVZTU3OkTZs2n2rPgYYCAD8ZYx6MwEmdUzZs2LBFeyIAkKyr/gkTJtgv/kVlN9Ws9pqBPGOMeSsCJ/ZXpqqq6lPtCQFA/tu6dev24cOHL3Ec56j2vGcoAAjSnXfe+evGmPUROLlvmPLy8nXaEwOA+Lt8+fLl2trak7t27dpdVVW14b333lsxZsyYJV27dq0sKCg4qD3XGQoAwpRKpf7cGHMqAie4Z2bNmrVce+IAEI2n8Wtqao5u3759h70zOH/+/FXTp0+vsNvzjh8/vnzkyJFlAwcOLO/Zs2dF586dV9nf74uKinYUFBTsy2QyR0WkQXs+u8X8RHutQJ6K+keDXnzxxTLtiQfArTt79uyZI0eOHK6urt6xZs2ajYsXL14zZ86cSrtw2/H99NNPLxkwYEDZAw88sKxLly4rO3TosK5Vq1ZbCgsL92YymeNKu+9FJiIyVXudQB4Tkee1T3KvPPTQQ0u1JzAgqa696i4rK1t79cr72qtueyv9i1feTVfdiV68fcpk7TUCeSyVSv2KMUZrm8sbpmXLlrwGCNzCk+wnT548sW/fvn32TZqlS5eumzdv3srp06cvs0+4P/vss0vs1rZ9+vRZ2q1bt8rS0tI1rVu33ti0cB8yxpzWHvvEXM1L2msE8pwx5g9F5EAETvZfiohcthOZ9oQKhHnVXVtbe+p6v3fbq+4XXnihzOv3bnvV7TjOqSj/rEdueg4cqr0+IAFE5H9H8aNB9qpFe1IGcnHmzJnaQ4cOHdy2bVv1qlWrPl20aNHq2bNnN/7ebRfuYcOGLenfv3/jwn3vvfeubNeu3Sf2Lpd9UM0YczKK44/oRkR6a68NSAgRGax9wl+b1q1bsxcAAtXQ0ODW1tbW79+//+jmzZt3VlZWbpw/f/76bDa77vXXX6964YUXlj/55JMV/fr1W969e/cVd9999+p27dptatWq1c7CwsKDjuPUao8Tkrdprb0uIFkfDfpZBE76X8rKlSs3aC8SiKb6+vo6+612+8U2+3u3fVDNvuM9derUZePHjy8bPXr0ksGDB5fZB0rtg2odO3ZcW1JSsqmoqGhnJpM5IiJntc9vQoxHUqnUX2svCkiQTCbzOyLymfaJ/8W0bNly+6VLly5pLzYI9hWxjz/++LqviD344INer4jVa5+bhASYS6Wlpf9Ke01Awhhj/qvi96+vmwEDBpRrL1j4Z1euXGm8ZX7gwIGjW7du3bly5cpPP/roo09mz569bsqUKStffPHFiqeeempZ//79K3r06FF5zz33rOnQoYO9ZV5dWFh4IJPJfB7jjVkICSUiskV7LUBCOY7zHe0BcG3s7VztxS/uLl68eNHjFbGKG70iVlxcXM0rYoSEmje11wEkmN2EIgKD4JfSu3fvZfbWsZtAdXV15+xnSnfu3Llr3bp1m+zv3faW+dtvv7305Zdftq+HLRk0aJD9vXtZ165dV3To0MH+3m1vme92HKfGGHNe++9HCDG55gHtNQAJlkqlfs0YsyYCA+GXUlBQcMC+Hhin5wLsK2KHDx++1VfETvCKGCGJypVMJvNn2msAEq6goOD/a3pH2Y1aHMc5OHTo0CX2ath+7SvAr4idsrfMN23atHX58uXrP/jgg6qf/OQnFZMmTSq3XxQbMmTI1Vvmy0tLS+3GLBuKi4s/s0UlQt8VJ4TEJyu1536gUTqdbhWDh7ZOt2/f/pO+ffuWjxs3rszeIVi4cOEqe4v82lz7itgjjzzCK2KEkMjEcZxB2vM+8Asi8oz2oCCEkHyPiJwtLCz8Pe05H/iFESNGfN0Ys1B7cBBCSJ7nVe35HviSgoKCf2uM2R+BAUIIIfmY08aYP9Ge64HrSqfT/8B3vgkhxP+IyPe053jghowx39UeKIQQkk8RkSq2/kUsiMh07QFDCCH5EBE5YV+51p7XgZx8+9vf/m1jzFbtgUMIIXF/6j+dTqe053TgpojIX7E3PCGE3Frknz+6JtpzOXBLRKSL9iAihJC4RUR2Oo7zLe05HLgtIjJRezARQkiMMqd58+a/qz13A7etWbNm3zTGVERgUBFCSJSzw3GcEu05G/CV/XKVMeZYBAYYIYREKiKyxRjzYHFx8a9qz9VAINLpdFEMPhpECCFh5Iwx5ici0tJupa49PwOBM8aMiMDAI4SQsHPFGLPJGPNDEelw5513/rr2fAxofDRoQQQGIyGE+J6mu5yHjDErRWSKiAx2HKc4lUr9G+35F1DnOM7vi8he7YFKCCFeEZFaEdlnjNnY9BDz/zHGzDDGTDLGPGeMecIY85DjOJ3tAu84zt9nMpl/V1pa+g3tORaINGPM/xSReu1BTgjJ29TZK3ER2WwXcBGZZ4yZZj+nKyIjmxbw74pIN2NM60wm01xE/qZpEWfPfSBI6XS6TwQmCUJI9BfvRddZwK+7eDe9P/817fkNwFdoGtDakw0hxL/UicgREdluv2AnIh8ZY7LGmNeNMeOMMU8aY/qJyP0i0kZE/reI/LdUKvUf2PwGSBB7q80Y8/MITFqEEO9b59lcrr5TqdSvac8pAGKksLDw94wx2yIw8RGSD4v3ya/47fvq4l16nQX8V7TnAwAJY791LSJHIzCBEhLFB9cmf9XVN7vIAYgtx3H+kc8HkxjnjIgcsIu3iFSKyIciMlNEfiQiY0VkiDHmYRG51+7+lk6n/5ddvFOp1J9++9vf/m3t8QcAqlKp1P8QkRMRmMxJ8nKj18bG3ujqm9fGAMAHqVTqvxtj9kdgQSD5u2mLvdv0n+3iXVBQ8Jva5zwAoImdmO1WmtoLCwll8b5gjKkxxlQbY1Y3vfP906ZtVH8gIk+n0+n+juN8xxjTznGctOM433IcC72fLgAAAeRJREFU5z/a18b4kAoA5JlmzZp9U0Se5wuC0Y6IfG6M2SMiG0Rkqb11LiLTRWSiiDxrjHlcRHrbp85FpDCdTv9DKpX667vuuuuP+SAKAMCTMebvRGSV9kKX4C1T7e/eva/327ctadrnBwAgj9kPbBhjuorIZxFYMKOUkyKyyxjziTGmzBjzT02L93hjzPftl8hEpJe9+nYcJ2M/WOI4zl8aY/6Q18YAALFhf++1r1CJyPtx/5iQiJxr+mzo1qbnHexnkmfZd77tTx/GmGH2ewmO49znOE6JMeauTCbzt5lM5s8ymczvaP8tAABQUVxc/K+NMfc07TG+NcxnBZr+s+zV904RWSsiH4vIeyIyVUReEZFRjuMMMsY8kE6nO9qrbxFplkql/rx58+Z/wGtjAAD4xN7SzmQy/7/9wIgx5jERmdD0MJp9onxR0+tha76Qq18Zs/+3f2LTFgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANyRBP8XZkVkuekngasAAAAASUVORK5CYII=" + }, + "packageIdentifier": "XPDBVSS44R0L9H", + "repositoryType": "microsoftStore", + "installExperience": { + "runAsAccount": "user" + } +} diff --git a/Templates/MobileApps/Windows/Store/VLC.json b/Templates/MobileApps/Windows/Store/VLC.json new file mode 100644 index 0000000..cbdd82e --- /dev/null +++ b/Templates/MobileApps/Windows/Store/VLC.json @@ -0,0 +1,23 @@ +{ + "@odata.type": "#microsoft.graph.winGetApp", + "displayName": "VLC", + "description": "VLC media player (previously the VideoLAN Client and commonly known as simply VLC) is a free and open-source, portable, cross-platform media player software and streaming media server developed by the VideoLAN project.", + "publisher": "VideoLAN", + "developer": "VideoLAN", + "informationUrl": "https://www.videolan.org/support/", + "privacyInformationUrl": "https://www.videolan.org/privacy.html", + "isFeatured": false, + "categories": [], + "roleScopeTagIds": [], + "notes": "", + "owner": "", + "largeIcon": { + "type": "image/png", + "value": "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" + }, + "packageIdentifier": "XPDM1ZW6815MQM", + "repositoryType": "microsoftStore", + "installExperience": { + "runAsAccount": "system" + } +} diff --git a/Templates/StaticGroups/Static-Groups.json b/Templates/StaticGroups/Static-Groups.json index f5fbcb8..48e25d8 100644 --- a/Templates/StaticGroups/Static-Groups.json +++ b/Templates/StaticGroups/Static-Groups.json @@ -1,11 +1,11 @@ { "groups": [ { - "displayName": "Intune - Update Ring Pilot Users", + "displayName": "Intune - Assignment Ring Pilot Users", "description": "Users targeted for the pilot phase of Windows Update for Business and Driver Updates" }, { - "displayName": "Intune - Update Ring UAT Users", + "displayName": "Intune - Assignment Ring UAT Users", "description": "Users targeted for the UAT phase of Windows Update for Business and Driver Updates" }, {