<component id="2" name="Dynamics CRM Route" componentClassID="{874F7595-FB5F-40FF-96AF-FBFF8250E3EF}" description="Executes a custom script." localeId="1033" version="7" contactInfo="Executes a custom script.;Microsoft Corporation;Microsoft SqlServer v9; © 2004 Microsoft Corporation; All Rights Reserved; http://www.microsoft.com/sql/support;0"><properties><property id="3" name="SourceCode" state="cdata" dataType="System.String" isArray="true" description="Stores the source code of the component" typeConverter="NOTBROWSABLE"><arrayElements arrayElementCount="30"><arrayElement dataType="System.String"><![CDATA[My Project\Settings.Designer.vb]]></arrayElement><arrayElement dataType="System.String"><![CDATA[UTF8]]></arrayElement><arrayElement dataType="System.String"><![CDATA['------------------------------------------------------------------------------
' <autogenerated>
'     This code was generated by a tool.
'
'     Changes to this file may cause incorrect behavior and will be lost if
'     the code is regenerated.
' </autogenerated>
'------------------------------------------------------------------------------

Option Strict Off
Option Explicit On



Partial Friend NotInheritable Class MySettings
    Inherits System.Configuration.ApplicationSettingsBase

    Private Shared m_Value As MySettings

    Private Shared m_SyncObject As Object = New Object

    <System.Diagnostics.DebuggerNonUserCode()> _
    Public Shared ReadOnly Property Value() As MySettings
        Get
            If (MySettings.m_Value Is Nothing) Then
                System.Threading.Monitor.Enter(MySettings.m_SyncObject)
                If (MySettings.m_Value Is Nothing) Then
                    Try
                        MySettings.m_Value = New MySettings
                    Finally
                        System.Threading.Monitor.Exit(MySettings.m_SyncObject)
                    End Try
                End If
            End If
            Return MySettings.m_Value
        End Get
    End Property
End Class
]]></arrayElement><arrayElement dataType="System.String"><![CDATA[scriptcomponent_f848e9d47e064155a3b4a152096b0823.vbproj]]></arrayElement><arrayElement dataType="System.String"><![CDATA[UTF16LE]]></arrayElement><arrayElement dataType="System.String"><![CDATA[<?xml version="1.0" encoding="utf-16"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <!-- This section defines project-level properties.

       Configuration - Specifies whether the default configuration is Release or Debug.
       Platform - Specifies what CPU the output of this project can run on.
       OutputType - Must be "Library" for VSTA.
       NoStandardLibraries - Set to "false" for VSTA.
       RootNamespace - In C#, this specifies the namespace given to new files.
                       In Visual Basic, all objects are wrapped in this namespace at runtime.
       AssemblyName - Name of the output assembly.
  -->
  <PropertyGroup>
    <ProjectTypeGuids>{30D016F9-3734-4E33-A861-5E7D899E18F3};{F184B08F-C81C-45F6-A57F-5ABD9991F28F}</ProjectTypeGuids>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <OutputType>Library</OutputType>
    <RootNamespace>ScriptComponent_f848e9d47e064155a3b4a152096b0823.vbproj</RootNamespace>
    <AssemblyName>ScriptComponent_f848e9d47e064155a3b4a152096b0823.vbproj</AssemblyName>
    <StartupObject>
    </StartupObject>
    <OptionExplicit>On</OptionExplicit>
    <OptionCompare>Binary</OptionCompare>
    <OptionStrict>Off</OptionStrict>
    <OptionInfer>On</OptionInfer>
    <ProjectGuid>{9717137C-BBF2-4637-B948-5142182D7D9F}</ProjectGuid>
  </PropertyGroup>
  <!-- This section defines properties that are set when the "Debug" configuration is
       selected.

       DebugSymbols - If true, create symbols (.pdb). If false, do not create symbols.
       Optimize - If true, optimize the build output. If false, do not optimize.
       OutputPath - Output path of the project relative to the project file.
       EnableUnmanagedDebugging - If true, starting the debugger will attach both managed and unmanaged debuggers.
       DefineConstants - Constants defined for the preprocessor.
       Warning Level - Warning level for the compiler.
  -->
  <PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
    <DefineConstants>
    </DefineConstants>
    <DefineDebug>true</DefineDebug>
    <DefineTrace>true</DefineTrace>
    <DebugSymbols>true</DebugSymbols>
    <Optimize>false</Optimize>
    <OutputPath>bin\</OutputPath>
    <RegisterForComInterop>false</RegisterForComInterop>
    <RemoveIntegerChecks>false</RemoveIntegerChecks>
    <NoWarn>42016,42017,42018,42019,42032,42353,42354,42355</NoWarn>
  </PropertyGroup>
  <!-- This section defines properties that are set when the "Release" configuration is
       selected.

       DebugSymbols - If true, create symbols (.pdb). If false, do not create symbols.
       Optimize - If true, optimize the build output. If false, do not optimize.
       OutputPath - Output path of the project relative to the project file.
       EnableUnmanagedDebugging - If true, starting the debugger will attach both managed and unmanaged debuggers.
       DefineConstants - Constants defined for the preprocessor.
       Warning Level - Warning level for the compiler.
  -->
  <PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
    <DefineConstants>
    </DefineConstants>
    <DefineDebug>false</DefineDebug>
    <DefineTrace>true</DefineTrace>
    <DebugSymbols>false</DebugSymbols>
    <Optimize>true</Optimize>
    <OutputPath>bin\</OutputPath>
    <RegisterForComInterop>false</RegisterForComInterop>
    <RemoveIntegerChecks>false</RemoveIntegerChecks>
    <NoWarn>42016,42017,42018,42019,42032,42353,42354,42355</NoWarn>
  </PropertyGroup>
  <!-- This section enables pre- and post-build steps. However,
       it is recommended that MSBuild tasks be used instead of these properties.
  -->
  <PropertyGroup>
    <PreBuildEvent>
    </PreBuildEvent>
    <PostBuildEvent>
    </PostBuildEvent>
  </PropertyGroup>
  <!-- This sections specifies references for the project. -->
  <ItemGroup>
    <Reference Include="CozyRoc.Dynamics, Version=1.0.0.0, Culture=neutral, PublicKeyToken=16cf490bb80c34ea, processorArchitecture=MSIL" />
    <Reference Include="CozyRoc.SSISPlus.2012, Version=1.0.0.0, Culture=neutral, PublicKeyToken=16cf490bb80c34ea, processorArchitecture=MSIL">
      <SpecificVersion>False</SpecificVersion>
      <HintPath>C:\Program Files (x86)\Microsoft SQL Server\110\SDK\Assemblies\CozyRoc.SSISPlus.2012.dll</HintPath>
    </Reference>
    <Reference Include="Microsoft.SqlServer.ManagedDTS, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL" />
    <Reference Include="System" />
    <Reference Include="System.Data" />
    <Reference Include="System.Web.Services" />
    <Reference Include="System.Windows.Forms" />
    <Reference Include="System.Xml" />
    <Reference Include="Microsoft.SqlServer.TxScript, Version=11.0.0.0, Culture=Neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="Microsoft.SqlServer.PipelineHost, Version=11.0.0.0, Culture=Neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="Microsoft.SqlServer.DTSPipelineWrap, Version=11.0.0.0, Culture=Neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="Microsoft.SqlServer.DTSRuntimeWrap, Version=11.0.0.0, Culture=Neutral, PublicKeyToken=89845dcd8080cc91" />
  </ItemGroup>
  <!-- Visual Basic supports Importing namespaces (equivalent to using statements in C#).-->
  <ItemGroup>
    <Import Include="Microsoft.VisualBasic" />
    <Import Include="System" />
    <Import Include="System.Collections" />
    <Import Include="System.Data" />
    <Import Include="System.Diagnostics" />
    <Import Include="System.Windows.Forms" />
  </ItemGroup>
  <!-- This section defines the user source files that are part of the
       project.

       Compile - Specifies a source file to compile.
       EmbeddedResource - Specifies a .resx file for embedded resources.
       None - Specifies a file that is not to be passed to the compiler (for instance,
              a text file or XML file).
       AppDesigner - Specifies the directory where the application properties files can
                     be found.
  -->
  <ItemGroup>
    <AppDesigner Include="My Project\" />
    <Compile Include="BufferWrapper.vb" />
    <Compile Include="ComponentWrapper.vb" />
    <Compile Include="main.vb" />
    <Compile Include="My Project\AssemblyInfo.vb">
      <SubType>Code</SubType>
    </Compile>
    <EmbeddedResource Include="My Project\Resources.resx">
      <Generator>VbMyResourcesResXFileCodeGenerator</Generator>
      <LastGenOutput>Resources.Designer.vb</LastGenOutput>
      <CustomToolNamespace>My.Resources</CustomToolNamespace>
    </EmbeddedResource>
    <Compile Include="My Project\Resources.Designer.vb">
      <AutoGen>True</AutoGen>
      <DesignTime>True</DesignTime>
      <DependentUpon>Resources.resx</DependentUpon>
      <SubType>Code</SubType>
    </Compile>
    <None Include="My Project\Settings.settings">
      <Generator>SettingsSingleFileGenerator</Generator>
      <LastGenOutput>Settings.Designer.vb</LastGenOutput>
    </None>
    <Compile Include="My Project\Settings.Designer.vb">
      <AutoGen>True</AutoGen>
      <DependentUpon>Settings.settings</DependentUpon>
      <SubType>Code</SubType>
    </Compile>
    <!-- Include the default configuration information and metadata files for the add-in.
         These files are copied to the build output directory when the project is
         built, and the path to the configuration file is passed to add-in on the command
         line when debugging.
    -->
  </ItemGroup>
  <!-- Include the build rules for a VB project.-->
  <Import Project="$(MSBuildBinPath)\Microsoft.VisualBasic.targets" />
  <!-- This section defines VSTA properties that describe the host-changable project properties. -->
  <ProjectExtensions>
    <VisualStudio>
      <FlavorProperties GUID="{30D016F9-3734-4E33-A861-5E7D899E18F3}">
        <ProjectProperties HostName="VSTAHostName" HostPackage="{B3A685AA-7EAF-4BC6-9940-57959FA5AC07}" ApplicationType="usd" Language="vb" TemplatesPath="" DebugInfoExeName="devenv.exe" DebugInfoCommandLine="/vstaHostDebugUri:&quot;vstadebug4201477d-56ff-4639-9514-f8221c2cb435/bd82d763-d901-449e-908c-156528dcf018&quot;" />
        <Host Name="SSIS_ScriptComponent" />
        <ProjectClient>
          <HostIdentifier>SSIS_SC110</HostIdentifier>
        </ProjectClient>
      </FlavorProperties>
    </VisualStudio>
  </ProjectExtensions>
  <PropertyGroup>
    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
  </PropertyGroup>
  <PropertyGroup>
    <TargetFrameworkProfile>
    </TargetFrameworkProfile>
  </PropertyGroup>
</Project>]]></arrayElement><arrayElement dataType="System.String"><![CDATA[My Project\AssemblyInfo.vb]]></arrayElement><arrayElement dataType="System.String"><![CDATA[UTF8]]></arrayElement><arrayElement dataType="System.String"><![CDATA[Imports System
Imports System.Reflection
Imports System.Runtime.InteropServices

' General Information about an assembly is controlled through the following 
' set of attributes. Change these attribute values to modify the information
' associated with an assembly.

' Review the values of the assembly attributes

<Assembly: AssemblyTitle("ScriptComponent_f848e9d47e064155a3b4a152096b0823.vbproj")> 
<Assembly: AssemblyDescription("")> 
<Assembly: AssemblyCompany("Microsoft")> 
<Assembly: AssemblyProduct("ScriptComponent_f848e9d47e064155a3b4a152096b0823.vbproj")> 
<Assembly: AssemblyCopyright("Copyright @ Microsoft 2012")> 
<Assembly: AssemblyTrademark("")> 
<Assembly: CLSCompliant(True)> 

<Assembly: ComVisible(False)> 

'The following GUID is for the ID of the typelib if this project is exposed to COM
<Assembly: Guid("b4c9e5ee-15a9-4b15-9510-89ab8889ef56")> 

' Version information for an assembly consists of the following four values:
'
'      Major Version
'      Minor Version 
'      Build Number
'      Revision
'
' You can specify all the values or you can default the Build and Revision Numbers 
' by using the '*' as shown below:
' <Assembly: AssemblyVersion("1.0.*")>

<Assembly: AssemblyVersion("1.0.0.0")> 
<Assembly: AssemblyFileVersion("1.0.0.0")> 
]]></arrayElement><arrayElement dataType="System.String"><![CDATA[ComponentWrapper.vb]]></arrayElement><arrayElement dataType="System.String"><![CDATA[UTF8]]></arrayElement><arrayElement dataType="System.String"><![CDATA[' THIS IS AUTO-GENERATED CODE THAT WILL BE OVERWRITTEN! DO NOT EDIT!
' This is CozyRoc Script Component Plus Extended Script
' Microsoft SQL Server Integration Services component wrapper
' This module defines the base class for your component
' THIS IS AUTO-GENERATED CODE THAT WILL BE OVERWRITTEN! DO NOT EDIT!

Imports System
Imports System.Data
Imports Microsoft.SqlServer.Dts.Pipeline
Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper
Imports Microsoft.SqlServer.Dts.Runtime.Wrapper
Imports CozyRoc.SqlServer.SSIS

<CLSCompliant(False)> _
Public Class UserComponent
    Inherits ScriptComponentPlus

    Public Connections As New Connections(Me)
    Public Variables As New Variables(Me)

    Public Overrides Sub ProcessInput(ByVal InputID As Integer, ByVal InputName As String, ByVal Buffer As PipelineBuffer, ByVal OutputMap As OutputNameMap)

        If InputID = MyBase.ComponentMetaData.InputCollection("Input").ID Then
            Input_ProcessInput(New InputBuffer(Me, InputID, True, Buffer, OutputMap))
        End If

    End Sub

    Public Overridable Sub Input_ProcessInput(ByVal Buffer As InputBuffer)

        While Buffer.NextRow()
            Input_ProcessInputRow(Buffer)
        End While

    End Sub

    Public Overridable Sub Input_ProcessInputRow(ByVal Row As InputBuffer)

    End Sub

End Class

Public Class Connections

    Dim ParentComponent As ScriptComponent

    <CLSCompliant(False)> _
    Public Sub New(ByVal Component As ScriptComponent)
        ParentComponent = Component
    End Sub

    Public ReadOnly Property CrmConnection() As IDTSConnectionManager100
        Get
            Return ParentComponent.ComponentMetaData.RuntimeConnectionCollection("CrmConnection").ConnectionManager
        End Get
    End Property

End Class

Public Class Variables

    Dim ParentComponent As ScriptComponent

    <CLSCompliant(False)> _
    Public Sub New(ByVal Component As ScriptComponent)
        ParentComponent = Component
    End Sub

End Class
]]></arrayElement><arrayElement dataType="System.String"><![CDATA[BufferWrapper.vb]]></arrayElement><arrayElement dataType="System.String"><![CDATA[UTF8]]></arrayElement><arrayElement dataType="System.String"><![CDATA[' THIS IS AUTO-GENERATED CODE THAT WILL BE OVERWRITTEN! DO NOT EDIT!
' This is CozyRoc Script Component Plus Extended Script
' Microsoft SQL Server Integration Services buffer wrappers
' This module defines classes for accessing data flow buffers
' THIS IS AUTO-GENERATED CODE THAT WILL BE OVERWRITTEN! DO NOT EDIT!


Option Strict Off   ' This allows usage of PipelineBuffer typed accessors.

Imports System
Imports System.Data
Imports Microsoft.SqlServer.Dts.Pipeline
Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper
Imports CozyRoc.SqlServer.SSIS

<CLSCompliant(False)> _
Public Class InputBuffer
    Inherits ScriptBufferPlus

    Public Sub New(ByVal Component As ScriptComponent, ByVal ObjectID As Integer, ByVal IsInput As Boolean, ByVal Buffer As PipelineBuffer, ByVal OutputMap As OutputNameMap)
        MyBase.New(Component, ObjectID, IsInput, Buffer, OutputMap)
    End Sub

    Public Overrides ReadOnly Property StaticInputColumns() As String()
        Get
            Return New String() {}
        End Get
    End Property

    Public Overrides ReadOnly Property StaticOutputColumns() As String()
        Get
            Return New String() {}
        End Get
    End Property

    Public Overloads Function NextRow() As Boolean
        NextRow = MyBase.NextRow()
    End Function

    Public Overloads Function EndOfRowset() As Boolean
        EndOfRowset = MyBase.EndOfRowset
    End Function

End Class
]]></arrayElement><arrayElement dataType="System.String"><![CDATA[main.vb]]></arrayElement><arrayElement dataType="System.String"><![CDATA[UTF8]]></arrayElement><arrayElement dataType="System.String"><![CDATA[' CozyRoc SQL Server Integration Services user script component
'
' Copyright (c) 2006-2012 COZYROC LLC
' 
' Permission is hereby granted, free of charge, to any person
' obtaining a copy of this software and associated documentation
' files (the "Software"), to deal in the Software without
' restriction, including without limitation the rights to use,
' copy, modify, merge, publish, distribute, sublicense, and/or sell
' copies of the Software, and to permit persons to whom the
' Software is furnished to do so, subject to the following
' conditions:
' 
' The above copyright notice and this permission notice shall be
' included in all copies or substantial portions of the Software.
' 
' THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
' EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
' OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
' NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
' HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
' WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
' FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
' OTHER DEALINGS IN THE SOFTWARE.

Imports System
Imports System.ComponentModel
Imports System.Web.Services.Protocols
Imports System.Collections
Imports System.Reflection

Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper
Imports Microsoft.SqlServer.Dts.Runtime.Wrapper
Imports CozyRoc.SqlServer.SSIS
Imports CozyRoc.SqlServer.SSIS.Attributes
Imports CRM2011 = CozyRoc.Dynamics.Crm2011.OrganizationService
Imports CRM4 = CozyRoc.Dynamics.Crm.Service


'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
<ValidateProperties("Validate")> _
<FilterProperties("GetProperties")> _
<SortProperties(New String() { _
    "CrmConnection", "EntityNameColumn", "EntityIdColumn", _
    "SourceQueueId", "RouteType", "EndPointId"})> _
<Microsoft.SqlServer.Dts.Pipeline.SSISScriptComponentEntryPointAttribute> _
<CLSCompliant(False)> _
Public Class ScriptMain
    Inherits UserComponent


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Public Overrides Sub Input_ProcessInputRow(ByVal Row As InputBuffer)
        Try
            If Not m_service2011 Is Nothing Then
                ' CRM 2011
                ' RouteType parameter not used.
                Dim req As New CRM2011.OrganizationRequest
                req.RequestName = "AddToQueue"
                req("SourceQueueId") = New Guid(Me.SourceQueueId)
                req("DestinationQueueId") = New Guid(Me.EndPointId)

                ' Setup Target.
                Dim target As New CRM2011.EntityReference
                target.LogicalName = Row.Buffer(m_enIndex).ToString().ToLower()
                target.Id = New Guid(Row.Buffer(m_eiIndex).ToString())
                req("Target") = target

                Call m_service2011.Execute(req)
            Else
                ' CRM 4.0

                ' Setup route request.
                Dim routeReq As New CRM4.RouteRequest

                routeReq.Target = GetTarget4_(Row)
                routeReq.SourceQueueId = New Guid(Me.SourceQueueId)
                routeReq.RouteType = Me.RouteType
                If routeReq.RouteType <> CRM4.RouteType.Auto Then
                    routeReq.EndpointId = New Guid(Me.EndPointId)
                End If

                Call m_service4.Execute(routeReq)
            End If
        Catch ex As SoapException
            Call FireError_(ex.Detail.InnerXml)
        Catch ex As Exception
            Call FireError_(ex.Message)
        End Try
    End Sub ' Input_ProcessInputRow


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Public Overrides Sub PreExecute()
        Call MyBase.PreExecute()

        ' Setup CRM service.
        m_connection = CType( _
            Me.Connections.CrmConnection.AcquireConnection(Nothing), _
            ICrmConnection)
        Call m_connection.Connect()

        Dim service As Object = m_connection.GetService(0)   ' 0 - CRM Service
        m_service2011 = TryCast(service, CRM2011.OrganizationServiceClient)
        If m_service2011 Is Nothing Then
            m_service4 = TryCast(service, CRM4.CrmService)
            If m_service4 Is Nothing Then
                Throw New Exception("Unhandled service object.")
            End If
        End If

        Dim input As IDTSInput100 = MyBase.ComponentMetaData.InputCollection(0)

        ' Find entity name column index.
        m_enIndex = Me.HostComponent.BufferManager.FindColumnByLineageID( _
            Input.Buffer, _
            Input.InputColumnCollection(Me.EntityNameColumn).LineageID)

        ' Find entity id column index.
        m_eiIndex = Me.HostComponent.BufferManager.FindColumnByLineageID( _
            Input.Buffer, _
            Input.InputColumnCollection(Me.EntityIdColumn).LineageID)
    End Sub ' PreExecute


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Public Overrides Sub PostExecute()
        Call MyBase.PostExecute()

        Call m_connection.Close()
        m_enIndex = -1
        m_eiIndex = -1
    End Sub ' PostExecute


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Public Function Validate(ByRef errMessage As String) As Boolean
        Dim result As Boolean

        Try
            If String.IsNullOrEmpty(Me.CrmConnection) Then
                Throw New Exception("Select Dynamics CRM Connection.")
            End If

            If String.IsNullOrEmpty(Me.EntityNameColumn) Then
                Throw New Exception("Select entity name column.")
            End If

            If String.IsNullOrEmpty(Me.EntityIdColumn) Then
                Throw New Exception("Select entity id column.")
            End If

            If String.IsNullOrEmpty(Me.SourceQueueId) Then
                Throw New Exception("Specify source queue id.")
            End If

            If Me.RouteType <> CRM4.RouteType.Auto AndAlso _
                String.IsNullOrEmpty(Me.EndPointId) Then

                Throw New Exception("Specify end point id.")
            End If

            Dim managedComponent As CManagedComponentWrapper = Me.ComponentMetaData.Instantiate()
            Dim input As IDTSInput100 = Me.ComponentMetaData.InputCollection(0)
            Dim virtInput As IDTSVirtualInput100 = input.GetVirtualInput()

            Call input.InputColumnCollection.RemoveAll()

            ' Setup selected entity name column.
            Dim enColumn As IDTSInputColumn100 = managedComponent.SetUsageType( _
                input.ID, _
                virtInput, _
                virtInput.VirtualInputColumnCollection(Me.EntityNameColumn).LineageID, _
                DTSUsageType.UT_READONLY)

            ' Setup selected entity id column.
            Dim eiColumn As IDTSInputColumn100 = managedComponent.SetUsageType( _
                input.ID, _
                virtInput, _
                virtInput.VirtualInputColumnCollection(Me.EntityIdColumn).LineageID, _
                DTSUsageType.UT_READONLY)

            ' Store connection information in the runtime connection collection, too.
            ' Cannot directly use RuntimeConnectionCollection in the property get/set
            ' because of issues with multi-threading.
            Me.ComponentMetaData.RuntimeConnectionCollection("CrmConnection").ConnectionManagerID = Me.CrmConnection

            result = True
        Catch ex As Exception
            result = False
            errMessage = ex.Message
        End Try

        Validate = result
    End Function    'Validate


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    ' Returns list of current properties based on current state.
    Public Function GetProperties() As String()
        Dim result As New ArrayList

        ' Base properties.
        Call result.Add("CrmConnection")
        Call result.Add("EntityNameColumn")
        Call result.Add("EntityIdColumn")
        Call result.Add("SourceQueueId")
        Call result.Add("RouteType")

        If Me.RouteType <> CRM4.RouteType.Auto Then
            Call result.Add("EndPointId")
        End If

        Return CType(result.ToArray(GetType(String)), String())
    End Function    ' GetProperties


#Region "Properties"
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Description("Select Dynamics CRM Connection Manager.")> _
    <Connection("CrmConnectionType")> _
    Public Property CrmConnection() As String
        Get
            CrmConnection = m_crmConnection
        End Get
        Set(ByVal value As String)
            m_crmConnection = value
        End Set
    End Property    ' CrmConnection


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Description("Select column containing entity name.")> _
    <InputVirtualColumn()> _
    Public Property EntityNameColumn() As String
        Get
            EntityNameColumn = m_enColumn
        End Get
        Set(ByVal value As String)
            m_enColumn = value
        End Set
    End Property    ' EntityNameColumn


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Description("Select column containing entity identifier.")> _
    <InputVirtualColumn()> _
    Public Property EntityIdColumn() As String
        Get
            EntityIdColumn = m_eiColumn
        End Get
        Set(ByVal value As String)
            m_eiColumn = value
        End Set
    End Property    ' EntityIdColumn


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Description("Specify source queue identifier.")> _
    Public Property SourceQueueId() As String
        Get
            SourceQueueId = m_sourceQueueId
        End Get
        Set(ByVal value As String)
            m_sourceQueueId = value
        End Set
    End Property    ' SourceQueueId


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Description("Select route type.")> _
    <DefaultValue(CRM4.RouteType.Auto)> _
    <RefreshProperties(RefreshProperties.All)> _
    Public Property RouteType() As CRM4.RouteType
        Get
            RouteType = m_routeType
        End Get
        Set(ByVal value As CRM4.RouteType)
            m_routeType = value
        End Set
    End Property    ' RouteType


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Description("Specify end point identifier.")> _
    Public Property EndPointId() As String
        Get
            EndPointId = m_endPointId
        End Get
        Set(ByVal value As String)
            m_endPointId = value
        End Set
    End Property    ' EndPointId
#End Region ' Properties


#Region "Internals"
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private ReadOnly Property CrmConnectionType() As String()
        Get
            CrmConnectionType = New String() {"DYNAMICS-CRM"}
        End Get
    End Property    ' CrmConnectionType


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Sub FireError_(ByVal message As String)
        Dim cancel As Boolean = False
        Call MyBase.ComponentMetaData.FireError( _
            0, _
            "Dynamics CRM Route", _
            message, _
            String.Empty, _
            0, _
            cancel)
    End Sub ' FireError_


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Function GetTarget4_(ByVal row As InputBuffer) As CRM4.TargetQueued
        Dim result As CRM4.TargetQueued
        Dim entityName As String = row.Buffer(m_enIndex).ToString().ToLower()
        Dim entityId As Guid = New Guid(row.Buffer(m_eiIndex).ToString())

        Select Case entityName
            Case "appointment"
                result = New CRM4.TargetQueuedAppointment

            Case "campaignactivity"
                result = New CRM4.TargetQueuedCampaignActivity

            Case "campaignresponse"
                result = New CRM4.TargetQueuedCampaignResponse

            Case "email"
                result = New CRM4.TargetQueuedEmail

            Case "fax"
                result = New CRM4.TargetQueuedFax

            Case "incident"
                result = New CRM4.TargetQueuedIncident

            Case "letter"
                result = New CRM4.TargetQueuedLetter

            Case "phonecall"
                result = New CRM4.TargetQueuedPhoneCall

            Case "serviceappointment"
                result = New CRM4.TargetQueuedServiceAppointment

            Case "task"
                result = New CRM4.TargetQueuedTask

            Case Else
                Throw New Exception(String.Format("Unhandled entity: {0}", entityName))
        End Select

        Call result.GetType().InvokeMember( _
            "EntityId", _
            BindingFlags.SetProperty Or BindingFlags.Public Or BindingFlags.Instance, _
            Nothing, _
            result, _
            New Object() {entityId})

        GetTarget4_ = result
    End Function    ' GetTarget4_
#End Region ' Internals


#Region "Attributes"
    Private m_crmConnection As String
    Private m_enColumn As String
    Private m_eiColumn As String
    Private m_sourceQueueId As String
    Private m_routeType As CRM4.RouteType
    Private m_endPointId As String

    Private m_connection As ICrmConnection
    Private m_service2011 As CRM2011.OrganizationServiceClient
    Private m_service4 As CRM4.CrmService
    Private m_enIndex As Integer
    Private m_eiIndex As Integer
#End Region ' Attributes
End Class   ' ScriptMain
]]></arrayElement><arrayElement dataType="System.String"><![CDATA[Project]]></arrayElement><arrayElement dataType="System.String"><![CDATA[UTF16LE]]></arrayElement><arrayElement dataType="System.String"><![CDATA[<?xml version="1.0" encoding="UTF-16" standalone="yes"?>
<c:Project xmlns:c="http://schemas.microsoft.com/codeprojectml/2010/08/main" xmlns:msb="http://schemas.microsoft.com/developer/msbuild/2003" runtimeVersion="4.0" schemaVersion="1.0">
	<msb:PropertyGroup>
		<msb:Language>msBuild</msb:Language>
		<msb:NoContent>Reference;Import;Folder</msb:NoContent>
		<msb:ProjectId>{E52714E7-4DCF-4674-86BD-E0D8BB29F28C}</msb:ProjectId>
		<msb:DisplayName>scriptcomponent_f848e9d47e064155a3b4a152096b0823</msb:DisplayName>
		<msb:CodeName>scriptcomponent_f848e9d47e064155a3b4a152096b0823</msb:CodeName>
	</msb:PropertyGroup>
	<msb:ItemGroup>
		<msb:File Include="BufferWrapper.vb"/>
		<msb:File Include="ComponentWrapper.vb"/>
		<msb:File Include="main.vb"/>
		<msb:File Include="My Project\AssemblyInfo.vb"/>
		<msb:File Include="My Project\Resources.Designer.vb"/>
		<msb:File Include="My Project\Settings.Designer.vb"/>
		<msb:File Include="My Project\Resources.resx"/>
		<msb:File Include="My Project\Settings.settings"/>
		<msb:Project Include="scriptcomponent_f848e9d47e064155a3b4a152096b0823.vbproj"/>
	</msb:ItemGroup>
</c:Project>]]></arrayElement><arrayElement dataType="System.String"><![CDATA[My Project\Settings.settings]]></arrayElement><arrayElement dataType="System.String"><![CDATA[UTF8]]></arrayElement><arrayElement dataType="System.String"><![CDATA[<?xml version='1.0' encoding='iso-8859-1'?>
<SettingsFile xmlns="uri:settings" CurrentProfile="(Default)" GeneratedClassNamespace="" GeneratedClassName="MySettings">
  <Profiles>
    <Profile Name="(Default)" />
  </Profiles>
  <Settings />
</SettingsFile>]]></arrayElement><arrayElement dataType="System.String"><![CDATA[My Project\Resources.resx]]></arrayElement><arrayElement dataType="System.String"><![CDATA[UTF8]]></arrayElement><arrayElement dataType="System.String"><![CDATA[<?xml version="1.0" encoding="utf-8"?>
<root>
  <!-- 
    Microsoft ResX Schema 
    
    Version 2.0
    
    The primary goals of this format is to allow a simple XML format 
    that is mostly human readable. The generation and parsing of the 
    various data types are done through the TypeConverter classes 
    associated with the data types.
    
    Example:
    
    ... ado.net/XML headers & schema ...
    <resheader name="resmimetype">text/microsoft-resx</resheader>
    <resheader name="version">2.0</resheader>
    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
        <value>[base64 mime encoded serialized .NET Framework object]</value>
    </data>
    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
        <comment>This is a comment</comment>
    </data>
                
    There are any number of "resheader" rows that contain simple 
    name/value pairs.
    
    Each data row contains a name, and value. The row also contains a 
    type or mimetype. Type corresponds to a .NET class that support 
    text/value conversion through the TypeConverter architecture. 
    Classes that don't support this are serialized and stored with the 
    mimetype set.
    
    The mimetype is used for serialized objects, and tells the 
    ResXResourceReader how to depersist the object. This is currently not 
    extensible. For a given mimetype the value must be set accordingly:
    
    Note - application/x-microsoft.net.object.binary.base64 is the format 
    that the ResXResourceWriter will generate, however the reader can 
    read any of the formats listed below.
    
    mimetype: application/x-microsoft.net.object.binary.base64
    value   : The object must be serialized with 
            : System.Serialization.Formatters.Binary.BinaryFormatter
            : and then encoded with base64 encoding.
    
    mimetype: application/x-microsoft.net.object.soap.base64
    value   : The object must be serialized with 
            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
            : and then encoded with base64 encoding.

    mimetype: application/x-microsoft.net.object.bytearray.base64
    value   : The object must be serialized into a byte array 
            : using a System.ComponentModel.TypeConverter
            : and then encoded with base64 encoding.
    -->
  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    <xsd:element name="root" msdata:IsDataSet="true">
      <xsd:complexType>
        <xsd:choice maxOccurs="unbounded">
          <xsd:element name="metadata">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" />
              <xsd:attribute name="type" type="xsd:string" />
              <xsd:attribute name="mimetype" type="xsd:string" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="assembly">
            <xsd:complexType>
              <xsd:attribute name="alias" type="xsd:string" />
              <xsd:attribute name="name" type="xsd:string" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="data">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="resheader">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" />
            </xsd:complexType>
          </xsd:element>
        </xsd:choice>
      </xsd:complexType>
    </xsd:element>
  </xsd:schema>
  <resheader name="resmimetype">
    <value>text/microsoft-resx</value>
  </resheader>
  <resheader name="version">
    <value>2.0</value>
  </resheader>
  <resheader name="reader">
    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <resheader name="writer">
    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
</root>]]></arrayElement><arrayElement dataType="System.String"><![CDATA[My Project\Resources.Designer.vb]]></arrayElement><arrayElement dataType="System.String"><![CDATA[UTF8]]></arrayElement><arrayElement dataType="System.String"><![CDATA['------------------------------------------------------------------------------
' <autogenerated>
'     This code was generated by a tool.
'
'     Changes to this file may cause incorrect behavior and will be lost if
'     the code is regenerated.
' </autogenerated>
'------------------------------------------------------------------------------

Option Strict Off
Option Explicit On


Namespace My.Resources
    
    '''<summary>
    '''   A strongly-typed resource class, for looking up localized strings, etc.
    '''</summary>
    'This class was auto-generated by the Strongly Typed Resource Builder
    'class via a tool like ResGen or Visual Studio.NET.
    'To add or remove a member, edit your .ResX file then rerun ResGen
    'with the /str option, or rebuild your VS project.
    Class MyResources
        
        Private Shared _resMgr As System.Resources.ResourceManager
        
        Private Shared _resCulture As System.Globalization.CultureInfo
        
        Friend Sub New()
            MyBase.New
        End Sub
        
        '''<summary>
        '''   Returns the cached ResourceManager instance used by this class.
        '''</summary>
        <System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)>  _
        Public Shared ReadOnly Property ResourceManager() As System.Resources.ResourceManager
            Get
                If (_resMgr Is Nothing) Then
                    Dim temp As System.Resources.ResourceManager = New System.Resources.ResourceManager("My.Resources.MyResources", GetType(MyResources).Assembly)
                    _resMgr = temp
                End If
                Return _resMgr
            End Get
        End Property
        
        '''<summary>
        '''   Overrides the current thread's CurrentUICulture property for all
        '''   resource lookups using this strongly typed resource class.
        '''</summary>
        <System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)>  _
        Public Shared Property Culture() As System.Globalization.CultureInfo
            Get
                Return _resCulture
            End Get
            Set
                _resCulture = value
            End Set
        End Property
    End Class
End Namespace
]]></arrayElement></arrayElements></property><property id="4" name="BinaryCode" state="cdata" dataType="System.String" isArray="true" description="Stores the binary representation of the component" typeConverter="NOTBROWSABLE"><arrayElements arrayElementCount="2"><arrayElement dataType="System.String"><![CDATA[ScriptComponent_f848e9d47e064155a3b4a152096b0823.vbproj.dll]]></arrayElement><arrayElement dataType="System.String"><![CDATA[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
RAAAACwoAAD0BgAAI0Jsb2IAAAAAAAAAAgAAAVcVogkJDwAAAPolMwAWAAABAAAAZgAAAA0AAAAY
AAAAOAAAABsAAACEAAAASAAAACAAAAAHAAAAEgAAABkAAAAKAAAAAQAAAAwAAAABAAAAAgAAAAMA
AAACAAAAAAB6FAEAAAAAAAoAqQF/AQoA3QG/AQYA7QHmAQoARQJ/AQYAwwLmAQoARQMbAw4AlwOA
AxIA5gPFAxYAFwTFAxIAJgTFAw4AygSAAxoAhQVdBR4AsQaUBh4AHgeUBg4AigeAAx4A0wemBx4A
+weUBgYAgQhwCAYArgiZCCIAFQkACSIAYglMCSIAewlMCSIAqAmQCQYA0gm/CQoAEQrqCQoAKQoT
ACIAXgpBCgYAkwpzCgYAsQrmAQYA1QrmAQoA7goTAAYAMgsTCwYARgvmARIATQvFAwYAWgvmASYA
vQuUCyYA7AuUCyYAFwyUCyYANAyUCyYAdwyUCx4ApgymBx4AugymBx4AygyUBioACQ3rDAYAFw3m
AQYAIQ3mAS4AIQ3mAR4AaQ2mBx4AoA2UBh4AqQ2UBgoAsQ3qCTIA2A3NDQYAOw7mARYAQQ7FAyYA
ZQ6UCyYAjA6UCyYAww6UCyYAAA+UCyYAGQ+UCyYAYQ+UCyYApg+UCyYAwA+UCyYA2w+UCwYAIBAN
EAYALhDmAQoATBDqCR4AZBCUBh4AfBCUBh4AmRCUBh4AthCUBh4AyBCUBh4A2BCUBh4A7RCUBh4A
ABGUBh4AFhGUBh4ANRGUBgYAXxFNEQYAbBFNERIAgBHFAw4AyRGnEQ4A4RGnEQ4A+xGnEQ4AFxKn
ESIAMxJMCSIASBJMCSIAYxJMCSIAdRJMCQ4AixKnEQYAnxJNEQYAxhK1EgYA2RK/CQYAQhNzCgYA
YhNzCgYAmhOAEwYAsxNNEQYA0BMTCwYA3hNNEQYA+RNNEQYAFBRNEQYALRRNEQYARhRNEQYAYxRN
EQAAAAABAAAAAAABAAEAAAAAACkANwAFAAEAAQAAAAAAcgA3AAkAAQACAAABEAB9ADcADQABAAMA
BQEAAIcAAAANAAUACAAFAQAAlQAAAA0ABQAPAAEAAACwALwAHQAGABEAAQAAAPQAvAAtAAYAFgAB
AAAAAgG8AA0ACAAaAAEAAAAOAbwADQAJABwAAQAAABgBvAAgAAoAHQAAAAAAIwEvAQ0AFQAyAAAB
EAB0AbwAUQAXADYAMQAIAiAAMQAxAi0AMQBTAjoAMQB4AkcAIQBUA5AABgACAckABgAOAc0AAQAq
BeEAAQAqBeEAAQA7BxIBAQBLBxIBAQBWBxIBAQBhBxIBAQBxBxUBAQB9BxIBAQCZBxkBAQDtBx0B
AQAGCCEBAQARCCUBAQAbCCUBEQCRCDEBEQC6CDUBEQAtCVMBEQA1CVcBUCAAAAAABhi5ARMAAQBY
IAAAAAAGGLkBEwABAGAgAAAAABEY9AEXAAEAjCAAAAAAEwj7ARsAAQCkIAAAAAATCCECKAABALwg
AAAAABMISgI1AAEA1CAAAAAAEwhoAkIAAQDsIAAAAABGAq4CYwABAAghAAAAAEYCtwJoAAIAHCEA
AAAAgwDIAmwAAgA0IQAAAABGAtACcQACAEghAAAAABEA2QJ4AAIAZCEAAAAAAQD3AoAAAwCAIQAA
AAAGGLkBEwAEAIghAAAAAAMICwOLAAQAvCEAAAAABhi5ARMABADQIQAAAAAGGLkBrwAEAOAhAAAA
AEYKYAS7AAkA9CEAAAAARgp3BLsACQAIIgAAAACGAI8EwAAJACAiAAAAAIYAlwTAAAkAOCIAAAAA
Bhi5ARMACQBYIgAAAABGAt4E0QAJAIgiAAAAAEYD/QTbAA0AnCIAAAAARgMQBdsADgCgIgAAAAAG
GLkB5QAPALAiAAAAAAYIngXrABAA3CIAAAAABhi5AeUAEADsIgAAAAAGGLkBEwARAPQiAAAAAEYC
EAXbABEAmCQAAAAARgK+BRMAEgCUJQAAAABGAskFEwASALglAAAAAAYA1QX1ABIAMCcAAAAABgDp
BbsAEwCsJwAAAAAGCJ4FcQATAMQnAAAAAAYI9wX7ABMA0CcAAAAABggPBnEAFADoJwAAAAAGCCQG
+wAUAPQnAAAAAAYIOQZxABUADCgAAAAABghMBvsAFQAYKAAAAAAGCF8GcQAWADAoAAAAAAYIcQb7
ABYAPCgAAAAABgi7BgABFwBUKAAAAAAGCMkGBQEXAGAoAAAAAAYI1wZxABgAeCgAAAAABgjmBvsA
GACEKAAAAAABCPUGuwAZAKQoAAAAAAEACwf7ABkA0CgAAAAAAQArBwsBGgBYKgAAAAADGLkBEwAb
AGAqAAAAABYIxgg5ARsAnCoAAAAAFgjaCD4BGwCwKgAAAAAWCOYIQwEbALgqAAAAABEY9AEXABwA
zCoAAAAABhi5ARMAHADUKgAAAAAWCEIJWgEcAAAAAQC1AgAAAQDuAgAAAQDuAgAAAQA0BAAAAgA+
BAAAAwBHBAAABABPBAAABQBWBAAAAQDrBAAAAgDzBAAAAwBPBAAABABWBAAAAQBPBAAAAQAmBQAA
AQA0BAAAAQA0BAAAAQAmBQAAAQDeBQAAAQAJBgAAAQAJBgAAAQAJBgAAAQAJBgAAAQAJBgAAAQAJ
BgAAAQAWBwAAAQA3BwAAAQDyCAkAuQETAKkAuQFkAbkAuQFzAREAuQETAMEAuQETACQAuQETACwA
uQETADQAuQETADwAuQETACQACwOLACwACwOLADQACwOLADwACwOLAMkAuQETANEAuQETANkAuQH7
AOEAogoNAhkArgJjABkAtwJoACkAwwoaAhkA0AJxAPEA3woqAhkAuQETAPkAuQE6AkQAVAOQAEwA
QgmLAEwACQu3AkwAuQETAAEBuQHGAjkAuQGvABEBjwTAABEBlwTAABkBuQHGAlkAuQETAEEA1gvW
AiEBAwzcAikBJAziAjEBLQxoACEBVwzpAjkBJAzvAkEBkAzrAEkBuQETAEkBJg37AHEBuQH7AEkB
Ng37AlEBuQETADkAPw0BA0kAJAwGAwkBSg1xAFEBUg37AFEBYg0LA4EAfg0SA1kBuQETAFkBhg0b
A1kBcQYLA1kByQYFAVkBuwYAAVkBkQ0LA4kAfg0hA5kBvQ0qA2EB4A0xA6EB6w1xAJkB+A0XAGkB
Cg5xAEEAvgUTAGEAFg5PA3kAKA4TAHkAMA4GA2kBuQH7AFkAUw5UA7EBeg5aAzEBPw1oADEBqQ5g
A8EBJAxmA8kB1g5oALkB5A5tA0EAyQUTAHkA+g4TAAkBLQ96AyEBOw9/AzEBRw+FA8EBVw8TANkB
hQ+LA+EBJAyRA+kB1g5oAPEB6A+YA0EB9Q/7AAECuQETAAECKhC9AwECNBDCAwkBPBASASEBQhDh
AxECVhDsAxkCuQETACECuQETACkCuQETADECuQETADkCuQETAEECuQETAEkCuQETAFECuQETAFkC
uQETAGECuQETAAkBRhHzAxkAyAJsACkAcxH5A3kCuQETAIECuQEVBIkCuQH7AJECuQH7AJkCuQET
AKECuQH7AKkCuQE7BbkCuQFCBcECuQH7ACkAqBKsBZEAuQGyBaEAuQETANECzhLPBdEC1BLPBdkC
uQETAOECuQFCBekCuQETAPECuQH7APkCuQH7AAEDuQH7AAkDuQH7ABEDuQH7ABkDuQH7ACEDuQH7
ACkDuQH7ADEDuQH7ACkAgwDHAS4AEwTjBi4ACwSmBi4A4wMBBi4AAwSGBi4AGwTLAi4AIwSmBi4A
0wPZBS4A2wPiBS4A6wNJBi4A8wNWBi4A6wDLAi4ACwGABi4A+wPLAkAAKwCSAUAAEwBqAUMAEwBq
AUMAGwB5AUkAgwDYAWMAGwB5AWMAEwBqAWkAgwDsAYAAKwCSAYMAcwCSAYMAewCSAYMAGwB5AYkA
gwD5AaAAKwCSAaMAEwBqAaMAwwBCAsAAKwCSAcMA6wDLAsMAEwBqAeAAKwCSAeMACwHLAgABKwCS
AQABEwBqAQMBCwHLAiABKwCSASABEwBqASkBmwNoBSkBgwN/BUABKwCSAUABEwBqAUkBgwOWBEkB
ewOSAWABEwBqAWABKwCSAWMBcwOIBGMBawN1BGMBCwHLAmMBWwOSAWMBYwMbBGkBgwPBBGkBewOS
AYABKwCSAYkBgwPyBKABKwCSAakBiwNqAakBgwNQBakBkwNHBcABKwCSAcABEwBqAckBgwMYBeAB
KwCSAQACEwBqAQACKwCSAQkCEwDGBSkCEwDGBUkCywOSAUADCwHLAoADCwHLArMBuAG9AcIBEgIW
AiECJgI1AjUCvQLRAtECEgISAvYCNwNzA6YDzQMmAiYCJgImAtUDJgLaAxICBwS6BcEF1AUEAAEA
BgAFAAcABgAJAAgACwAJAAwAEAANABIAAADdAU8AAACWAlQAAABFAlkAAACiAl4AAABeA5gAAACj
BMQAAAC2BMQAAACwBfAAAACwBSgBAAAlCCgBAAA2CCgBAABFCCgBAACxBiwBAABTCCgBAABeCMQA
AACBCEkBAAD4CE4BAADyCF8BAgAEAAMAAgAFAAUAAgAGAAcAAgAHAAkAAgAPAAsAAgASAA0AAgAT
AA8AAgAbABEAAgAjABMAAQAkABMAAgAlABUAAQAmABUAAgAnABcAAQAoABcAAQAqABkAAgApABkA
AgArABsAAQAsABsAAgAtAB0AAQAuAB0AAgAvAB8AAgAzACEAAgA0ACMAAQA1ACMAAgA4ACUAdQB1
AIgAlwGeAaUBrAGkAqsCygMEgAAAAQAAAAAAAAAAAAAAAAC8AAAABAAAAAAAAAAAAAAAAQAKAAAA
AAAKAAAAAAAAAAAAAAAKABMAAAAAAAEAAAAAAAAAAAAAAJ0AagMAAAAACwAAAAAAAAAAAAAApgCo
AwAAAAALAAAAAAAAAAAAAACmAPYDAAAAAAsAAAAAAAAAAAAAAKYAOgUAAAAAAQAAAAAAAAAAAAAA
nQCDBgAAAAAEAAAAAAAAAAAAAAABAOYBAAAAAAsAAAAAAAAAAAAAAKYAcAsAAAAABAAAAAAAAAAA
AAAACgDXDAAAAAACAAAAAAAAAAAAAAABAAoAAAAAAAQAAAAAAAAAAAAAAAEAzQ0AAAAAAAAAAAEA
AAD2EgAABQAEAAYABAAAABAADADsAgAAEAAZAOwCAAAAABsA7AItADACLQCyAgAAADxNb2R1bGU+
AG1zY29ybGliAE1pY3Jvc29mdC5WaXN1YWxCYXNpYwBNeUFwcGxpY2F0aW9uAFNjcmlwdENvbXBv
bmVudF9mODQ4ZTlkNDdlMDY0MTU1YTNiNGExNTIwOTZiMDgyMy52YnByb2ouTXkATXlDb21wdXRl
cgBNeVByb2plY3QATXlXZWJTZXJ2aWNlcwBUaHJlYWRTYWZlT2JqZWN0UHJvdmlkZXJgMQBJbnB1
dEJ1ZmZlcgBTY3JpcHRDb21wb25lbnRfZjg0OGU5ZDQ3ZTA2NDE1NWEzYjRhMTUyMDk2YjA4MjMu
dmJwcm9qAFVzZXJDb21wb25lbnQAQ29ubmVjdGlvbnMAVmFyaWFibGVzAFNjcmlwdE1haW4ATXlS
ZXNvdXJjZXMAU2NyaXB0Q29tcG9uZW50X2Y4NDhlOWQ0N2UwNjQxNTVhM2I0YTE1MjA5NmIwODIz
LnZicHJvai5NeS5SZXNvdXJjZXMATXlTZXR0aW5ncwBNaWNyb3NvZnQuVmlzdWFsQmFzaWMuQXBw
bGljYXRpb25TZXJ2aWNlcwBBcHBsaWNhdGlvbkJhc2UALmN0b3IATWljcm9zb2Z0LlZpc3VhbEJh
c2ljLkRldmljZXMAQ29tcHV0ZXIAU3lzdGVtAE9iamVjdAAuY2N0b3IAZ2V0X0NvbXB1dGVyAG1f
Q29tcHV0ZXJPYmplY3RQcm92aWRlcgBnZXRfQXBwbGljYXRpb24AbV9BcHBPYmplY3RQcm92aWRl
cgBVc2VyAGdldF9Vc2VyAG1fVXNlck9iamVjdFByb3ZpZGVyAGdldF9XZWJTZXJ2aWNlcwBtX015
V2ViU2VydmljZXNPYmplY3RQcm92aWRlcgBBcHBsaWNhdGlvbgBXZWJTZXJ2aWNlcwBFcXVhbHMA
bwBHZXRIYXNoQ29kZQBUeXBlAEdldFR5cGUAVG9TdHJpbmcAQ3JlYXRlX19JbnN0YW5jZV9fAFQA
aW5zdGFuY2UARGlzcG9zZV9fSW5zdGFuY2VfXwBnZXRfR2V0SW5zdGFuY2UATWljcm9zb2Z0LlZp
c3VhbEJhc2ljLk15U2VydmljZXMuSW50ZXJuYWwAQ29udGV4dFZhbHVlYDEAbV9Db250ZXh0AEdl
dEluc3RhbmNlAENvenlSb2MuU1NJU1BsdXMuMjAxMgBDb3p5Um9jLlNxbFNlcnZlci5TU0lTAFNj
cmlwdEJ1ZmZlclBsdXMATWljcm9zb2Z0LlNxbFNlcnZlci5UeFNjcmlwdABNaWNyb3NvZnQuU3Fs
U2VydmVyLkR0cy5QaXBlbGluZQBTY3JpcHRDb21wb25lbnQATWljcm9zb2Z0LlNxbFNlcnZlci5Q
aXBlbGluZUhvc3QAUGlwZWxpbmVCdWZmZXIAT3V0cHV0TmFtZU1hcABDb21wb25lbnQAT2JqZWN0
SUQASXNJbnB1dABCdWZmZXIAT3V0cHV0TWFwAGdldF9TdGF0aWNJbnB1dENvbHVtbnMAZ2V0X1N0
YXRpY091dHB1dENvbHVtbnMATmV4dFJvdwBFbmRPZlJvd3NldABTdGF0aWNJbnB1dENvbHVtbnMA
U3RhdGljT3V0cHV0Q29sdW1ucwBTY3JpcHRDb21wb25lbnRQbHVzAFByb2Nlc3NJbnB1dABJbnB1
dElEAElucHV0TmFtZQBJbnB1dF9Qcm9jZXNzSW5wdXQASW5wdXRfUHJvY2Vzc0lucHV0Um93AFJv
dwBQYXJlbnRDb21wb25lbnQATWljcm9zb2Z0LlNxbFNlcnZlci5EVFNSdW50aW1lV3JhcABNaWNy
b3NvZnQuU3FsU2VydmVyLkR0cy5SdW50aW1lLldyYXBwZXIASURUU0Nvbm5lY3Rpb25NYW5hZ2Vy
MTAwAGdldF9Dcm1Db25uZWN0aW9uAENybUNvbm5lY3Rpb24AUHJlRXhlY3V0ZQBQb3N0RXhlY3V0
ZQBWYWxpZGF0ZQBlcnJNZXNzYWdlAEdldFByb3BlcnRpZXMAc2V0X0NybUNvbm5lY3Rpb24AdmFs
dWUAZ2V0X0VudGl0eU5hbWVDb2x1bW4Ac2V0X0VudGl0eU5hbWVDb2x1bW4AZ2V0X0VudGl0eUlk
Q29sdW1uAHNldF9FbnRpdHlJZENvbHVtbgBnZXRfU291cmNlUXVldWVJZABzZXRfU291cmNlUXVl
dWVJZABDb3p5Um9jLkR5bmFtaWNzAENvenlSb2MuRHluYW1pY3MuQ3JtLlNlcnZpY2UAUm91dGVU
eXBlAGdldF9Sb3V0ZVR5cGUAc2V0X1JvdXRlVHlwZQBnZXRfRW5kUG9pbnRJZABzZXRfRW5kUG9p
bnRJZABnZXRfQ3JtQ29ubmVjdGlvblR5cGUARmlyZUVycm9yXwBtZXNzYWdlAFRhcmdldFF1ZXVl
ZABHZXRUYXJnZXQ0XwByb3cAbV9jcm1Db25uZWN0aW9uAG1fZW5Db2x1bW4AbV9laUNvbHVtbgBt
X3NvdXJjZVF1ZXVlSWQAbV9yb3V0ZVR5cGUAbV9lbmRQb2ludElkAElDcm1Db25uZWN0aW9uAG1f
Y29ubmVjdGlvbgBDb3p5Um9jLkR5bmFtaWNzLkNybTIwMTEuT3JnYW5pemF0aW9uU2VydmljZQBP
cmdhbml6YXRpb25TZXJ2aWNlQ2xpZW50AG1fc2VydmljZTIwMTEAQ3JtU2VydmljZQBtX3NlcnZp
Y2U0AG1fZW5JbmRleABtX2VpSW5kZXgARW50aXR5TmFtZUNvbHVtbgBFbnRpdHlJZENvbHVtbgBT
b3VyY2VRdWV1ZUlkAEVuZFBvaW50SWQAQ3JtQ29ubmVjdGlvblR5cGUAU3lzdGVtLlJlc291cmNl
cwBSZXNvdXJjZU1hbmFnZXIAX3Jlc01ncgBTeXN0ZW0uR2xvYmFsaXphdGlvbgBDdWx0dXJlSW5m
bwBfcmVzQ3VsdHVyZQBnZXRfUmVzb3VyY2VNYW5hZ2VyAGdldF9DdWx0dXJlAHNldF9DdWx0dXJl
AFZhbHVlAEN1bHR1cmUAU3lzdGVtLkNvbmZpZ3VyYXRpb24AQXBwbGljYXRpb25TZXR0aW5nc0Jh
c2UAbV9WYWx1ZQBtX1N5bmNPYmplY3QAZ2V0X1ZhbHVlAFN5c3RlbS5Db21wb25lbnRNb2RlbABF
ZGl0b3JCcm93c2FibGVBdHRyaWJ1dGUARWRpdG9yQnJvd3NhYmxlU3RhdGUAU3lzdGVtLkNvZGVE
b20uQ29tcGlsZXIAR2VuZXJhdGVkQ29kZUF0dHJpYnV0ZQBTeXN0ZW0uRGlhZ25vc3RpY3MARGVi
dWdnZXJIaWRkZW5BdHRyaWJ1dGUATWljcm9zb2Z0LlZpc3VhbEJhc2ljLkNvbXBpbGVyU2Vydmlj
ZXMAU3RhbmRhcmRNb2R1bGVBdHRyaWJ1dGUASGlkZU1vZHVsZU5hbWVBdHRyaWJ1dGUAU3lzdGVt
LkNvbXBvbmVudE1vZGVsLkRlc2lnbgBIZWxwS2V5d29yZEF0dHJpYnV0ZQBTeXN0ZW0uUnVudGlt
ZS5Db21waWxlclNlcnZpY2VzAFJ1bnRpbWVIZWxwZXJzAEdldE9iamVjdFZhbHVlAFJ1bnRpbWVU
eXBlSGFuZGxlAEdldFR5cGVGcm9tSGFuZGxlAEFjdGl2YXRvcgBDcmVhdGVJbnN0YW5jZQBNeUdy
b3VwQ29sbGVjdGlvbkF0dHJpYnV0ZQBzZXRfVmFsdWUAU3lzdGVtLlJ1bnRpbWUuSW50ZXJvcFNl
cnZpY2VzAENvbVZpc2libGVBdHRyaWJ1dGUAU3RyaW5nAFNjcmlwdEJ1ZmZlcgBDTFNDb21wbGlh
bnRBdHRyaWJ1dGUATWljcm9zb2Z0LlNxbFNlcnZlci5EVFNQaXBlbGluZVdyYXAATWljcm9zb2Z0
LlNxbFNlcnZlci5EdHMuUGlwZWxpbmUuV3JhcHBlcgBJRFRTQ29tcG9uZW50TWV0YURhdGExMDAA
Z2V0X0NvbXBvbmVudE1ldGFEYXRhAElEVFNJbnB1dENvbGxlY3Rpb24xMDAAZ2V0X0lucHV0Q29s
bGVjdGlvbgBJRFRTSW5wdXQxMDAAZ2V0X0l0ZW0AZ2V0X0lEAElEVFNSdW50aW1lQ29ubmVjdGlv
bkNvbGxlY3Rpb24xMDAAZ2V0X1J1bnRpbWVDb25uZWN0aW9uQ29sbGVjdGlvbgBJRFRTUnVudGlt
ZUNvbm5lY3Rpb24xMDAAZ2V0X0Nvbm5lY3Rpb25NYW5hZ2VyAE9yZ2FuaXphdGlvblJlcXVlc3QA
RW50aXR5UmVmZXJlbmNlAFJvdXRlUmVxdWVzdABTeXN0ZW0uV2ViLlNlcnZpY2VzAFN5c3RlbS5X
ZWIuU2VydmljZXMuUHJvdG9jb2xzAFNvYXBFeGNlcHRpb24ARXhjZXB0aW9uAEd1aWQAc2V0X1Jl
cXVlc3ROYW1lAHNldF9JdGVtAGdldF9CdWZmZXIAVG9Mb3dlcgBzZXRfTG9naWNhbE5hbWUAc2V0
X0lkAE9yZ2FuaXphdGlvblJlc3BvbnNlAEV4ZWN1dGUAc2V0X1RhcmdldABzZXRfRW5kcG9pbnRJ
ZABSZXNwb25zZQBSZXF1ZXN0AFByb2plY3REYXRhAFNldFByb2plY3RFcnJvcgBTeXN0ZW0uWG1s
AFhtbE5vZGUAZ2V0X0RldGFpbABnZXRfSW5uZXJYbWwAQ2xlYXJQcm9qZWN0RXJyb3IAZ2V0X01l
c3NhZ2UAQWNxdWlyZUNvbm5lY3Rpb24AQ29ubmVjdABHZXRTZXJ2aWNlAEludDMyAFBpcGVsaW5l
Q29tcG9uZW50AGdldF9Ib3N0Q29tcG9uZW50AElEVFNCdWZmZXJNYW5hZ2VyMTAwAGdldF9CdWZm
ZXJNYW5hZ2VyAElEVFNJbnB1dENvbHVtbkNvbGxlY3Rpb24xMDAAZ2V0X0lucHV0Q29sdW1uQ29s
bGVjdGlvbgBJRFRTSW5wdXRDb2x1bW4xMDAAZ2V0X0xpbmVhZ2VJRABGaW5kQ29sdW1uQnlMaW5l
YWdlSUQAQ2xvc2UAQ01hbmFnZWRDb21wb25lbnRXcmFwcGVyAElEVFNWaXJ0dWFsSW5wdXQxMDAA
SXNOdWxsT3JFbXB0eQBJbnN0YW50aWF0ZQBHZXRWaXJ0dWFsSW5wdXQAUmVtb3ZlQWxsAElEVFNW
aXJ0dWFsSW5wdXRDb2x1bW5Db2xsZWN0aW9uMTAwAGdldF9WaXJ0dWFsSW5wdXRDb2x1bW5Db2xs
ZWN0aW9uAElEVFNWaXJ0dWFsSW5wdXRDb2x1bW4xMDAASURUU0Rlc2lnbnRpbWVDb21wb25lbnQx
MDAARFRTVXNhZ2VUeXBlAFNldFVzYWdlVHlwZQBzZXRfQ29ubmVjdGlvbk1hbmFnZXJJRABTeXN0
ZW0uQ29sbGVjdGlvbnMAQXJyYXlMaXN0AEFkZABBcnJheQBUb0FycmF5AEVtcHR5AEZpcmVFcnJv
cgBPcGVyYXRvcnMAQ29tcGFyZVN0cmluZwBUYXJnZXRRdWV1ZWRBcHBvaW50bWVudABUYXJnZXRR
dWV1ZWRDYW1wYWlnbkFjdGl2aXR5AFRhcmdldFF1ZXVlZENhbXBhaWduUmVzcG9uc2UAVGFyZ2V0
UXVldWVkRW1haWwAVGFyZ2V0UXVldWVkRmF4AFRhcmdldFF1ZXVlZEluY2lkZW50AFRhcmdldFF1
ZXVlZExldHRlcgBUYXJnZXRRdWV1ZWRQaG9uZUNhbGwAVGFyZ2V0UXVldWVkU2VydmljZUFwcG9p
bnRtZW50AFRhcmdldFF1ZXVlZFRhc2sARm9ybWF0AFN5c3RlbS5SZWZsZWN0aW9uAEJpbmRpbmdG
bGFncwBCaW5kZXIASW52b2tlTWVtYmVyAFNTSVNTY3JpcHRDb21wb25lbnRFbnRyeVBvaW50QXR0
cmlidXRlAENvenlSb2MuU3FsU2VydmVyLlNTSVMuQXR0cmlidXRlcwBTb3J0UHJvcGVydGllc0F0
dHJpYnV0ZQBGaWx0ZXJQcm9wZXJ0aWVzQXR0cmlidXRlAFZhbGlkYXRlUHJvcGVydGllc0F0dHJp
YnV0ZQBJbnB1dFZpcnR1YWxDb2x1bW5BdHRyaWJ1dGUARGVzY3JpcHRpb25BdHRyaWJ1dGUAUmVm
cmVzaFByb3BlcnRpZXNBdHRyaWJ1dGUAUmVmcmVzaFByb3BlcnRpZXMARGVmYXVsdFZhbHVlQXR0
cmlidXRlAENvbm5lY3Rpb25BdHRyaWJ1dGUAQXNzZW1ibHkAZ2V0X0Fzc2VtYmx5AFN5c3RlbS5U
aHJlYWRpbmcATW9uaXRvcgBFbnRlcgBFeGl0AERlYnVnZ2VyTm9uVXNlckNvZGVBdHRyaWJ1dGUA
U2NyaXB0Q29tcG9uZW50X2Y4NDhlOWQ0N2UwNjQxNTVhM2I0YTE1MjA5NmIwODIzLnZicHJvai5S
ZXNvdXJjZXMucmVzb3VyY2VzAENvbXBpbGF0aW9uUmVsYXhhdGlvbnNBdHRyaWJ1dGUAUnVudGlt
ZUNvbXBhdGliaWxpdHlBdHRyaWJ1dGUAU3lzdGVtLlJ1bnRpbWUuVmVyc2lvbmluZwBUYXJnZXRG
cmFtZXdvcmtBdHRyaWJ1dGUAQXNzZW1ibHlGaWxlVmVyc2lvbkF0dHJpYnV0ZQBHdWlkQXR0cmli
dXRlAEFzc2VtYmx5VHJhZGVtYXJrQXR0cmlidXRlAEFzc2VtYmx5Q29weXJpZ2h0QXR0cmlidXRl
AEFzc2VtYmx5UHJvZHVjdEF0dHJpYnV0ZQBBc3NlbWJseUNvbXBhbnlBdHRyaWJ1dGUAQXNzZW1i
bHlEZXNjcmlwdGlvbkF0dHJpYnV0ZQBBc3NlbWJseVRpdGxlQXR0cmlidXRlAFNjcmlwdENvbXBv
bmVudF9mODQ4ZTlkNDdlMDY0MTU1YTNiNGExNTIwOTZiMDgyMy52YnByb2ouZGxsAAAAAAtJAG4A
cAB1AHQAABtDAHIAbQBDAG8AbgBuAGUAYwB0AGkAbwBuAAAVQQBkAGQAVABvAFEAdQBlAHUAZQAA
G1MAbwB1AHIAYwBlAFEAdQBlAHUAZQBJAGQAACVEAGUAcwB0AGkAbgBhAHQAaQBvAG4AUQB1AGUA
dQBlAEkAZAAADVQAYQByAGcAZQB0AAAzVQBuAGgAYQBuAGQAbABlAGQAIABzAGUAcgB2AGkAYwBl
ACAAbwBiAGoAZQBjAHQALgAAP1MAZQBsAGUAYwB0ACAARAB5AG4AYQBtAGkAYwBzACAAQwBSAE0A
IABDAG8AbgBuAGUAYwB0AGkAbwBuAC4AADVTAGUAbABlAGMAdAAgAGUAbgB0AGkAdAB5ACAAbgBh
AG0AZQAgAGMAbwBsAHUAbQBuAC4AADFTAGUAbABlAGMAdAAgAGUAbgB0AGkAdAB5ACAAaQBkACAA
YwBvAGwAdQBtAG4ALgAAMVMAcABlAGMAaQBmAHkAIABzAG8AdQByAGMAZQAgAHEAdQBlAHUAZQAg
AGkAZAAuAAArUwBwAGUAYwBpAGYAeQAgAGUAbgBkACAAcABvAGkAbgB0ACAAaQBkAC4AACFFAG4A
dABpAHQAeQBOAGEAbQBlAEMAbwBsAHUAbQBuAAAdRQBuAHQAaQB0AHkASQBkAEMAbwBsAHUAbQBu
AAATUgBvAHUAdABlAFQAeQBwAGUAABVFAG4AZABQAG8AaQBuAHQASQBkAAAZRABZAE4AQQBNAEkA
QwBTAC0AQwBSAE0AASVEAHkAbgBhAG0AaQBjAHMAIABDAFIATQAgAFIAbwB1AHQAZQAAF2EAcABw
AG8AaQBuAHQAbQBlAG4AdAAAIWMAYQBtAHAAYQBpAGcAbgBhAGMAdABpAHYAaQB0AHkAACFjAGEA
bQBwAGEAaQBnAG4AcgBlAHMAcABvAG4AcwBlAAALZQBtAGEAaQBsAAAHZgBhAHgAABFpAG4AYwBp
AGQAZQBuAHQAAA1sAGUAdAB0AGUAcgAAE3AAaABvAG4AZQBjAGEAbABsAAAlcwBlAHIAdgBpAGMA
ZQBhAHAAcABvAGkAbgB0AG0AZQBuAHQAAAl0AGEAcwBrAAArVQBuAGgAYQBuAGQAbABlAGQAIABl
AG4AdABpAHQAeQA6ACAAewAwAH0AABFFAG4AdABpAHQAeQBJAGQAADFNAHkALgBSAGUAcwBvAHUA
cgBjAGUAcwAuAE0AeQBSAGUAcwBvAHUAcgBjAGUAcwAAAOC82ar0HTlKnSB/Ohp5tZ0ACLd6XFYZ
NOCJCLA/X38R1Qo6AyAAAQMAAAEEAAASDAcGFRIYARIMBAAAEggHBhUSGAESCAQAABIRBwYVEhgB
EhEEAAASFAcGFRIYARIUBAgAEgwECAASCAQIABIRBAgAEhQEIAECHAMgAAgEIAASFQMgAA4CHgAH
EAEBHgAeAAcwAQEBEB4AAhMABCAAEwAHBhUSGQETAAQoABMACBbPSQu4DDTqCImEXc2AgMyRCyAF
ARIhCAISJRIpBCAAHQ4DIAACBCgAHQ4DBhIkAwYSKAkgBAEIDhIlEikFIAEBEhwDBhIhBSABARIh
BCAAEjEEKAASMQUgAQIQDgQgAQEOBCAAETUFIAEBETUGIAESORIcAgYOAwYRNQMGEj0DBhJBAwYS
RQIGCAMoAA4EKAARNQMGEkkDBhJNBAAAEkkEAAASTQUAAQESTQQIABJJBAgAEk0DBhI0AgYcBAAA
EjQECAASNAUgAQERWQgBAAEAAAAAAAUgAgEODhgBAApNeVRlbXBsYXRlCDEwLjAuMC4wAAAEAQAA
AAYVEhgBEgwGFRIYARIIBhUSGAESEQYVEhgBEhQEBwESDAQHARIIBAcBEhEEBwESFBABAAtNeS5D
b21wdXRlcgAAEwEADk15LkFwcGxpY2F0aW9uAAAMAQAHTXkuVXNlcgAAEwEADk15LldlYlNlcnZp
Y2VzAAAEAAEcHAMHAQIDBwEIBgABEhURdQQHARIVAwcBDgUQAQAeAAQKAR4ABAcBHgAHIAQBDg4O
DmEBADRTeXN0ZW0uV2ViLlNlcnZpY2VzLlByb3RvY29scy5Tb2FwSHR0cENsaWVudFByb3RvY29s
EkNyZWF0ZV9fSW5zdGFuY2VfXxNEaXNwb3NlX19JbnN0YW5jZV9fAAAABhUSGAETAAYVEhkBEwAE
CgETAAUgAQETAAgHAxMAEwATAAQgAQECBQEAAAAABAcBHQ4FIAASgJEFIAASgJUGIAESgJkcBSAA
EoCdBiABEoChHAQHARIxBSACAQ4cBCAAEiUEIAEcCAYgAQERgL0IIAESgMESgKUFIAEBEjkIIAES
gMUSgMkGAAEBEoC1BSAAEoDRFwcHEoClEoCpEoCtEoCxEoC1EYC5EYC5BCABHBwFIAASgNkFIAAS
gN0FIAASgOEGIAESgOUcBSACCAgIBgcCEoCZHAQAAQIOBSAAEoDpBSAAEoDtBSAAEoDxBiABEoD1
HA0gBBKA5QgSgO0IEYD9FgcIAgISgOUSgOUSgJkSgOkSgO0SgLUEIAEIHAcgARKBBRIVAh0OBwcC
HQ4SgQEEBwERNQYHAh0OHQ4KIAYBCA4ODggQAgYAAwgODgIFAAIODhwNIAUcDhGBNRKBORwdHA0H
BhGAuQ4SORI5Dh0cBSABAR0OWQEABgAAAA1Dcm1Db25uZWN0aW9uEEVudGl0eU5hbWVDb2x1bW4O
RW50aXR5SWRDb2x1bW4NU291cmNlUXVldWVJZAlSb3V0ZVR5cGUKRW5kUG9pbnRJZAAAEgEADUdl
dFByb3BlcnRpZXMAAA0BAAhWYWxpZGF0ZQAAKgEAJVNlbGVjdCBjb2x1bW4gY29udGFpbmluZyBl
bnRpdHkgbmFtZS4AADABACtTZWxlY3QgY29sdW1uIGNvbnRhaW5pbmcgZW50aXR5IGlkZW50aWZp
ZXIuAAAlAQAgU3BlY2lmeSBzb3VyY2UgcXVldWUgaWRlbnRpZmllci4AACIBAB1TcGVjaWZ5IGVu
ZCBwb2ludCBpZGVudGlmaWVyLgAABiABARGBWQQgAQEICAEAAAAAAAAAFwEAElNlbGVjdCByb3V0
ZSB0eXBlLgAAFgEAEUNybUNvbm5lY3Rpb25UeXBlAAAsAQAnU2VsZWN0IER5bmFtaWNzIENSTSBD
b25uZWN0aW9uIE1hbmFnZXIuAAAFIAASgWUHIAIBDhKBZQYHAhJJEkkEBwESTQgBAAIAAAAAAAQA
AQEcBAcBEjQIAQAIAAAAAAAeAQABAFQCFldyYXBOb25FeGNlcHRpb25UaHJvd3MBRwEAGi5ORVRG
cmFtZXdvcmssVmVyc2lvbj12NC4wAQBUDhRGcmFtZXdvcmtEaXNwbGF5TmFtZRAuTkVUIEZyYW1l
d29yayA0DAEABzEuMC4wLjAAACkBACRiNGM5ZTVlZS0xNWE5LTRiMTUtOTUxMC04OWFiODg4OWVm
NTYAAAUBAAEAAB8BABpDb3B5cmlnaHQgQCBNaWNyb3NvZnQgMjAxMgAAPAEAN1NjcmlwdENvbXBv
bmVudF9mODQ4ZTlkNDdlMDY0MTU1YTNiNGExNTIwOTZiMDgyMy52YnByb2oAAA4BAAlNaWNyb3Nv
ZnQAAAAAMFsAAAAAAAAAAAAATlsAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBbAAAAAAAAAAAA
AAAAAAAAAF9Db3JEbGxNYWluAG1zY29yZWUuZGxsAAAAAAD/JQAgQAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAEAAAABgAAIAAAAAAAAAA
AAAAAAAAAAEAAQAAADAAAIAAAAAAAAAAAAAAAAAAAAEAAAAAAEgAAABYYAAAaAQAAAAAAAAAAAAA
aAQ0AAAAVgBTAF8AVgBFAFIAUwBJAE8ATgBfAEkATgBGAE8AAAAAAL0E7/4AAAEAAAABAAAAAAAA
AAEAAAAAAD8AAAAAAAAABAAAAAIAAAAAAAAAAAAAAAAAAABEAAAAAQBWAGEAcgBGAGkAbABlAEkA
bgBmAG8AAAAAACQABAAAAFQAcgBhAG4AcwBsAGEAdABpAG8AbgAAAAAAAACwBMgDAAABAFMAdABy
AGkAbgBnAEYAaQBsAGUASQBuAGYAbwAAAKQDAAABADAAMAAwADAAMAA0AGIAMAAAADQACgABAEMA
bwBtAHAAYQBuAHkATgBhAG0AZQAAAAAATQBpAGMAcgBvAHMAbwBmAHQAAACYADgAAQBGAGkAbABl
AEQAZQBzAGMAcgBpAHAAdABpAG8AbgAAAAAAUwBjAHIAaQBwAHQAQwBvAG0AcABvAG4AZQBuAHQA
XwBmADgANAA4AGUAOQBkADQANwBlADAANgA0ADEANQA1AGEAMwBiADQAYQAxADUAMgAwADkANgBi
ADAAOAAyADMALgB2AGIAcAByAG8AagAAADAACAABAEYAaQBsAGUAVgBlAHIAcwBpAG8AbgAAAAAA
MQAuADAALgAwAC4AMAAAAJgAPAABAEkAbgB0AGUAcgBuAGEAbABOAGEAbQBlAAAAUwBjAHIAaQBw
AHQAQwBvAG0AcABvAG4AZQBuAHQAXwBmADgANAA4AGUAOQBkADQANwBlADAANgA0ADEANQA1AGEA
MwBiADQAYQAxADUAMgAwADkANgBiADAAOAAyADMALgB2AGIAcAByAG8AagAuAGQAbABsAAAAXAAb
AAEATABlAGcAYQBsAEMAbwBwAHkAcgBpAGcAaAB0AAAAQwBvAHAAeQByAGkAZwBoAHQAIABAACAA
TQBpAGMAcgBvAHMAbwBmAHQAIAAyADAAMQAyAAAAAACgADwAAQBPAHIAaQBnAGkAbgBhAGwARgBp
AGwAZQBuAGEAbQBlAAAAUwBjAHIAaQBwAHQAQwBvAG0AcABvAG4AZQBuAHQAXwBmADgANAA4AGUA
OQBkADQANwBlADAANgA0ADEANQA1AGEAMwBiADQAYQAxADUAMgAwADkANgBiADAAOAAyADMALgB2
AGIAcAByAG8AagAuAGQAbABsAAAAkAA4AAEAUAByAG8AZAB1AGMAdABOAGEAbQBlAAAAAABTAGMA
cgBpAHAAdABDAG8AbQBwAG8AbgBlAG4AdABfAGYAOAA0ADgAZQA5AGQANAA3AGUAMAA2ADQAMQA1
ADUAYQAzAGIANABhADEANQAyADAAOQA2AGIAMAA4ADIAMwAuAHYAYgBwAHIAbwBqAAAANAAIAAEA
UAByAG8AZAB1AGMAdABWAGUAcgBzAGkAbwBuAAAAMQAuADAALgAwAC4AMAAAADgACAABAEEAcwBz
AGUAbQBiAGwAeQAgAFYAZQByAHMAaQBvAG4AAAAxAC4AMAAuADAALgAwAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAADAAAAGA7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==]]></arrayElement></arrayElements></property><property id="9" name="UserComponentTypeName" dataType="System.String">CozyRoc.SqlServer.SSIS.ScriptComponentHostPlus, CozyRoc.SSISPlus.2012, Version=1.0.0.0, Culture=neutral, PublicKeyToken=16cf490bb80c34ea</property><property id="11" name="VSTAProjectName" dataType="System.String" description="Specifies the name of the Microsoft Visual Studio Tools for Applications project. Project names must be unique within a package." typeConverter="NOTBROWSABLE">ScriptComponent_f848e9d47e064155a3b4a152096b0823</property><property id="12" name="ScriptLanguage" dataType="System.String" description="Specifies the programming language used by the script." typeConverter="Microsoft.SqlServer.VSTAHosting.ScriptingLanguages, Microsoft.SqlServer.VSTAScriptingLib, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91">VisualBasic</property></properties><connections><connection id="14" name="CrmConnection" connectionManagerID="{E61DCFD1-42B3-43CF-BE85-E7445D992638}" /></connections><inputs><input id="15" name="Input" hasSideEffects="true"></input></inputs></component>