| 
					
				 | 
			
			
				@@ -0,0 +1,1054 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# Copyright (c) Microsoft Corporation.  All rights reserved. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+$InitialDatabase = '0' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+$knownExceptions = @( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    'System.Data.Entity.Migrations.Infrastructure.MigrationsException', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    'System.Data.Entity.Migrations.Infrastructure.AutomaticMigrationsDisabledException', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    'System.Data.Entity.Migrations.Infrastructure.AutomaticDataLossException', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    'System.Data.Entity.Migrations.Infrastructure.MigrationsPendingException', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    'System.Data.Entity.Migrations.ProjectTypeNotSupportedException' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<# 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.SYNOPSIS 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Adds or updates an Entity Framework provider entry in the project config 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    file. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.DESCRIPTION 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Adds an entry into the 'entityFramework' section of the project config 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    file for the specified provider invariant name and provider type. If an 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    entry for the given invariant name already exists, then that entry is 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    updated with the given type name, unless the given type name already 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    matches, in which case no action is taken. The 'entityFramework' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    section is added if it does not exist. The config file is automatically 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    saved if and only if a change was made. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    This command is typically used only by Entity Framework provider NuGet 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    packages and is run from the 'install.ps1' script. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.PARAMETER Project 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    The Visual Studio project to update. When running in the NuGet install.ps1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    script the '$project' variable provided as part of that script should be 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    used. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.PARAMETER InvariantName 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    The provider invariant name that uniquely identifies this provider. For 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    example, the Microsoft SQL Server provider is registered with the invariant 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    name 'System.Data.SqlClient'. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.PARAMETER TypeName 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    The assembly-qualified type name of the provider-specific type that 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    inherits from 'System.Data.Entity.Core.Common.DbProviderServices'. For 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    example, for the Microsoft SQL Server provider, this type is  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    'System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer'. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+function Add-EFProvider 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    param ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [parameter(Position = 0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Mandatory = $true)] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $Project, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [parameter(Position = 1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Mandatory = $true)] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [string] $InvariantName, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [parameter(Position = 2, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Mandatory = $true)] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [string] $TypeName 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Check-Project $project 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    $runner = New-EFConfigRunner $Project 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    try 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Invoke-RunnerCommand $runner System.Data.Entity.ConnectionFactoryConfig.AddProviderCommand @( $InvariantName, $TypeName ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $error = Get-RunnerError $runner 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if ($error) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if ($knownExceptions -notcontains $error.TypeName) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Write-Host $error.StackTrace 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Write-Verbose $error.StackTrace 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            throw $error.Message 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    finally 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    {				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Remove-Runner $runner 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<# 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.SYNOPSIS 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Adds or updates an Entity Framework default connection factory in the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    project config file. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.DESCRIPTION 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Adds an entry into the 'entityFramework' section of the project config 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    file for the connection factory that Entity Framework will use by default 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    when creating new connections by convention. Any existing entry will be 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    overridden if it does not match. The 'entityFramework' section is added if 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    it does not exist. The config file is automatically saved if and only if 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    a change was made. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    This command is typically used only by Entity Framework provider NuGet 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    packages and is run from the 'install.ps1' script. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.PARAMETER Project 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    The Visual Studio project to update. When running in the NuGet install.ps1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    script the '$project' variable provided as part of that script should be 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    used. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.PARAMETER TypeName 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    The assembly-qualified type name of the connection factory type that 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    implements the 'System.Data.Entity.Infrastructure.IDbConnectionFactory' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    interface.  For example, for the Microsoft SQL Server Express provider 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    connection factory, this type is 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    'System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework'. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.PARAMETER ConstructorArguments 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    An optional array of strings that will be passed as arguments to the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    connection factory type constructor. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+function Add-EFDefaultConnectionFactory 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    param ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [parameter(Position = 0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Mandatory = $true)] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $Project, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [parameter(Position = 1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Mandatory = $true)] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [string] $TypeName, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [string[]] $ConstructorArguments 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Check-Project $project 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    $runner = New-EFConfigRunner $Project 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    try 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Invoke-RunnerCommand $runner System.Data.Entity.ConnectionFactoryConfig.AddDefaultConnectionFactoryCommand @( $TypeName, $ConstructorArguments ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $error = Get-RunnerError $runner 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if ($error) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if ($knownExceptions -notcontains $error.TypeName) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Write-Host $error.StackTrace 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Write-Verbose $error.StackTrace 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            throw $error.Message 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    finally 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    {				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Remove-Runner $runner 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<# 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.SYNOPSIS 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Initializes the Entity Framework section in the project config file 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    and sets defaults. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.DESCRIPTION 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Creates the 'entityFramework' section of the project config file and sets 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    the default connection factory to use SQL Express if it is running on the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    machine, or LocalDb otherwise. Note that installing a different provider 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    may change the default connection factory.  The config file is 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    automatically saved if and only if a change was made. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    In addition, any reference to 'System.Data.Entity.dll' in the project is 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    removed. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    This command is typically used only by Entity Framework provider NuGet 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    packages and is run from the 'install.ps1' script. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.PARAMETER Project 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    The Visual Studio project to update. When running in the NuGet install.ps1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    script the '$project' variable provided as part of that script should be 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    used. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+function Initialize-EFConfiguration 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    param ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [parameter(Position = 0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Mandatory = $true)] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $Project 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Check-Project $project 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    $runner = New-EFConfigRunner $Project 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    try 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Invoke-RunnerCommand $runner System.Data.Entity.ConnectionFactoryConfig.InitializeEntityFrameworkCommand 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $error = Get-RunnerError $runner 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if ($error) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if ($knownExceptions -notcontains $error.TypeName) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Write-Host $error.StackTrace 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Write-Verbose $error.StackTrace 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            throw $error.Message 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    finally 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    {				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Remove-Runner $runner 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<# 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.SYNOPSIS 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Enables Code First Migrations in a project. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.DESCRIPTION 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Enables Migrations by scaffolding a migrations configuration class in the project. If the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    target database was created by an initializer, an initial migration will be created (unless 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    automatic migrations are enabled via the EnableAutomaticMigrations parameter). 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.PARAMETER ContextTypeName 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Specifies the context to use. If omitted, migrations will attempt to locate a 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    single context type in the target project. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.PARAMETER EnableAutomaticMigrations 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Specifies whether automatic migrations will be enabled in the scaffolded migrations configuration. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    If omitted, automatic migrations will be disabled. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.PARAMETER MigrationsDirectory 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Specifies the name of the directory that will contain migrations code files. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    If omitted, the directory will be named "Migrations".  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.PARAMETER ProjectName 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Specifies the project that the scaffolded migrations configuration class will 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    be added to. If omitted, the default project selected in package manager 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    console is used. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.PARAMETER StartUpProjectName 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Specifies the configuration file to use for named connection strings. If 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    omitted, the specified project's configuration file is used. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.PARAMETER ContextProjectName 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Specifies the project which contains the DbContext class to use. If omitted, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    the context is assumed to be in the same project used for migrations. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.PARAMETER ConnectionStringName 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Specifies the name of a connection string to use from the application's 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    configuration file. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.PARAMETER ConnectionString 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Specifies the the connection string to use. If omitted, the context's 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    default connection will be used. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.PARAMETER ConnectionProviderName 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Specifies the provider invariant name of the connection string. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.PARAMETER Force 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Specifies that the migrations configuration be overwritten when running more 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    than once for a given project. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+function Enable-Migrations 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [CmdletBinding(DefaultParameterSetName = 'ConnectionStringName')]  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    param ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [string] $ContextTypeName, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [alias('Auto')] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [switch] $EnableAutomaticMigrations, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [string] $MigrationsDirectory, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [string] $ProjectName, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [string] $StartUpProjectName, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [string] $ContextProjectName, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [parameter(ParameterSetName = 'ConnectionStringName')] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [string] $ConnectionStringName, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [parameter(ParameterSetName = 'ConnectionStringAndProviderName', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Mandatory = $true)] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [string] $ConnectionString, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [parameter(ParameterSetName = 'ConnectionStringAndProviderName', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Mandatory = $true)] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [string] $ConnectionProviderName, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [switch] $Force 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    $runner = New-MigrationsRunner $ProjectName $StartUpProjectName $ContextProjectName $null $ConnectionStringName $ConnectionString $ConnectionProviderName 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    try 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Invoke-RunnerCommand $runner System.Data.Entity.Migrations.EnableMigrationsCommand @( $EnableAutomaticMigrations.IsPresent, $Force.IsPresent ) @{ 'ContextTypeName' = $ContextTypeName; 'MigrationsDirectory' = $MigrationsDirectory }        		 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $error = Get-RunnerError $runner					 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if ($error) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if ($knownExceptions -notcontains $error.TypeName) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Write-Host $error.StackTrace 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Write-Verbose $error.StackTrace 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            throw $error.Message 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $(Get-VSComponentModel).GetService([NuGetConsole.IPowerConsoleWindow]).Show()	         
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    finally 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    {				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Remove-Runner $runner		 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<# 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.SYNOPSIS 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Scaffolds a migration script for any pending model changes. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.DESCRIPTION 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Scaffolds a new migration script and adds it to the project. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.PARAMETER Name 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Specifies the name of the custom script. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.PARAMETER Force 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Specifies that the migration user code be overwritten when re-scaffolding an 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    existing migration. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.PARAMETER ProjectName 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Specifies the project that contains the migration configuration type to be 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    used. If omitted, the default project selected in package manager console 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    is used. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.PARAMETER StartUpProjectName 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Specifies the configuration file to use for named connection strings. If 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    omitted, the specified project's configuration file is used. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.PARAMETER ConfigurationTypeName 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Specifies the migrations configuration to use. If omitted, migrations will 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    attempt to locate a single migrations configuration type in the target 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    project. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.PARAMETER ConnectionStringName 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Specifies the name of a connection string to use from the application's 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    configuration file. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.PARAMETER ConnectionString 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Specifies the the connection string to use. If omitted, the context's 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    default connection will be used. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.PARAMETER ConnectionProviderName 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Specifies the provider invariant name of the connection string. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.PARAMETER IgnoreChanges 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Scaffolds an empty migration ignoring any pending changes detected in the current model. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    This can be used to create an initial, empty migration to enable Migrations for an existing 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    database. N.B. Doing this assumes that the target database schema is compatible with the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    current model. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+function Add-Migration 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [CmdletBinding(DefaultParameterSetName = 'ConnectionStringName')] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    param ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [parameter(Position = 0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Mandatory = $true)] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [string] $Name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [switch] $Force, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [string] $ProjectName, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [string] $StartUpProjectName, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [string] $ConfigurationTypeName, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [parameter(ParameterSetName = 'ConnectionStringName')] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [string] $ConnectionStringName, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [parameter(ParameterSetName = 'ConnectionStringAndProviderName', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Mandatory = $true)] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [string] $ConnectionString, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [parameter(ParameterSetName = 'ConnectionStringAndProviderName', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Mandatory = $true)] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [string] $ConnectionProviderName, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [switch] $IgnoreChanges) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    $runner = New-MigrationsRunner $ProjectName $StartUpProjectName $null $ConfigurationTypeName $ConnectionStringName $ConnectionString $ConnectionProviderName 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    try 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Invoke-RunnerCommand $runner System.Data.Entity.Migrations.AddMigrationCommand @( $Name, $Force.IsPresent, $IgnoreChanges.IsPresent ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $error = Get-RunnerError $runner       		 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if ($error) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if ($knownExceptions -notcontains $error.TypeName) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Write-Host $error.StackTrace 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Write-Verbose $error.StackTrace 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            throw $error.Message 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }		 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $(Get-VSComponentModel).GetService([NuGetConsole.IPowerConsoleWindow]).Show()	         
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    finally 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    {			 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Remove-Runner $runner		 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }	 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<# 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.SYNOPSIS 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Applies any pending migrations to the database. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.DESCRIPTION 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Updates the database to the current model by applying pending migrations. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.PARAMETER SourceMigration 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Only valid with -Script. Specifies the name of a particular migration to use 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    as the update's starting point. If omitted, the last applied migration in 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    the database will be used. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.PARAMETER TargetMigration 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Specifies the name of a particular migration to update the database to. If 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    omitted, the current model will be used. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.PARAMETER Script 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Generate a SQL script rather than executing the pending changes directly. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.PARAMETER Force 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Specifies that data loss is acceptable during automatic migration of the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    database. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.PARAMETER ProjectName 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Specifies the project that contains the migration configuration type to be 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    used. If omitted, the default project selected in package manager console 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    is used. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.PARAMETER StartUpProjectName 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Specifies the configuration file to use for named connection strings. If 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    omitted, the specified project's configuration file is used. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.PARAMETER ConfigurationTypeName 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Specifies the migrations configuration to use. If omitted, migrations will 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    attempt to locate a single migrations configuration type in the target 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    project. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.PARAMETER ConnectionStringName 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Specifies the name of a connection string to use from the application's 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    configuration file. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.PARAMETER ConnectionString 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Specifies the the connection string to use. If omitted, the context's 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    default connection will be used. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.PARAMETER ConnectionProviderName 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Specifies the provider invariant name of the connection string. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+function Update-Database 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [CmdletBinding(DefaultParameterSetName = 'ConnectionStringName')] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    param ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [string] $SourceMigration, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [string] $TargetMigration, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [switch] $Script, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [switch] $Force, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [string] $ProjectName, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [string] $StartUpProjectName, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [string] $ConfigurationTypeName, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [parameter(ParameterSetName = 'ConnectionStringName')] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [string] $ConnectionStringName, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [parameter(ParameterSetName = 'ConnectionStringAndProviderName', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Mandatory = $true)] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [string] $ConnectionString, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [parameter(ParameterSetName = 'ConnectionStringAndProviderName', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Mandatory = $true)] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [string] $ConnectionProviderName) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    $runner = New-MigrationsRunner $ProjectName $StartUpProjectName $null $ConfigurationTypeName $ConnectionStringName $ConnectionString $ConnectionProviderName 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    try 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Invoke-RunnerCommand $runner System.Data.Entity.Migrations.UpdateDatabaseCommand @( $SourceMigration, $TargetMigration, $Script.IsPresent, $Force.IsPresent, $Verbose.IsPresent ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $error = Get-RunnerError $runner 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+         
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if ($error) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if ($knownExceptions -notcontains $error.TypeName) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Write-Host $error.StackTrace 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Write-Verbose $error.StackTrace 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            throw $error.Message 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }		 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $(Get-VSComponentModel).GetService([NuGetConsole.IPowerConsoleWindow]).Show()	         
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    finally 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    {		      
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Remove-Runner $runner 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<# 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.SYNOPSIS 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Displays the migrations that have been applied to the target database. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.DESCRIPTION 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Displays the migrations that have been applied to the target database. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.PARAMETER ProjectName 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Specifies the project that contains the migration configuration type to be 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    used. If omitted, the default project selected in package manager console 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    is used. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.PARAMETER StartUpProjectName 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Specifies the configuration file to use for named connection strings. If 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    omitted, the specified project's configuration file is used. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.PARAMETER ConfigurationTypeName 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Specifies the migrations configuration to use. If omitted, migrations will 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    attempt to locate a single migrations configuration type in the target 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    project. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.PARAMETER ConnectionStringName 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Specifies the name of a connection string to use from the application's 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    configuration file. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.PARAMETER ConnectionString 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Specifies the the connection string to use. If omitted, the context's 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    default connection will be used. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.PARAMETER ConnectionProviderName 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Specifies the provider invariant name of the connection string. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+function Get-Migrations 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [CmdletBinding(DefaultParameterSetName = 'ConnectionStringName')] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    param ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [string] $ProjectName, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [string] $StartUpProjectName, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [string] $ConfigurationTypeName, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [parameter(ParameterSetName = 'ConnectionStringName')] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [string] $ConnectionStringName, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [parameter(ParameterSetName = 'ConnectionStringAndProviderName', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Mandatory = $true)] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [string] $ConnectionString, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [parameter(ParameterSetName = 'ConnectionStringAndProviderName', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Mandatory = $true)] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [string] $ConnectionProviderName) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    $runner = New-MigrationsRunner $ProjectName $StartUpProjectName $null $ConfigurationTypeName $ConnectionStringName $ConnectionString $ConnectionProviderName 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    try 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Invoke-RunnerCommand $runner System.Data.Entity.Migrations.GetMigrationsCommand 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $error = Get-RunnerError $runner 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+         
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if ($error) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if ($knownExceptions -notcontains $error.TypeName) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Write-Host $error.StackTrace 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Write-Verbose $error.StackTrace 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            throw $error.Message 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    finally 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Remove-Runner $runner 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+function New-MigrationsRunner($ProjectName, $StartUpProjectName, $ContextProjectName, $ConfigurationTypeName, $ConnectionStringName, $ConnectionString, $ConnectionProviderName) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    $startUpProject = Get-MigrationsStartUpProject $StartUpProjectName $ProjectName 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Build-Project $startUpProject 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    $project = Get-MigrationsProject $ProjectName 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Build-Project $project 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    $contextProject = $project 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if ($ContextProjectName) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $contextProject = Get-SingleProject $ContextProjectName 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Build-Project $contextProject 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    $installPath = Get-EntityFrameworkInstallPath $project 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    $toolsPath = Join-Path $installPath tools 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    $info = New-AppDomainSetup $project $installPath 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    $domain = [AppDomain]::CreateDomain('Migrations', $null, $info) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    $domain.SetData('project', $project) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    $domain.SetData('contextProject', $contextProject) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    $domain.SetData('startUpProject', $startUpProject) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    $domain.SetData('configurationTypeName', $ConfigurationTypeName) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    $domain.SetData('connectionStringName', $ConnectionStringName) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    $domain.SetData('connectionString', $ConnectionString) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    $domain.SetData('connectionProviderName', $ConnectionProviderName) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    $dispatcher = New-DomainDispatcher $toolsPath 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    $domain.SetData('efDispatcher', $dispatcher) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    return @{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Domain = $domain; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ToolsPath = $toolsPath 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+function New-EFConfigRunner($Project) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    $installPath = Get-EntityFrameworkInstallPath $Project 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    $toolsPath = Join-Path $installPath tools 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    $info = New-AppDomainSetup $Project $installPath 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    $domain = [AppDomain]::CreateDomain('EFConfig', $null, $info) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    $domain.SetData('project', $Project) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    $dispatcher = New-DomainDispatcher $toolsPath 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    $domain.SetData('efDispatcher', $dispatcher) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    return @{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Domain = $domain; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ToolsPath = $toolsPath 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+function New-AppDomainSetup($Project, $InstallPath) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    $info = New-Object System.AppDomainSetup -Property @{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            ShadowCopyFiles = 'true'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            ApplicationBase = $InstallPath; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            PrivateBinPath = 'tools'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            ConfigurationFile = ([AppDomain]::CurrentDomain.SetupInformation.ConfigurationFile) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    $targetFrameworkVersion = (New-Object System.Runtime.Versioning.FrameworkName ($Project.Properties.Item('TargetFrameworkMoniker').Value)).Version 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if ($targetFrameworkVersion -lt (New-Object Version @( 4, 5 ))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $info.PrivateBinPath += ';lib\net40' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $info.PrivateBinPath += ';lib\net45' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    return $info 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+function New-DomainDispatcher($ToolsPath) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    $utilityAssembly = [System.Reflection.Assembly]::LoadFrom((Join-Path $ToolsPath EntityFramework.PowerShell.Utility.dll)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    $dispatcher = $utilityAssembly.CreateInstance( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        'System.Data.Entity.Migrations.Utilities.DomainDispatcher', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [System.Reflection.BindingFlags]::Instance -bor [System.Reflection.BindingFlags]::Public, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $PSCmdlet, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $null) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    return $dispatcher 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+function Remove-Runner($runner) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [AppDomain]::Unload($runner.Domain) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+function Invoke-RunnerCommand($runner, $command, $parameters, $anonymousArguments) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    $domain = $runner.Domain 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if ($anonymousArguments) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $anonymousArguments.GetEnumerator() | %{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $domain.SetData($_.Name, $_.Value) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    $domain.CreateInstanceFrom( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        (Join-Path $runner.ToolsPath EntityFramework.PowerShell.dll), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $command, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $parameters, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $null) | Out-Null 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+function Get-RunnerError($runner) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    $domain = $runner.Domain 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if (!$domain.GetData('wasError')) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return $null 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    return @{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Message = $domain.GetData('error.Message'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            TypeName = $domain.GetData('error.TypeName'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            StackTrace = $domain.GetData('error.StackTrace') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+function Get-MigrationsProject($name, $hideMessage) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if ($name) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return Get-SingleProject $name 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    $project = Get-Project 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    $projectName = $project.Name 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if (!$hideMessage) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Write-Verbose "Using NuGet project '$projectName'." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    return $project 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+function Get-MigrationsStartUpProject($name, $fallbackName) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+{     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    $startUpProject = $null 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if ($name) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $startUpProject = Get-SingleProject $name 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $startupProjectPaths = $DTE.Solution.SolutionBuild.StartupProjects 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if ($startupProjectPaths) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if ($startupProjectPaths.Length -eq 1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                $startupProjectPath = $startupProjectPaths[0] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (!(Split-Path -IsAbsolute $startupProjectPath)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    $solutionPath = Split-Path $DTE.Solution.Properties.Item('Path').Value 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    $startupProjectPath = Join-Path $solutionPath $startupProjectPath -Resolve 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                $startupProject = Get-SolutionProjects | ?{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    try 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        $fullName = $_.FullName 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    catch [NotImplementedException] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        return $false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if ($fullName -and $fullName.EndsWith('\')) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        $fullName = $fullName.Substring(0, $fullName.Length - 1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    return $fullName -eq $startupProjectPath 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Write-Verbose 'More than one start-up project found.' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Write-Verbose 'No start-up project found.' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if (!($startUpProject -and (Test-StartUpProject $startUpProject))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $startUpProject = Get-MigrationsProject $fallbackName $true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $startUpProjectName = $startUpProject.Name 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Write-Warning "Cannot determine a valid start-up project. Using project '$startUpProjectName' instead. Your configuration file and working directory may not be set as expected. Use the -StartUpProjectName parameter to set one explicitly. Use the -Verbose switch for more information." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $startUpProjectName = $startUpProject.Name 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Write-Verbose "Using StartUp project '$startUpProjectName'." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    return $startUpProject 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+function Get-SolutionProjects() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    $projects = New-Object System.Collections.Stack 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    $DTE.Solution.Projects | %{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $projects.Push($_) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    while ($projects.Count -ne 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $project = $projects.Pop(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+         
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        # NOTE: This line is similar to doing a "yield return" in C# 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $project 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if ($project.ProjectItems) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $project.ProjectItems | ?{ $_.SubProject } | %{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                $projects.Push($_.SubProject) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+function Get-SingleProject($name) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    $project = Get-Project $name 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if ($project -is [array]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        throw "More than one project '$name' was found. Specify the full name of the one to use." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    return $project 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+function Test-StartUpProject($project) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+{     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if ($project.Kind -eq '{cc5fd16d-436d-48ad-a40c-5a424c6e3e79}') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $projectName = $project.Name 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Write-Verbose "Cannot use start-up project '$projectName'. The Windows Azure Project type isn't supported." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+         
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return $false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    return $true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+function Build-Project($project) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    $configuration = $DTE.Solution.SolutionBuild.ActiveConfiguration.Name 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    $DTE.Solution.SolutionBuild.BuildProject($configuration, $project.UniqueName, $true) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if ($DTE.Solution.SolutionBuild.LastBuildInfo) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $projectName = $project.Name 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        throw "The project '$projectName' failed to build." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+function Get-EntityFrameworkInstallPath($project) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    $package = Get-Package -ProjectName $project.FullName | ?{ $_.Id -eq 'EntityFramework' } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if (!$package) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $projectName = $project.Name 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        throw "The EntityFramework package is not installed on project '$projectName'." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    return Get-PackageInstallPath $package 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+function Get-PackageInstallPath($package) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    $componentModel = Get-VsComponentModel 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    $packageInstallerServices = $componentModel.GetService([NuGet.VisualStudio.IVsPackageInstallerServices]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    $vsPackage = $packageInstallerServices.GetInstalledPackages() | ?{ $_.Id -eq $package.Id -and $_.Version -eq $package.Version } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    return $vsPackage.InstallPath 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+function Check-Project($project) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if (!$project.FullName) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        throw "The Project argument must refer to a Visual Studio project. Use the '`$project' variable provided by NuGet when running in install.ps1." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+Export-ModuleMember @( 'Enable-Migrations', 'Add-Migration', 'Update-Database', 'Get-Migrations', 'Add-EFProvider', 'Add-EFDefaultConnectionFactory', 'Initialize-EFConfiguration') -Variable InitialDatabase 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# SIG # Begin signature block 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# MIIarwYJKoZIhvcNAQcCoIIaoDCCGpwCAQExCzAJBgUrDgMCGgUAMGkGCisGAQQB 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# gjcCAQSgWzBZMDQGCisGAQQBgjcCAR4wJgIDAQAABBAfzDtgWUsITrck0sYpfvNR 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# AgEAAgEAAgEAAgEAAgEAMCEwCQYFKw4DAhoFAAQUGD2nrGYv22CsZ8TVTLPYVoMj 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# HJGgghWCMIIEwzCCA6ugAwIBAgITMwAAACs5MkjBsslI8wAAAAAAKzANBgkqhkiG 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# 9w0BAQUFADB3MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4G 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# A1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSEw 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# HwYDVQQDExhNaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EwHhcNMTIwOTA0MjExMjM0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# WhcNMTMxMjA0MjExMjM0WjCBszELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# b3JhdGlvbjENMAsGA1UECxMETU9QUjEnMCUGA1UECxMebkNpcGhlciBEU0UgRVNO 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# OkMwRjQtMzA4Ni1ERUY4MSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBT 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# ZXJ2aWNlMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAprYwDgNlrlBa 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# hmuFn0ihHsnA7l5JB4XgcJZ8vrlfYl8GJtOLObsYIqUukq3YS4g6Gq+bg67IXjmM 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# wjJ7FnjtNzg68WL7aIICaOzru0CKsf6hLDZiYHA5YGIO+8YYOG+wktZADYCmDXiL 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# NmuGiiYXGP+w6026uykT5lxIjnBGNib+NDWrNOH32thc6pl9MbdNH1frfNaVDWYM 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# Hg4yFz4s1YChzuv3mJEC3MFf/TiA+Dl/XWTKN1w7UVtdhV/OHhz7NL5f5ShVcFSc 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# uOx8AFVGWyiYKFZM4fG6CRmWgUgqMMj3MyBs52nDs9TDTs8wHjfUmFLUqSNFsq5c 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# QUlPtGJokwIDAQABo4IBCTCCAQUwHQYDVR0OBBYEFKUYM1M/lWChQxbvjsav0iu6 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# nljQMB8GA1UdIwQYMBaAFCM0+NlSRnAK7UD7dvuzK7DDNbMPMFQGA1UdHwRNMEsw 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# SaBHoEWGQ2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3Rz 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# L01pY3Jvc29mdFRpbWVTdGFtcFBDQS5jcmwwWAYIKwYBBQUHAQEETDBKMEgGCCsG 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# AQUFBzAChjxodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY3Jv 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# c29mdFRpbWVTdGFtcFBDQS5jcnQwEwYDVR0lBAwwCgYIKwYBBQUHAwgwDQYJKoZI 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# hvcNAQEFBQADggEBAH7MsHvlL77nVrXPc9uqUtEWOca0zfrX/h5ltedI85tGiAVm 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# aiaGXv6HWNzGY444gPQIRnwrc7EOv0Gqy8eqlKQ38GQ54cXV+c4HzqvkJfBprtRG 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# 4v5mMjzXl8UyIfruGiWgXgxCLBEzOoKD/e0ds77OkaSRJXG5q3Kwnq/kzwBiiXCp 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# uEpQjO4vImSlqOZNa5UsHHnsp6Mx2pBgkKRu/pMCDT8sJA3GaiaBUYNKELt1Y0Sq 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# aQjGA+vizwvtVjrs73KnCgz0ANMiuK8icrPnxJwLKKCAyuPh1zlmMOdGFxjn+oL6 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# WQt6vKgN/hz/A4tjsk0SAiNPLbOFhDvioUfozxUwggTsMIID1KADAgECAhMzAAAA 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# sBGvCovQO5/dAAEAAACwMA0GCSqGSIb3DQEBBQUAMHkxCzAJBgNVBAYTAlVTMRMw 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# aWNyb3NvZnQgQ29ycG9yYXRpb24xIzAhBgNVBAMTGk1pY3Jvc29mdCBDb2RlIFNp 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# Z25pbmcgUENBMB4XDTEzMDEyNDIyMzMzOVoXDTE0MDQyNDIyMzMzOVowgYMxCzAJ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xDTALBgNVBAsTBE1PUFIx 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# HjAcBgNVBAMTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjCCASIwDQYJKoZIhvcNAQEB 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# BQADggEPADCCAQoCggEBAOivXKIgDfgofLwFe3+t7ut2rChTPzrbQH2zjjPmVz+l 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# URU0VKXPtIupP6g34S1Q7TUWTu9NetsTdoiwLPBZXKnr4dcpdeQbhSeb8/gtnkE2 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# KwtA+747urlcdZMWUkvKM8U3sPPrfqj1QRVcCGUdITfwLLoiCxCxEJ13IoWEfE+5 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# G5Cw9aP+i/QMmk6g9ckKIeKq4wE2R/0vgmqBA/WpNdyUV537S9QOgts4jxL+49Z6 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# dIhk4WLEJS4qrp0YHw4etsKvJLQOULzeHJNcSaZ5tbbbzvlweygBhLgqKc+/qQUF 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# 4eAPcU39rVwjgynrx8VKyOgnhNN+xkMLlQAFsU9lccUCAwEAAaOCAWAwggFcMBMG 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# A1UdJQQMMAoGCCsGAQUFBwMDMB0GA1UdDgQWBBRZcaZaM03amAeA/4Qevof5cjJB 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# 8jBRBgNVHREESjBIpEYwRDENMAsGA1UECxMETU9QUjEzMDEGA1UEBRMqMzE1OTUr 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# NGZhZjBiNzEtYWQzNy00YWEzLWE2NzEtNzZiYzA1MjM0NGFkMB8GA1UdIwQYMBaA 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# FMsR6MrStBZYAck3LjMWFrlMmgofMFYGA1UdHwRPME0wS6BJoEeGRWh0dHA6Ly9j 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# cmwubWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY0NvZFNpZ1BDQV8w 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# OC0zMS0yMDEwLmNybDBaBggrBgEFBQcBAQROMEwwSgYIKwYBBQUHMAKGPmh0dHA6 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# Ly93d3cubWljcm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljQ29kU2lnUENBXzA4LTMx 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# LTIwMTAuY3J0MA0GCSqGSIb3DQEBBQUAA4IBAQAx124qElczgdWdxuv5OtRETQie 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# 7l7falu3ec8CnLx2aJ6QoZwLw3+ijPFNupU5+w3g4Zv0XSQPG42IFTp8263Os8ls 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# ujksRX0kEVQmMA0N/0fqAwfl5GZdLHudHakQ+hywdPJPaWueqSSE2u2WoN9zpO9q 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# GqxLYp7xfMAUf0jNTbJE+fA8k21C2Oh85hegm2hoCSj5ApfvEQO6Z1Ktwemzc6bS 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# Y81K4j7k8079/6HguwITO10g3lU/o66QQDE4dSheBKlGbeb1enlAvR/N6EXVruJd 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# PvV1x+ZmY2DM1ZqEh40kMPfvNNBjHbFCZ0oOS786Du+2lTqnOOQlkgimiGaCMIIF 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# vDCCA6SgAwIBAgIKYTMmGgAAAAAAMTANBgkqhkiG9w0BAQUFADBfMRMwEQYKCZIm 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# iZPyLGQBGRYDY29tMRkwFwYKCZImiZPyLGQBGRYJbWljcm9zb2Z0MS0wKwYDVQQD 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# EyRNaWNyb3NvZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcNMTAwODMx 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# MjIxOTMyWhcNMjAwODMxMjIyOTMyWjB5MQswCQYDVQQGEwJVUzETMBEGA1UECBMK 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# V2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# IENvcnBvcmF0aW9uMSMwIQYDVQQDExpNaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBD 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# QTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALJyWVwZMGS/HZpgICBC 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# mXZTbD4b1m/My/Hqa/6XFhDg3zp0gxq3L6Ay7P/ewkJOI9VyANs1VwqJyq4gSfTw 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# aKxNS42lvXlLcZtHB9r9Jd+ddYjPqnNEf9eB2/O98jakyVxF3K+tPeAoaJcap6Vy 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# c1bxF5Tk/TWUcqDWdl8ed0WDhTgW0HNbBbpnUo2lsmkv2hkL/pJ0KeJ2L1TdFDBZ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# +NKNYv3LyV9GMVC5JxPkQDDPcikQKCLHN049oDI9kM2hOAaFXE5WgigqBTK3S9dP 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# Y+fSLWLxRT3nrAgA9kahntFbjCZT6HqqSvJGzzc8OJ60d1ylF56NyxGPVjzBrAlf 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# A9MCAwEAAaOCAV4wggFaMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFMsR6MrS 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# tBZYAck3LjMWFrlMmgofMAsGA1UdDwQEAwIBhjASBgkrBgEEAYI3FQEEBQIDAQAB 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# MCMGCSsGAQQBgjcVAgQWBBT90TFO0yaKleGYYDuoMW+mPLzYLTAZBgkrBgEEAYI3 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# FAIEDB4KAFMAdQBiAEMAQTAfBgNVHSMEGDAWgBQOrIJgQFYnl+UlE/wq4QpTlVnk 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# pDBQBgNVHR8ESTBHMEWgQ6BBhj9odHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtp 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# L2NybC9wcm9kdWN0cy9taWNyb3NvZnRyb290Y2VydC5jcmwwVAYIKwYBBQUHAQEE 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# SDBGMEQGCCsGAQUFBzAChjhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpL2Nl 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# cnRzL01pY3Jvc29mdFJvb3RDZXJ0LmNydDANBgkqhkiG9w0BAQUFAAOCAgEAWTk+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# fyZGr+tvQLEytWrrDi9uqEn361917Uw7LddDrQv+y+ktMaMjzHxQmIAhXaw9L0y6 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# oqhWnONwu7i0+Hm1SXL3PupBf8rhDBdpy6WcIC36C1DEVs0t40rSvHDnqA2iA6VW 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# 4LiKS1fylUKc8fPv7uOGHzQ8uFaa8FMjhSqkghyT4pQHHfLiTviMocroE6WRTsgb 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# 0o9ylSpxbZsa+BzwU9ZnzCL/XB3Nooy9J7J5Y1ZEolHN+emjWFbdmwJFRC9f9Nqu 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# 1IIybvyklRPk62nnqaIsvsgrEA5ljpnb9aL6EiYJZTiU8XofSrvR4Vbo0HiWGFzJ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# NRZf3ZMdSY4tvq00RBzuEBUaAF3dNVshzpjHCe6FDoxPbQ4TTj18KUicctHzbMrB 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# 7HCjV5JXfZSNoBtIA1r3z6NnCnSlNu0tLxfI5nI3EvRvsTxngvlSso0zFmUeDord 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# EN5k9G/ORtTTF+l5xAS00/ss3x+KnqwK+xMnQK3k+eGpf0a7B2BHZWBATrBC7E7t 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# s3Z52Ao0CW0cgDEf4g5U3eWh++VHEK1kmP9QFi58vwUheuKVQSdpw5OPlcmN2Jsh 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# rg1cnPCiroZogwxqLbt2awAdlq3yFnv2FoMkuYjPaqhHMS+a3ONxPdcAfmJH0c6I 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# ybgY+g5yjcGjPa8CQGr/aZuW4hCoELQ3UAjWwz0wggYHMIID76ADAgECAgphFmg0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# AAAAAAAcMA0GCSqGSIb3DQEBBQUAMF8xEzARBgoJkiaJk/IsZAEZFgNjb20xGTAX 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# BgoJkiaJk/IsZAEZFgltaWNyb3NvZnQxLTArBgNVBAMTJE1pY3Jvc29mdCBSb290 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# IENlcnRpZmljYXRlIEF1dGhvcml0eTAeFw0wNzA0MDMxMjUzMDlaFw0yMTA0MDMx 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# MzAzMDlaMHcxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYD 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# VQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xITAf 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# BgNVBAMTGE1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQTCCASIwDQYJKoZIhvcNAQEB 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# BQADggEPADCCAQoCggEBAJ+hbLHf20iSKnxrLhnhveLjxZlRI1Ctzt0YTiQP7tGn 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# 0UytdDAgEesH1VSVFUmUG0KSrphcMCbaAGvoe73siQcP9w4EmPCJzB/LMySHnfL0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# Zxws/HvniB3q506jocEjU8qN+kXPCdBer9CwQgSi+aZsk2fXKNxGU7CG0OUoRi4n 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# rIZPVVIM5AMs+2qQkDBuh/NZMJ36ftaXs+ghl3740hPzCLdTbVK0RZCfSABKR2YR 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# JylmqJfk0waBSqL5hKcRRxQJgp+E7VV4/gGaHVAIhQAQMEbtt94jRrvELVSfrx54 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# QTF3zJvfO4OToWECtR0Nsfz3m7IBziJLVP/5BcPCIAsCAwEAAaOCAaswggGnMA8G 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# A1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFCM0+NlSRnAK7UD7dvuzK7DDNbMPMAsG 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# A1UdDwQEAwIBhjAQBgkrBgEEAYI3FQEEAwIBADCBmAYDVR0jBIGQMIGNgBQOrIJg 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# QFYnl+UlE/wq4QpTlVnkpKFjpGEwXzETMBEGCgmSJomT8ixkARkWA2NvbTEZMBcG 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# CgmSJomT8ixkARkWCW1pY3Jvc29mdDEtMCsGA1UEAxMkTWljcm9zb2Z0IFJvb3Qg 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# Q2VydGlmaWNhdGUgQXV0aG9yaXR5ghB5rRahSqClrUxzWPQHEy5lMFAGA1UdHwRJ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# MEcwRaBDoEGGP2h0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# Y3RzL21pY3Jvc29mdHJvb3RjZXJ0LmNybDBUBggrBgEFBQcBAQRIMEYwRAYIKwYB 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# BQUHMAKGOGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljcm9z 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# b2Z0Um9vdENlcnQuY3J0MBMGA1UdJQQMMAoGCCsGAQUFBwMIMA0GCSqGSIb3DQEB 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# BQUAA4ICAQAQl4rDXANENt3ptK132855UU0BsS50cVttDBOrzr57j7gu1BKijG1i 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# uFcCy04gE1CZ3XpA4le7r1iaHOEdAYasu3jyi9DsOwHu4r6PCgXIjUji8FMV3U+r 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# kuTnjWrVgMHmlPIGL4UD6ZEqJCJw+/b85HiZLg33B+JwvBhOnY5rCnKVuKE5nGct 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# xVEO6mJcPxaYiyA/4gcaMvnMMUp2MT0rcgvI6nA9/4UKE9/CCmGO8Ne4F+tOi3/F 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# NSteo7/rvH0LQnvUU3Ih7jDKu3hlXFsBFwoUDtLaFJj1PLlmWLMtL+f5hYbMUVbo 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# nXCUbKw5TNT2eb+qGHpiKe+imyk0BncaYsk9Hm0fgvALxyy7z0Oz5fnsfbXjpKh0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# NbhOxXEjEiZ2CzxSjHFaRkMUvLOzsE1nyJ9C/4B5IYCeFTBm6EISXhrIniIh0EPp 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# K+m79EjMLNTYMoBMJipIJF9a6lbvpt6Znco6b72BJ3QGEe52Ib+bgsEnVLaxaj2J 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# oXZhtG6hE6a/qkfwEm/9ijJssv7fUciMI8lmvZ0dhxJkAj0tr1mPuOQh5bWwymO0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# eFQF1EEuUKyUsKV4q7OglnUa2ZKHE3UiLzKoCG6gW4wlv6DvhMoh1useT8ma7kng 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# 9wFlb4kLfchpyOZu6qeXzjEp/w7FW1zYTRuh2Povnj8uVRZryROj/TGCBJcwggST 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# AgEBMIGQMHkxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYD 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# VQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xIzAh 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# BgNVBAMTGk1pY3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBAhMzAAAAsBGvCovQO5/d 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# AAEAAACwMAkGBSsOAwIaBQCggbAwGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwIwYJKoZIhvcNAQkEMRYEFHlP 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# wIpDUAGAnbgDrTywRVvTXuBEMFAGCisGAQQBgjcCAQwxQjBAoCKAIABFAG4AdABp 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# AHQAeQAgAEYAcgBhAG0AZQB3AG8AcgBroRqAGGh0dHA6Ly9tc2RuLmNvbS9kYXRh 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# L2VmIDANBgkqhkiG9w0BAQEFAASCAQBGhre2E1qw0m8EQgJBaVLi6CgwVn7+qSCY 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# WqIIcygRNohB5i3zj61/qTEa4DZLc0F3hvGC6aNwwjUbnoU4nZoqOSQgta2DaVul 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# uhm7Y+BTZsXvYY9q26UjgUbo1jdBrWelIbu+3YV+pE00UVuV0RabWkEdFBr9HeOV 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# nZYczzdVvnYkkkFxO25SVHZWT2nyWhYxMYv+HLoUBND1BmZzNYWnJqegL4BrczNm 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# exycbGbRVEO45QOJEK+3vA4o6GKPk09wcFEmkvlncGKTz4fGhYWf5ELykT0TSQuL 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# vP1PN35OUNzlpqc2FuWCDosVl8FUhphYXpiw/1sUnI5nPG8aGiUboYICKDCCAiQG 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# CSqGSIb3DQEJBjGCAhUwggIRAgEBMIGOMHcxCzAJBgNVBAYTAlVTMRMwEQYDVQQI 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# EwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3Nv 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# ZnQgQ29ycG9yYXRpb24xITAfBgNVBAMTGE1pY3Jvc29mdCBUaW1lLVN0YW1wIFBD 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# QQITMwAAACs5MkjBsslI8wAAAAAAKzAJBgUrDgMCGgUAoF0wGAYJKoZIhvcNAQkD 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# MQsGCSqGSIb3DQEHATAcBgkqhkiG9w0BCQUxDxcNMTMwOTExMTYwNDU5WjAjBgkq 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# hkiG9w0BCQQxFgQU0jwg1lgVl4Ydsz+7YfTew/L6w9EwDQYJKoZIhvcNAQEFBQAE 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# ggEAT5kurkrFiaB7YVAWU7VrrXF4Pr9kGEnSMBr0VEfztrVGNOLsdyZYk12tRYnj 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# 6MB0x1bajZMYXCj+0Z8oTzaG+JXASkNNIm4uWP1t6TsfixCw9Sr4p4cQUaIXwYj6 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# AN+tmLT82knMkW8Q/8lcc8BzfL45pjXonMNCJm3QOUwQ3SqXKgEMTsKLULFvUmsm 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# dlwbdl2nlNdNyF5t8NkQZX5NPkpXJ9gdz34XSXPADxBiuE1haiV8ckyfhBIgiq2A 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# CM2eGdggysiSVJcQGJ/GzsAsRC89FQQeqcKisHrFz7UOL8oX8ZxJ/7CWHPQUmk/t 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# gRpD2K2HFoKdbJziPMLEhoQ5yQ== 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# SIG # End signature block 
			 |