<component id="2" name="Dynamics CRM User Access" componentClassID="Microsoft.ManagedComponentHost" description="Executes a custom script." localeId="1033" version="9" 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="15"><arrayElement dataType="System.String"><![CDATA[ScriptMain.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
Imports CRM3 = CozyRoc.Dynamics.Crm3.Service


'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
<ValidateProperties("Validate")> _
<ColumnMappings()> _
<Microsoft.SqlServer.Dts.Pipeline.SSISScriptComponentEntryPointAttribute> _
<CLSCompliant(False)> _
Public Class ScriptMain
    Inherits UserComponent


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Public Overrides Sub Input_ProcessInputRow(ByVal Row As InputBuffer)
        Try
            Dim targetEntity As String = Row.Buffer(m_teIndex).ToString().ToLower()
            Dim targetId As Guid = New Guid(Row.Buffer(m_tiIndex).ToString())
            Dim principalEntity As String = Row.Buffer(m_peIndex).ToString()
            Dim principalId As Guid = New Guid(Row.Buffer(m_piIndex).ToString())
            Dim ar As Integer = Convert.ToInt32(Row.Buffer(m_arIndex))

            If Not m_service2011 Is Nothing Then
                ' CRM 2011

                ' Setup Target.
                Dim target As New CRM2011.EntityReference
                target.LogicalName = targetEntity
                target.Id = targetId

                ' Setup Principal.
                Dim principal As New CRM2011.EntityReference
                principal.LogicalName = principalEntity.ToLower()
                principal.Id = principalId

                ' Revoke previous access first.
                Try
                    Dim raReq As New CRM2011.OrganizationRequest
                    raReq.RequestName = "RevokeAccess"
                    raReq("Target") = target
                    raReq("Revokee") = principal
                    Call m_service2011.Execute(raReq)
                Catch ex As Exception
                    ' Ignore the failure.
                End Try

                If ar <> 0 Then
                    ' Grant new access.
                    Dim gaReq As New CRM2011.OrganizationRequest
                    gaReq.RequestName = "GrantAccess"
                    gaReq("Target") = target

                    Dim pa As New CRM2011.PrincipalAccess
                    pa.Principal = principal
                    pa.AccessMask = CType(ar, CRM2011.AccessRights)
                    gaReq("PrincipalAccess") = pa

                    Call m_service2011.Execute(gaReq)
                End If
            ElseIf Not m_service4 Is Nothing Then
                ' CRM 4.0

                ' Setup Target.
                Dim target As New CRM4.TargetOwnedDynamic
                target.EntityName = targetEntity
                target.EntityId = targetId

                ' Setup Principal.
                Dim principal As New CRM4.SecurityPrincipal()
                principal.Type = CType( _
                    System.Enum.Parse(GetType(CRM4.SecurityPrincipalType), principalEntity), _
                    CRM4.SecurityPrincipalType)
                principal.PrincipalId = principalId

                ' Revoke previous access first.
                Try
                    Dim raReq As New CRM4.RevokeAccessRequest
                    raReq.Target = target
                    raReq.Revokee = principal
                    Call m_service4.Execute(raReq)
                Catch ex As Exception
                    ' Ignore the failure.
                End Try

                If ar <> 0 Then
                    ' Grant new access.
                    Dim gaReq As New CRM4.GrantAccessRequest
                    gaReq.Target = target

                    Dim pa As New CRM4.PrincipalAccess
                    pa.Principal = principal
                    pa.AccessMask = CType(ar, CRM4.AccessRights)
                    gaReq.PrincipalAccess = pa

                    Call m_service4.Execute(gaReq)
                End If
            Else
                ' CRM 3.0

                ' Setup Target.
                Dim target As New CRM3.TargetOwnedDynamic
                target.EntityName = targetEntity
                target.EntityId = targetId

                ' Setup Principal.
                Dim principal As New CRM3.SecurityPrincipal()
                principal.Type = CType( _
                    System.Enum.Parse(GetType(CRM3.SecurityPrincipalType), principalEntity), _
                    CRM3.SecurityPrincipalType)
                principal.PrincipalId = principalId

                ' Revoke previous access first.
                Try
                    Dim raReq As New CRM3.RevokeAccessRequest
                    raReq.Target = target
                    raReq.Revokee = principal
                    Call m_service3.Execute(raReq)
                Catch ex As Exception
                    ' Ignore the failure.
                End Try

                If ar <> 0 Then
                    Dim gaReq As New CRM3.GrantAccessRequest
                    gaReq.Target = target

                    ' Grant new access.
                    Dim pa As New CRM3.PrincipalAccess
                    pa.Principal = principal
                    pa.AccessMask = CType(ar, CRM3.AccessRights)
                    gaReq.PrincipalAccess = pa

                    Call m_service3.Execute(gaReq)
                End If
            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
                m_service3 = TryCast(service, CRM3.CrmService)
                If m_service3 Is Nothing Then
                    Throw New Exception("Unhandled service object.")
                End If
            End If
        End If

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

        For Each inputCol As IDTSInputColumn100 In input.InputColumnCollection
            Dim extCol As IDTSExternalMetadataColumn100 = input.ExternalMetadataColumnCollection.GetObjectByID( _
                inputCol.ExternalMetadataColumnID)
            Dim index As Integer = Me.HostComponent.BufferManager.FindColumnByLineageID( _
                input.Buffer, _
                inputCol.LineageID)

            Select Case extCol.Name
                Case "TargetEntity"
                    m_teIndex = index
                Case "TargetId"
                    m_tiIndex = index
                Case "PrincipalEntity"
                    m_peIndex = index
                Case "PrincipalId"
                    m_piIndex = index
                Case "AccessRights"
                    m_arIndex = index
                Case Else
                    Throw New Exception("Unhandled column.")
            End Select
        Next
    End Sub ' PreExecute


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

        Call m_connection.Close()
        m_teIndex = -1
        m_tiIndex = -1
        m_peIndex = -1
        m_piIndex = -1
        m_arIndex = -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

            Dim input As IDTSInput100 = Me.ComponentMetaData.InputCollection(0)
            If input.IsAttached AndAlso input.InputColumnCollection.Count < 5 Then
                Throw New Exception("Map input columns.")
            End If

            ' 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


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

        If MyBase.ComponentMetaData.InputCollection.Count = 0 Then
            ' At least one input must exist.
            Throw New Exception("No inputs.")
        End If

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

        ' Cleanup.
        input.ExternalMetadataColumnCollection.IsUsed = True
        Call input.InputColumnCollection.RemoveAll()
        Call input.ExternalMetadataColumnCollection.RemoveAll()

        Dim column As IDTSExternalMetadataColumn100

        ' Setup target entity column.
        column = input.ExternalMetadataColumnCollection.[New]()
        column.Name = "TargetEntity"
        column.DataType = DataType.DT_WSTR
        column.Length = 50

        ' Setup target id column.
        column = input.ExternalMetadataColumnCollection.[New]()
        column.Name = "TargetId"
        column.DataType = DataType.DT_GUID

        ' Setup principal entity column.
        column = input.ExternalMetadataColumnCollection.[New]()
        column.Name = "PrincipalEntity"
        column.DataType = DataType.DT_WSTR
        column.Length = 50

        ' Setup principal id column.
        column = input.ExternalMetadataColumnCollection.[New]()
        column.Name = "PrincipalId"
        column.DataType = DataType.DT_GUID

        ' Setup access rights column.
        column = input.ExternalMetadataColumnCollection.[New]()
        column.Name = "AccessRights"
        column.DataType = DataType.DT_I4
    End Sub ' ReinitializeMetaData


#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
#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 Grant Access", _
            message, _
            String.Empty, _
            0, _
            cancel)
    End Sub ' FireError_
#End Region ' Internals


#Region "Attributes"
    Private m_crmConnection As String

    Private m_connection As ICrmConnection
    Private m_service2011 As CRM2011.OrganizationServiceClient
    Private m_service4 As CRM4.CrmService
    Private m_service3 As CRM3.CrmService
    Private m_teIndex As Integer
    Private m_tiIndex As Integer
    Private m_peIndex As Integer
    Private m_piIndex As Integer
    Private m_arIndex As Integer
#End Region ' Attributes
End Class   ' ScriptMain
]]></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[ScriptComponent_a52b8cc7033d4f6c9c5ddd4a3a832e3d.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">
  <PropertyGroup>
    <ProjectTypeGuids>{30D016F9-3734-4E33-A861-5E7D899E18F3};{F184B08F-C81C-45F6-A57F-5ABD9991F28F}</ProjectTypeGuids>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <ProductVersion>8.0.30703</ProductVersion>
    <SchemaVersion>2.0</SchemaVersion>
    <ProjectGuid>{19DD988F-871D-40EE-87E4-86D4953200C3}</ProjectGuid>
    <OutputType>Library</OutputType>
    <AppDesignerFolder>My Project</AppDesignerFolder>
    <RootNamespace>ScriptComponent_a52b8cc7033d4f6c9c5ddd4a3a832e3d</RootNamespace>
    <AssemblyName>ScriptComponent_a52b8cc7033d4f6c9c5ddd4a3a832e3d</AssemblyName>
    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
    <FileAlignment>512</FileAlignment>
    <OptionCompare>Binary</OptionCompare>
    <OptionExplicit>On</OptionExplicit>
    <OptionStrict>On</OptionStrict>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
    <DebugSymbols>true</DebugSymbols>
    <DebugType>full</DebugType>
    <Optimize>false</Optimize>
    <OutputPath>.\bin\Debug\</OutputPath>
    <EnableUnmanagedDebugging>false</EnableUnmanagedDebugging>
    <DefineDebug>true</DefineDebug>
    <DefineTrace>true</DefineTrace>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
    <DebugSymbols>false</DebugSymbols>
    <Optimize>true</Optimize>
    <OutputPath>.\bin\Release\</OutputPath>
    <EnableUnmanagedDebugging>false</EnableUnmanagedDebugging>
    <DefineDebug>false</DefineDebug>
    <DefineTrace>true</DefineTrace>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <!-- This sections specifies references for the project. -->
  <ItemGroup>
    <Reference Include="CozyRoc.SSISPlus.2014, Version=1.0.0.0, Culture=neutral, PublicKeyToken=16cf490bb80c34ea, processorArchitecture=MSIL">
      <SpecificVersion>False</SpecificVersion>
      <HintPath>C:\Program Files (x86)\Microsoft SQL Server\120\SDK\Assemblies\CozyRoc.SSISPlus.2014.dll</HintPath>
    </Reference>
    <Reference Include="System" />
    <Reference Include="System.Data" />
    <Reference Include="System.Windows.Forms" />
    <Reference Include="System.Xml" />
    <Reference Include="Microsoft.SqlServer.TxScript, Version=12.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="Microsoft.SqlServer.DTSRuntimeWrap, Version=12.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="Microsoft.SqlServer.DTSPipelineWrap, Version=12.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="Microsoft.SqlServer.PipelineHost, Version=12.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="System">
      <Private>False</Private>
    </Reference>
    <Reference Include="System.Data">
      <Private>False</Private>
    </Reference>
    <Reference Include="Microsoft.SqlServer.ManagedDTS">
      <Private>False</Private>
    </Reference>
    <Reference Include="CozyRoc.Dynamics">
      <Private>False</Private>
    </Reference>
    <Reference Include="System.Web.Services">
      <Private>False</Private>
    </Reference>
    <Reference Include="System.Xml">
      <Private>False</Private>
    </Reference>
  </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>
  <ItemGroup>
    <AppDesigner Include="My Project\" />
  </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="" />
        <Host Name="SSIS_SC120" />
        <ProjectClient>
          <HostIdentifier>SSIS_SC120</HostIdentifier>
        </ProjectClient>
      </FlavorProperties>
    </VisualStudio>
  </ProjectExtensions>
  <ItemGroup>
    <Compile Include="ScriptMain.vb" />
    <Compile Include="BufferWrapper.vb" />
    <Compile Include="ComponentWrapper.vb" />
  </ItemGroup>
  <ItemGroup>
    <Folder Include="My Project\" />
  </ItemGroup>
</Project>]]></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[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:CodeName>ScriptComponent_a52b8cc7033d4f6c9c5ddd4a3a832e3d</msb:CodeName>
		<msb:DisplayName>ScriptComponent_a52b8cc7033d4f6c9c5ddd4a3a832e3d</msb:DisplayName>
		<msb:ProjectId>{981A3F17-09F4-4720-A169-DE455188F0D8}</msb:ProjectId>
	</msb:PropertyGroup>
	<msb:ItemGroup>
		<msb:Project Include="ScriptComponent_a52b8cc7033d4f6c9c5ddd4a3a832e3d.vbproj"/>
		<msb:Folder Include="My Project\"/>
		<msb:File Include="ScriptMain.vb"/>
		<msb:File Include="ComponentWrapper.vb"/>
		<msb:File Include="BufferWrapper.vb"/>
	</msb:ItemGroup>
</c:Project>]]></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_a52b8cc7033d4f6c9c5ddd4a3a832e3d.dll]]></arrayElement><arrayElement dataType="System.String"><![CDATA[TVqQAAMAAAAEAAAA//8AALgAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAgAAAAA4fug4AtAnNIbgBTM0hVGhpcyBwcm9ncmFtIGNhbm5vdCBiZSBydW4gaW4gRE9TIG1v
ZGUuDQ0KJAAAAAAAAABQRQAATAEDAJa/EFQAAAAAAAAAAOAAAiELAQsAADIAAAAGAAAAAAAALlAA
AAAgAAAAYAAAAAAAEAAgAAAAAgAABAAAAAAAAAAEAAAAAAAAAACgAAAAAgAAAAAAAAIAQIUAABAA
ABAAAAAAEAAAEAAAAAAAABAAAAAAAAAAAAAAAOBPAABLAAAAAGAAAEgDAAAAAAAAAAAAAAAAAAAA
AAAAAIAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAIAAACAAAAAAAAAAAAAAACCAAAEgAAAAAAAAAAAAAAC50ZXh0AAAANDAAAAAgAAAAMgAAAAIA
AAAAAAAAAAAAAAAAACAAAGAucnNyYwAAAEgDAAAAYAAAAAQAAAA0AAAAAAAAAAAAAAAAAABAAABA
LnJlbG9jAAAMAAAAAIAAAAACAAAAOAAAAAAAAAAAAAAAAAAAQAAAQgAAAAAAAAAAAAAAAAAAAAAQ
UAAAAAAAAEgAAAACAAUA9CoAAOwkAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4CKAEAAAoqHgIoBAAACiqmcwYAAAqAAQAABHMHAAAKgAIA
AARzCAAACoADAAAEcwkAAAqABAAABCoAABMwAQALAAAAAQAAEX4BAAAEbwoAAAoqABMwAQALAAAA
AgAAEX4CAAAEbwsAAAoqABMwAQALAAAAAwAAEX4DAAAEbwwAAAoqABMwAQALAAAABAAAEX4EAAAE
bw0AAAoqABMwAgANAAAABQAAEQIDKBEAAAooEgAACioAAAATMAEABwAAAAYAABECKBMAAAoqABMw
AQALAAAABwAAEdAFAAACKBQAAAoqABMwAQAHAAAACAAAEQIoFQAACioAEzABABAAAAAJAAARAowB
AAAbLQYoAQAAKyoCKhMwAgAQAAAACgAAEQMSAP4VAgAAGwaBAgAAGyoeAigXAAAKKhMwAgAoAAAA
CwAAEQJ7GQAACm8aAAAKCweMAwAAGy0SKAIAACsLAnsZAAAKB28bAAAKBypKAigXAAAKAnMcAAAK
fRkAAAoqADoCAwQFDgQOBSgeAAAKKgATMAEABwAAAAwAABEWjR0AAAEqABMwAQAHAAAADQAAERaN
HQAAASoAEzABAAkAAAAOAAARAigfAAAKCgYqAAAAEzABAAkAAAAPAAARAiggAAAKCgYqAAAAfgIo
IgAACgICcxoAAAZ9BgAABAICcxwAAAZ9BwAABCq+AwIoIwAACm8kAAAKcgEAAHBvJQAACm8mAAAK
MxECAgMXBQ4EcxEAAAZvGAAABipKKwcCA28ZAAAGA28UAAAGLfEqAAYqAAA6AigXAAAKAgN9CAAA
BCoAEzACACAAAAAQAAARAnsIAAAEbyMAAApvJwAACnINAABwbygAAApvKQAACio6AigXAAAKAgN9
CQAABCoAHgIoFgAABiobMAMARgMAABEAABEDbyoAAAoCew8AAARvKwAACm8VAAAKbywAAAoNEgQD
byoAAAoCexAAAARvKwAACm8VAAAKKC0AAAoDbyoAAAoCexEAAARvKwAACm8VAAAKCxICA28qAAAK
AnsSAAAEbysAAApvFQAACigtAAAKA28qAAAKAnsTAAAEbysAAAooEQAACiguAAAKCgJ7DAAABDnj
AAAAcy8AAAoTBhEGCW8wAAAKEQYRBG8xAAAKcy8AAAoTBREFB28sAAAKbzAAAAoRBQhvMQAACnMy
AAAKEwcRB3IpAABwbzMAAAoRB3JDAABwEQZvNAAAChEHclEAAHARBW80AAAKAnsMAAAEEQdvNQAA
CibeDyUoNgAAChMIKDcAAAreAAYWO+kBAABzMgAAChMJEQlyYQAAcG8zAAAKEQlyQwAAcBEGbzQA
AApzOAAAChMKEQoRBW85AAAKEQoGbzoAAAoRCXJ5AABwEQpvNAAACgJ7DAAABBEJbzUAAAom3c4B
AAACew0AAAQ5xgAAAHM7AAAKEwwRDAlvPAAAChEMEQRvPQAACnM+AAAKEwsRC9A6AAABKBQAAAoH
KD8AAAooQAAACm9BAAAKEQsIb0IAAApzQwAAChMNEQ0RDG9EAAAKEQ0RC29FAAAKAnsNAAAEEQ1v
RgAACibeDyUoNgAAChMOKDcAAAreAAYWOwIBAABzRwAAChMPEQ8RDG9IAAAKc0kAAAoTEBEQEQtv
SgAAChEQBm9LAAAKEQ8REG9MAAAKAnsNAAAEEQ9vRgAACibd/QAAAHNNAAAKExIREglvTgAAChES
EQRvTwAACnNQAAAKExEREdBBAAABKBQAAAoHKD8AAAooQAAACm9RAAAKEREIb1IAAApzUwAAChMT
ERMREm9UAAAKERMREW9VAAAKAnsOAAAEERNvVgAACibeDyUoNgAAChMUKDcAAAreAAYWLj9zVwAA
ChMVERUREm9YAAAKc1kAAAoTFhEWERFvWgAAChEWBm9bAAAKERURFm9cAAAKAnsOAAAEERVvVgAA
CibePSUoNgAAChMXAhEXb10AAApvXgAACm8mAAAGKDcAAAreHCUoNgAAChMYAhEYb18AAApvJgAA
Big3AAAK3gAqAABBfAAAAAAAAMgAAAA/AAAABwEAAA8AAAAoAAABAAAAAMUBAAApAAAA7gEAAA8A
AAAoAAABAAAAAIsCAAApAAAAtAIAAA8AAAAoAAABAAAAAAAAAAAIAwAACAMAACEAAAA0AAABAAAA
AAAAAAAIAwAAKQMAABwAAAAoAAABGzADAKMBAAASAAARAihgAAAKAgJ7BgAABG8bAAAGFG9hAAAK
dA0AAAF9CwAABAJ7CwAABG9iAAAKAnsLAAAEFm9jAAAKKBEAAAoLAgd1DgAAAX0MAAAEAnsMAAAE
LTMCB3UPAAABfQ0AAAQCew0AAAQtHwIHdRAAAAF9DgAABAJ7DgAABC0LcpkAAHBzZAAACnoCKCMA
AApvJAAAChaMSgAAAW8lAAAKCgZvZQAACm9mAAAKEwU4zwAAABEFb2cAAAp0SAAAARMEBm9oAAAK
EQRvaQAACm9qAAAKDAJvawAACm9sAAAKBm9tAAAKEQRvbgAACm9vAAAKDQhvcAAAChMGEQZyzQAA
cBYocQAAChYzCQIJfQ8AAAQrbxEGcucAAHAWKHEAAAoWMwkCCX0QAAAEK1YRBnL5AABwFihxAAAK
FjMJAgl9EQAABCs9EQZyGQEAcBYocQAAChYzCQIJfRIAAAQrJBEGcjEBAHAWKHEAAAoWMwkCCX0T
AAAEKwtySwEAcHNkAAAKehEFb3IAAAo6Jf///94WEQV1UAAAASwMEQV1UAAAAW9zAAAK3CoAARAA
AAIAnQDvjAEWAAAAANYCKHQAAAoCewsAAARvdQAACgIVfQ8AAAQCFX0QAAAEAhV9EQAABAIVfRIA
AAQCFX0TAAAEKgAAGzACAJAAAAATAAARAm8jAAAGKHYAAAosC3JvAQBwc2QAAAp6Am8jAAAKbyQA
AAoWjEoAAAFvJQAACgwIb3cAAAosGQhvZQAACm94AAAKGy8Lcq8BAHBzZAAACnoCbyMAAApvJwAA
CnINAABwbygAAAoCbyMAAAZveQAAChcK3hglKDYAAAoNFgoDCW9fAAAKUSg3AAAK3gAGCwcqARAA
AAAAAAB0dAAYKAAAARMwAgAOAQAAFAAAEQIoegAACgIoIwAACm8kAAAKb3sAAAoWMwty1QEAcHNk
AAAKegIoIwAACm8kAAAKFoxKAAABbyUAAAoLB29oAAAKF298AAAKB29lAAAKb30AAAoHb2gAAApv
fgAACgdvaAAACm9/AAAKCgZyzQAAcG+AAAAKBiCCAAAAb4EAAAoGHzJvggAACgdvaAAACm9/AAAK
CgZy5wAAcG+AAAAKBh9Ib4EAAAoHb2gAAApvfwAACgoGcvkAAHBvgAAACgYgggAAAG+BAAAKBh8y
b4IAAAoHb2gAAApvfwAACgoGchkBAHBvgAAACgYfSG+BAAAKB29oAAAKb38AAAoKBnIxAQBwb4AA
AAoGGW+BAAAKKgAAEzABAAkAAAAVAAARAnsKAAAECgYqAAAAIgIDfQoAAAQqAAAAEzADABMAAAAW
AAARF40dAAABCwcWcusBAHCiBwoGKgATMAcAHQAAABcAABEWCgIoIwAAChZyBQIAcAN+gwAAChYS
AG+EAAAKKgAAAEJTSkIBAAEAAAAAAAwAAAB2NC4wLjMwMzE5AAAAAAUAbAAAAIgMAAAjfgAA9AwA
AMQQAAAjU3RyaW5ncwAAAAC4HQAAPAIAACNVUwD0HwAAEAAAACNHVUlEAAAABCAAAOgEAAAjQmxv
YgAAAAAAAAACAAABVxWiCQkOAAAA+iUzABYAAAEAAABZAAAACwAAABMAAAAmAAAAFAAAAIwAAAAx
AAAAFwAAAAUAAAAKAAAACwAAAAkAAAABAAAADAAAAAIAAAADAAAAAgAAAAAAjRABAAAAAAAKAD8B
FQEKAHMBVQEGAIMBfAEKANsBFQEGAFkCfAEKANsCsQIOAC0DFgMSAHwDWwMWAK0DWwMSALwDWwMO
AGAEFgMaABsF8wQOAOUFFgMeAD8GEgYeAIQGZwYeAIQGmgYiAB0HBwciADYHBwciAGMHSwcGAI0H
egcKAMwHpQcKAOQHEwAiABkI/AcGAE4ILggGAGwIfAEGAJAIfAEKAKkIEwAGAPcI2AgGAAsJfAES
ABIJWwMGAB8JfAEmAIIJWQkmALEJWQkmANwJWQkmAPkJWQkmADwKWQkGAGsKfAEeAHAKEgYeAIAK
EgYGAJQKfAEeAJ4KEgYeAK4KZwYeAMAKZwYeANMKZwYeAOcKZwYeAJ4KZwYeAK4KmgYeAMAKmgYe
ANMKmgYeAOcKmgYeAJ4KmgYqACwLDgsGAE0LfAEuAGsKfAEeAI0LEgYKAKoLpQceAOYLEgYeAB4M
ZwYGADQMfAEKAD8MpQceAG4MZwYeAJEMZwYeAJoMZwYeAOYLZwYeAB4MmgYeAG4MmgYeAJEMmgYe
AJoMmgYeAOYLmgYyAMEMtgwmAO0MWQkmAAsNWQkGADENHg0GAGINfAEmAGgNWQkmALkNWQkWADEO
WwMmAFUOWQkKAKkOpQcGAMoOfAEaAEUP8wQSAHYPWwMOAL8PnQ8OANcPnQ8OAPMPnQ8iAAcQBwcG
ABwQLggGADwQLggGAHQQWhAAAAAAAQAAAAAAAQABAAAAAAApADcABQABAAEAAAAAAGsANwAJAAEA
AgAAARAAdgA3AA0AAQADAAUBAACAAAAADQAFAAgABQEAAI4AAAANAAUADwABAAAAqQC1AB0ABgAR
AAEAAADmALUALQAGABYAAQAAAPQAtQANAAgAGgABAAAAAAG1AA0ACQAcAAEAAAAKAbUAIAAKAB0A
MQCeASAAMQDHAS0AMQDpAToAMQAOAkcAIQDqApAABgD0AMkABgAAAc0AAQDABOEAAQDABOEAAQDV
BQABAQD0BQMBAQBZBgcBAQCPBgsBAQC4Bg8BAQDDBhMBAQDNBhMBAQDXBhMBAQDhBhMBAQDrBhMB
UCAAAAAABhhPARMAAQBYIAAAAAAGGE8BEwABAGAgAAAAABEYigEXAAEAjCAAAAAAEwiRARsAAQCk
IAAAAAATCLcBKAABALwgAAAAABMI4AE1AAEA1CAAAAAAEwj+AUIAAQDsIAAAAABGAkQCYwABAAgh
AAAAAEYCTQJoAAIAHCEAAAAAgwBeAmwAAgA0IQAAAABGAmYCcQACAEghAAAAABEAbwJ4AAIAZCEA
AAAAAQCNAoAAAwCAIQAAAAAGGE8BEwAEAIghAAAAAAMIoQKLAAQAvCEAAAAABhhPARMABADQIQAA
AAAGGE8BrwAEAOAhAAAAAEYK9gO7AAkA9CEAAAAARgoNBLsACQAIIgAAAACGACUEwAAJACAiAAAA
AIYALQTAAAkAOCIAAAAABhhPARMACQBYIgAAAABGAnQE0QAJAIgiAAAAAEYDkwTbAA0AnCIAAAAA
RgOmBNsADgCgIgAAAAAGGE8B5QAPALAiAAAAAAYINAXrABAA3CIAAAAABhhPAeUAEADsIgAAAAAG
GE8BEwARAPQiAAAAAEYCpgTbABEAxCYAAAAARgJUBRMAEgCEKAAAAABGAl8FEwASALwoAAAAAAYA
awX1ABIAaCkAAAAARgJ/BRMAEwCEKgAAAAAGCDQFcQATAJwqAAAAAAYIlAX7ABMAqCoAAAAAAQis
BbsAFADIKgAAAAABAMIF+wAUAAAAAQBLAgAAAQCEAgAAAQCEAgAAAQDKAwAAAgDUAwAAAwDdAwAA
BADlAwAABQDsAwAAAQCBBAAAAgCJBAAAAwDlAwAABADsAwAAAQDlAwAAAQC8BAAAAQDKAwAAAQDK
AwAAAQC8BAAAAQB0BQAAAQCmBQAAAQDNBQkATwETAIkATwEaAZkATwEpAREATwETAKEATwETACQA
TwETACwATwETADQATwETADwATwETACQAoQKLACwAoQKLADQAoQKLADwAoQKLAKkATwETALEATwET
ALkATwH7AMEAXQjDARkARAJjABkATQJoACkAfgjQARkAZgJxANEAmgjgARkATwETANkATwHwAUQA
6gKQAEwAxAiLAEwAzghtAkwATwETAOEATwF8AjkATwGvAPEAJQTAAPEALQTAAPkATwF8AlkATwET
AEEAmwmMAgEByAmSAgkB6QmYAhEB8gloAAEBHAqfAhkB6QmlAiEBVQrrADkAOguxAkkA6Qm2AukA
RQtxACkBTwH7AKkBVQu7AjEBTwETADEBXQv7ADEBbQvAAjkBTwETADkBdAv7ADkBhAvHAnEAogvN
AsEBtgvWAsEBxgsXAEkBTwETAEkB2AvdAkkB8wvkAlkBTwETAFkBAgz7AFkBEQzAAlEBTwETANkB
OQzrAuEBSwy7AlEBVQzyAlEBXgzAAmEBTwETAGEBegz5AmEBhQwAA3kAogsHA2kBTwETAGkBegz5
AnEBTwETAHEB2AsAA3EB8wsQA2kBogwXA4EBTwETAIEBAgz7AIEBEQzAAnkBTwETAHkBVQweA3kB
XgzAAokBTwETAIkBegwlA4kBhQwsA4EAogszA5EBTwETAJEBegwlA5kBTwETAJkB2AssA5kB8ws8
A5EBogxDA6EByQxKAzEC1AxxAEEB4QxxAEEAVAUTAGEAPQ2bA2kATw0TAGkAVw22AkEBTwH7ABEB
hQ2gA1kCnw2mA0kCrQ2sAxEB4Q2wA0ECBg5oAGECIw62A1kAQw69A2kCag7DAxEBOgtoAEECfA5o
AHECig7JAzkCoA5xAHkCsw7PA0kCwQ7AAIEC1g4TAEEAXwUTAGkA3g4TAOkA5A7oAxEB8g7AAFkC
AQ9oACEBCw/7AFkAfwUTAAkBAQ9oAGECIw98AlkCLg8TAGECLg8TAGECOA/4AzkCPA/7ADkCTg/+
AzkCWw8FBOkAZg8AAQEBbA8aBJECTwETAJkCTwETAKECTwH7AKkCTwH7ALECTwH7ALkCTwEFBMEC
TwETAMkCTwH7ACkAgwB9AS4AUwR3BC4AWwSABC4AYwSfBEAAKwBIAUAAEwAgAUMAGwAvAUMAEwAg
AUkAgwCvAWMAGwAvAWMAEwAgAWkAgwCOAYAAKwBIAYMAewBIAYMAcwBIAYMAGwAvAYkAgwCbAaAA
KwBIAaMAEwAgAaMAwwD4AcAAKwBIAcMAEwAgAcMA6wCBAuAAKwBIAeMACwGBAgABKwBIAQABEwAg
AQMBCwGBAiABEwAgASABKwBIASkBSwRKBCkBQwQzBEABKwBIAUABEwAgAWABKwBIAWABEwAgAWMB
KwRIAWMBMwRIAWMBOwQlBGMBCwGBAoABKwBIAaABKwBIAcABKwBIAcABEwAgAeABKwBIAQACEwAg
AQACKwBIAUADCwGBAoADCwGBAmkBbgFzAXgByAHMAdcB3AHrAesBcwKHAocCyAHIAawCUAPWA+0D
CgTcARMEyAEEAAEABgAFAAcABgAJAAgACwAJAAAAcwFPAAAALAJUAAAA2wFZAAAAOAJeAAAA9AKY
AAAAOQTEAAAATATEAAAARgXwAAAARgUWAQAA9QbEAAIABAADAAIABQAFAAIABgAHAAIABwAJAAIA
DwALAAIAEgANAAIAEwAPAAIAGwARAAIAIwATAAEAJAATAAIAJQAVAHUAdQCIAE0BVAFbAWIBWgJh
AgSAAAAAAAAAAAAAAAAAAAAAALUAAAAEAAAAAAAAAAAAAAABAAoAAAAAAAoAAAAAAAAAAAAAAAoA
EwAAAAAAAQAAAAAAAAAAAAAAnQAAAwAAAAAMAAAAAAAAAAAAAACmAD4DAAAAAAwAAAAAAAAAAAAA
AKYAjAMAAAAADAAAAAAAAAAAAAAApgDQBAAAAAABAAAAAAAAAAAAAACdAAEGAAAAAAQAAAAAAAAA
AAAAAAEAfAEAAAAADAAAAAAAAAAAAAAApgA1CQAAAAAEAAAAAAAAAAAAAAAKAPoKAAAAAAIAAAAA
AAAAAAAAAAEACgAAAAAABAAAAAAAAAAAAAAAAQC2DAAAAAAFAAQABgAEAAAAEAAMAIICAAAQABkA
ggIAAAAAGwCCAi0A5gEtAGgCAAAAPE1vZHVsZT4AbXNjb3JsaWIATWljcm9zb2Z0LlZpc3VhbEJh
c2ljAE15QXBwbGljYXRpb24AU2NyaXB0Q29tcG9uZW50X2E1MmI4Y2M3MDMzZDRmNmM5YzVkZGQ0
YTNhODMyZTNkLk15AE15Q29tcHV0ZXIATXlQcm9qZWN0AE15V2ViU2VydmljZXMAVGhyZWFkU2Fm
ZU9iamVjdFByb3ZpZGVyYDEASW5wdXRCdWZmZXIAU2NyaXB0Q29tcG9uZW50X2E1MmI4Y2M3MDMz
ZDRmNmM5YzVkZGQ0YTNhODMyZTNkAFVzZXJDb21wb25lbnQAQ29ubmVjdGlvbnMAVmFyaWFibGVz
AFNjcmlwdE1haW4ATWljcm9zb2Z0LlZpc3VhbEJhc2ljLkFwcGxpY2F0aW9uU2VydmljZXMAQXBw
bGljYXRpb25CYXNlAC5jdG9yAE1pY3Jvc29mdC5WaXN1YWxCYXNpYy5EZXZpY2VzAENvbXB1dGVy
AFN5c3RlbQBPYmplY3QALmNjdG9yAGdldF9Db21wdXRlcgBtX0NvbXB1dGVyT2JqZWN0UHJvdmlk
ZXIAZ2V0X0FwcGxpY2F0aW9uAG1fQXBwT2JqZWN0UHJvdmlkZXIAVXNlcgBnZXRfVXNlcgBtX1Vz
ZXJPYmplY3RQcm92aWRlcgBnZXRfV2ViU2VydmljZXMAbV9NeVdlYlNlcnZpY2VzT2JqZWN0UHJv
dmlkZXIAQXBwbGljYXRpb24AV2ViU2VydmljZXMARXF1YWxzAG8AR2V0SGFzaENvZGUAVHlwZQBH
ZXRUeXBlAFRvU3RyaW5nAENyZWF0ZV9fSW5zdGFuY2VfXwBUAGluc3RhbmNlAERpc3Bvc2VfX0lu
c3RhbmNlX18AZ2V0X0dldEluc3RhbmNlAE1pY3Jvc29mdC5WaXN1YWxCYXNpYy5NeVNlcnZpY2Vz
LkludGVybmFsAENvbnRleHRWYWx1ZWAxAG1fQ29udGV4dABHZXRJbnN0YW5jZQBDb3p5Um9jLlNT
SVNQbHVzLjIwMTQAQ296eVJvYy5TcWxTZXJ2ZXIuU1NJUwBTY3JpcHRCdWZmZXJQbHVzAE1pY3Jv
c29mdC5TcWxTZXJ2ZXIuVHhTY3JpcHQATWljcm9zb2Z0LlNxbFNlcnZlci5EdHMuUGlwZWxpbmUA
U2NyaXB0Q29tcG9uZW50AE1pY3Jvc29mdC5TcWxTZXJ2ZXIuUGlwZWxpbmVIb3N0AFBpcGVsaW5l
QnVmZmVyAE91dHB1dE5hbWVNYXAAQ29tcG9uZW50AE9iamVjdElEAElzSW5wdXQAQnVmZmVyAE91
dHB1dE1hcABnZXRfU3RhdGljSW5wdXRDb2x1bW5zAGdldF9TdGF0aWNPdXRwdXRDb2x1bW5zAE5l
eHRSb3cARW5kT2ZSb3dzZXQAU3RhdGljSW5wdXRDb2x1bW5zAFN0YXRpY091dHB1dENvbHVtbnMA
U2NyaXB0Q29tcG9uZW50UGx1cwBQcm9jZXNzSW5wdXQASW5wdXRJRABJbnB1dE5hbWUASW5wdXRf
UHJvY2Vzc0lucHV0AElucHV0X1Byb2Nlc3NJbnB1dFJvdwBSb3cAUGFyZW50Q29tcG9uZW50AE1p
Y3Jvc29mdC5TcWxTZXJ2ZXIuRFRTUnVudGltZVdyYXAATWljcm9zb2Z0LlNxbFNlcnZlci5EdHMu
UnVudGltZS5XcmFwcGVyAElEVFNDb25uZWN0aW9uTWFuYWdlcjEwMABnZXRfQ3JtQ29ubmVjdGlv
bgBDcm1Db25uZWN0aW9uAFByZUV4ZWN1dGUAUG9zdEV4ZWN1dGUAVmFsaWRhdGUAZXJyTWVzc2Fn
ZQBSZWluaXRpYWxpemVNZXRhRGF0YQBzZXRfQ3JtQ29ubmVjdGlvbgB2YWx1ZQBnZXRfQ3JtQ29u
bmVjdGlvblR5cGUARmlyZUVycm9yXwBtZXNzYWdlAG1fY3JtQ29ubmVjdGlvbgBJQ3JtQ29ubmVj
dGlvbgBtX2Nvbm5lY3Rpb24AQ296eVJvYy5EeW5hbWljcwBDb3p5Um9jLkR5bmFtaWNzLkNybTIw
MTEuT3JnYW5pemF0aW9uU2VydmljZQBPcmdhbml6YXRpb25TZXJ2aWNlQ2xpZW50AG1fc2Vydmlj
ZTIwMTEAQ296eVJvYy5EeW5hbWljcy5Dcm0uU2VydmljZQBDcm1TZXJ2aWNlAG1fc2VydmljZTQA
Q296eVJvYy5EeW5hbWljcy5Dcm0zLlNlcnZpY2UAbV9zZXJ2aWNlMwBtX3RlSW5kZXgAbV90aUlu
ZGV4AG1fcGVJbmRleABtX3BpSW5kZXgAbV9hckluZGV4AENybUNvbm5lY3Rpb25UeXBlAFN5c3Rl
bS5Db21wb25lbnRNb2RlbABFZGl0b3JCcm93c2FibGVBdHRyaWJ1dGUARWRpdG9yQnJvd3NhYmxl
U3RhdGUAU3lzdGVtLkNvZGVEb20uQ29tcGlsZXIAR2VuZXJhdGVkQ29kZUF0dHJpYnV0ZQBTeXN0
ZW0uRGlhZ25vc3RpY3MARGVidWdnZXJIaWRkZW5BdHRyaWJ1dGUATWljcm9zb2Z0LlZpc3VhbEJh
c2ljLkNvbXBpbGVyU2VydmljZXMAU3RhbmRhcmRNb2R1bGVBdHRyaWJ1dGUASGlkZU1vZHVsZU5h
bWVBdHRyaWJ1dGUAU3lzdGVtLkNvbXBvbmVudE1vZGVsLkRlc2lnbgBIZWxwS2V5d29yZEF0dHJp
YnV0ZQBTeXN0ZW0uUnVudGltZS5Db21waWxlclNlcnZpY2VzAFJ1bnRpbWVIZWxwZXJzAEdldE9i
amVjdFZhbHVlAFJ1bnRpbWVUeXBlSGFuZGxlAEdldFR5cGVGcm9tSGFuZGxlAEFjdGl2YXRvcgBD
cmVhdGVJbnN0YW5jZQBNeUdyb3VwQ29sbGVjdGlvbkF0dHJpYnV0ZQBnZXRfVmFsdWUAc2V0X1Zh
bHVlAFN5c3RlbS5SdW50aW1lLkludGVyb3BTZXJ2aWNlcwBDb21WaXNpYmxlQXR0cmlidXRlAFN0
cmluZwBTY3JpcHRCdWZmZXIAQ0xTQ29tcGxpYW50QXR0cmlidXRlAE1pY3Jvc29mdC5TcWxTZXJ2
ZXIuRFRTUGlwZWxpbmVXcmFwAE1pY3Jvc29mdC5TcWxTZXJ2ZXIuRHRzLlBpcGVsaW5lLldyYXBw
ZXIASURUU0NvbXBvbmVudE1ldGFEYXRhMTAwAGdldF9Db21wb25lbnRNZXRhRGF0YQBJRFRTSW5w
dXRDb2xsZWN0aW9uMTAwAGdldF9JbnB1dENvbGxlY3Rpb24ASURUU0lucHV0MTAwAGdldF9JdGVt
AGdldF9JRABJRFRTUnVudGltZUNvbm5lY3Rpb25Db2xsZWN0aW9uMTAwAGdldF9SdW50aW1lQ29u
bmVjdGlvbkNvbGxlY3Rpb24ASURUU1J1bnRpbWVDb25uZWN0aW9uMTAwAGdldF9Db25uZWN0aW9u
TWFuYWdlcgBHdWlkAEVudGl0eVJlZmVyZW5jZQBPcmdhbml6YXRpb25SZXF1ZXN0AEV4Y2VwdGlv
bgBQcmluY2lwYWxBY2Nlc3MAU2VjdXJpdHlQcmluY2lwYWwAVGFyZ2V0T3duZWREeW5hbWljAFJl
dm9rZUFjY2Vzc1JlcXVlc3QAR3JhbnRBY2Nlc3NSZXF1ZXN0AFN5c3RlbS5XZWIuU2VydmljZXMA
U3lzdGVtLldlYi5TZXJ2aWNlcy5Qcm90b2NvbHMAU29hcEV4Y2VwdGlvbgBnZXRfQnVmZmVyAFRv
TG93ZXIAQ29udmVydABUb0ludDMyAHNldF9Mb2dpY2FsTmFtZQBzZXRfSWQAc2V0X1JlcXVlc3RO
YW1lAHNldF9JdGVtAE9yZ2FuaXphdGlvblJlc3BvbnNlAEV4ZWN1dGUAUHJvamVjdERhdGEAU2V0
UHJvamVjdEVycm9yAENsZWFyUHJvamVjdEVycm9yAHNldF9QcmluY2lwYWwAQWNjZXNzUmlnaHRz
AHNldF9BY2Nlc3NNYXNrAHNldF9FbnRpdHlOYW1lAHNldF9FbnRpdHlJZABTZWN1cml0eVByaW5j
aXBhbFR5cGUARW51bQBQYXJzZQBDb252ZXJzaW9ucwBUb0ludGVnZXIAc2V0X1R5cGUAc2V0X1By
aW5jaXBhbElkAFRhcmdldE93bmVkAHNldF9UYXJnZXQAc2V0X1Jldm9rZWUAUmVzcG9uc2UAUmVx
dWVzdABzZXRfUHJpbmNpcGFsQWNjZXNzAFN5c3RlbS5YbWwAWG1sTm9kZQBnZXRfRGV0YWlsAGdl
dF9Jbm5lclhtbABnZXRfTWVzc2FnZQBJRFRTRXh0ZXJuYWxNZXRhZGF0YUNvbHVtbjEwMABJRFRT
SW5wdXRDb2x1bW4xMDAAU3lzdGVtLkNvbGxlY3Rpb25zAElFbnVtZXJhdG9yAEFjcXVpcmVDb25u
ZWN0aW9uAENvbm5lY3QAR2V0U2VydmljZQBJbnQzMgBJRFRTSW5wdXRDb2x1bW5Db2xsZWN0aW9u
MTAwAGdldF9JbnB1dENvbHVtbkNvbGxlY3Rpb24AR2V0RW51bWVyYXRvcgBnZXRfQ3VycmVudABJ
RFRTRXh0ZXJuYWxNZXRhZGF0YUNvbHVtbkNvbGxlY3Rpb24xMDAAZ2V0X0V4dGVybmFsTWV0YWRh
dGFDb2x1bW5Db2xsZWN0aW9uAGdldF9FeHRlcm5hbE1ldGFkYXRhQ29sdW1uSUQAR2V0T2JqZWN0
QnlJRABQaXBlbGluZUNvbXBvbmVudABnZXRfSG9zdENvbXBvbmVudABJRFRTQnVmZmVyTWFuYWdl
cjEwMABnZXRfQnVmZmVyTWFuYWdlcgBnZXRfTGluZWFnZUlEAEZpbmRDb2x1bW5CeUxpbmVhZ2VJ
RABnZXRfTmFtZQBPcGVyYXRvcnMAQ29tcGFyZVN0cmluZwBNb3ZlTmV4dABJRGlzcG9zYWJsZQBE
aXNwb3NlAENsb3NlAElzTnVsbE9yRW1wdHkAZ2V0X0lzQXR0YWNoZWQAZ2V0X0NvdW50AHNldF9D
b25uZWN0aW9uTWFuYWdlcklEAHNldF9Jc1VzZWQAUmVtb3ZlQWxsAE5ldwBzZXRfTmFtZQBEYXRh
VHlwZQBzZXRfRGF0YVR5cGUAc2V0X0xlbmd0aABFbXB0eQBGaXJlRXJyb3IAU1NJU1NjcmlwdENv
bXBvbmVudEVudHJ5UG9pbnRBdHRyaWJ1dGUAQ296eVJvYy5TcWxTZXJ2ZXIuU1NJUy5BdHRyaWJ1
dGVzAENvbHVtbk1hcHBpbmdzQXR0cmlidXRlAFZhbGlkYXRlUHJvcGVydGllc0F0dHJpYnV0ZQBD
b25uZWN0aW9uQXR0cmlidXRlAERlc2NyaXB0aW9uQXR0cmlidXRlAENvbXBpbGF0aW9uUmVsYXhh
dGlvbnNBdHRyaWJ1dGUAUnVudGltZUNvbXBhdGliaWxpdHlBdHRyaWJ1dGUAU3lzdGVtLlJ1bnRp
bWUuVmVyc2lvbmluZwBUYXJnZXRGcmFtZXdvcmtBdHRyaWJ1dGUAU2NyaXB0Q29tcG9uZW50X2E1
MmI4Y2M3MDMzZDRmNmM5YzVkZGQ0YTNhODMyZTNkLmRsbAAAAAALSQBuAHAAdQB0AAAbQwByAG0A
QwBvAG4AbgBlAGMAdABpAG8AbgAAGVIAZQB2AG8AawBlAEEAYwBjAGUAcwBzAAANVABhAHIAZwBl
AHQAAA9SAGUAdgBvAGsAZQBlAAAXRwByAGEAbgB0AEEAYwBjAGUAcwBzAAAfUAByAGkAbgBjAGkA
cABhAGwAQQBjAGMAZQBzAHMAADNVAG4AaABhAG4AZABsAGUAZAAgAHMAZQByAHYAaQBjAGUAIABv
AGIAagBlAGMAdAAuAAAZVABhAHIAZwBlAHQARQBuAHQAaQB0AHkAABFUAGEAcgBnAGUAdABJAGQA
AB9QAHIAaQBuAGMAaQBwAGEAbABFAG4AdABpAHQAeQAAF1AAcgBpAG4AYwBpAHAAYQBsAEkAZAAA
GUEAYwBjAGUAcwBzAFIAaQBnAGgAdABzAAAjVQBuAGgAYQBuAGQAbABlAGQAIABjAG8AbAB1AG0A
bgAuAAA/UwBlAGwAZQBjAHQAIABEAHkAbgBhAG0AaQBjAHMAIABDAFIATQAgAEMAbwBuAG4AZQBj
AHQAaQBvAG4ALgAAJU0AYQBwACAAaQBuAHAAdQB0ACAAYwBvAGwAdQBtAG4AcwAuAAAVTgBvACAA
aQBuAHAAdQB0AHMALgAAGUQAWQBOAEEATQBJAEMAUwAtAEMAUgBNAAEzRAB5AG4AYQBtAGkAYwBz
ACAAQwBSAE0AIABHAHIAYQBuAHQAIABBAGMAYwBlAHMAcwAAAAAArsF/MuTtGUSwEdFVSZTwIAAI
t3pcVhk04IkIsD9ffxHVCjoDIAABAwAAAQQAABIMBwYVEhgBEgwEAAASCAcGFRIYARIIBAAAEhEH
BhUSGAESEQQAABIUBwYVEhgBEhQECAASDAQIABIIBAgAEhEECAASFAQgAQIcAyAACAQgABIVAyAA
DgIeAAcQAQEeAB4ABzABAQEQHgACEwAEIAATAAcGFRIZARMABCgAEwAIFs9JC7gMNOoIiYRdzYCA
zJELIAUBEiEIAhIlEikEIAAdDgMgAAIEKAAdDgMGEiQDBhIoCSAEAQgOEiUSKQUgAQESHAMGEiEF
IAEBEiEEIAASMQQoABIxBSABAhAOBCABAQ4CBg4DBhI1AwYSOQMGEj0DBhJBAgYIAygADgUgAQER
SQgBAAEAAAAAAAUgAgEODhgBAApNeVRlbXBsYXRlCDEwLjAuMC4wAAAEAQAAAAYVEhgBEgwGFRIY
ARIIBhUSGAESEQYVEhgBEhQEBwESDAQHARIIBAcBEhEEBwESFBABAAtNeS5Db21wdXRlcgAADAEA
B015LlVzZXIAABMBAA5NeS5XZWJTZXJ2aWNlcwAAEwEADk15LkFwcGxpY2F0aW9uAAAEAAEcHAMH
AQIDBwEIBgABEhURZQQHARIVAwcBDgUQAQAeAAQKAR4ABAcBHgAHIAQBDg4ODmEBADRTeXN0ZW0u
V2ViLlNlcnZpY2VzLlByb3RvY29scy5Tb2FwSHR0cENsaWVudFByb3RvY29sEkNyZWF0ZV9fSW5z
dGFuY2VfXxNEaXNwb3NlX19JbnN0YW5jZV9fAAAABhUSGAETAAYVEhkBEwAECgETAAUgAQETAAgH
AxMAEwATAAQgAQECBQEAAAAABAcBHQ4FIAASgIEFIAASgIUGIAESgIkcBSAAEoCNBiABEoCRHAQH
ARIxBCAAEiUEIAEcCAQAAQgcBiABARGA2QUgAgEOHAggARKA3RKAnQYAAQESgKEGIAEBEoCZBiAB
ARGA5QYAAhwSFQ4GIAEBEYDpBiABARKA9QYgAQESgKkIIAESgPkSgP0GIAEBEYEBBiABARKAuQYg
AQERgQUGIAEBEoEJBiABARKAvQggARKBDRKBEQYgAQERgRUGIAEBEoDNBSAAEoEZSgcaCA4RgJUO
EYCVEoCZEoCZEoCdEoChEoCdEoClEoCpEoCtEoCxEoChEoC1EoC5EoC9EoDBEoDFEoChEoDJEoDN
EoDREoChEYCVBCABHBwFIAASgS0FIAASgSUDIAAcBSAAEoExBiABEoEdCAUgABKBNQUgABKBOQUg
AggICAYAAwgODgIRBwcSgIkcEoEdCBKBIRKBJQ4EAAECDgoHBAICEoCJEoChBSAAEoEdBiABARGB
RQQgAQEICAcCEoEdEoCJBgcCHQ4dDgogBgEIDg4OCBACDQEACFZhbGlkYXRlAAAWAQARQ3JtQ29u
bmVjdGlvblR5cGUAACwBACdTZWxlY3QgRHluYW1pY3MgQ1JNIENvbm5lY3Rpb24gTWFuYWdlci4A
AAgBAAgAAAAAAB4BAAEAVAIWV3JhcE5vbkV4Y2VwdGlvblRocm93cwFHAQAaLk5FVEZyYW1ld29y
ayxWZXJzaW9uPXY0LjABAFQOFEZyYW1ld29ya0Rpc3BsYXlOYW1lEC5ORVQgRnJhbWV3b3JrIDQA
CFAAAAAAAAAAAAAAHlAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBQAAAAAAAAAABfQ29yRGxs
TWFpbgBtc2NvcmVlLmRsbAAAAAAA/yUAIAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAQAAAAGAAAgAAA
AAAAAAAAAAAAAAAAAQABAAAAMAAAgAAAAAAAAAAAAAAAAAAAAQAAAAAASAAAAFhgAADsAgAAAAAA
AAAAAADsAjQAAABWAFMAXwBWAEUAUgBTAEkATwBOAF8ASQBOAEYATwAAAAAAvQTv/gAAAQAAAAAA
AAAAAAAAAAAAAAAAPwAAAAAAAAAEAAAAAgAAAAAAAAAAAAAAAAAAAEQAAAABAFYAYQByAEYAaQBs
AGUASQBuAGYAbwAAAAAAJAAEAAAAVAByAGEAbgBzAGwAYQB0AGkAbwBuAAAAAAAAALAETAIAAAEA
UwB0AHIAaQBuAGcARgBpAGwAZQBJAG4AZgBvAAAAKAIAAAEAMAAwADAAMAAwADQAYgAwAAAALAAC
AAEARgBpAGwAZQBEAGUAcwBjAHIAaQBwAHQAaQBvAG4AAAAAACAAAAAwAAgAAQBGAGkAbABlAFYA
ZQByAHMAaQBvAG4AAAAAADAALgAwAC4AMAAuADAAAACMADUAAQBJAG4AdABlAHIAbgBhAGwATgBh
AG0AZQAAAFMAYwByAGkAcAB0AEMAbwBtAHAAbwBuAGUAbgB0AF8AYQA1ADIAYgA4AGMAYwA3ADAA
MwAzAGQANABmADYAYwA5AGMANQBkAGQAZAA0AGEAMwBhADgAMwAyAGUAMwBkAC4AZABsAGwAAAAA
ACgAAgABAEwAZQBnAGEAbABDAG8AcAB5AHIAaQBnAGgAdAAAACAAAACUADUAAQBPAHIAaQBnAGkA
bgBhAGwARgBpAGwAZQBuAGEAbQBlAAAAUwBjAHIAaQBwAHQAQwBvAG0AcABvAG4AZQBuAHQAXwBh
ADUAMgBiADgAYwBjADcAMAAzADMAZAA0AGYANgBjADkAYwA1AGQAZABkADQAYQAzAGEAOAAzADIA
ZQAzAGQALgBkAGwAbAAAAAAANAAIAAEAUAByAG8AZAB1AGMAdABWAGUAcgBzAGkAbwBuAAAAMAAu
ADAALgAwAC4AMAAAADgACAABAEEAcwBzAGUAbQBiAGwAeQAgAFYAZQByAHMAaQBvAG4AAAAwAC4A
MAAuADAALgAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAADAAAADAwAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==]]></arrayElement></arrayElements></property><property id="9" name="UserComponentTypeName" dataType="System.String">CozyRoc.SqlServer.SSIS.ScriptComponentHostPlus, CozyRoc.SSISPlus.2014, 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_a52b8cc7033d4f6c9c5ddd4a3a832e3d</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=12.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91">VisualBasic</property></properties><connections><connection id="14" name="CrmConnection" connectionManagerID="{8100503D-F653-44C5-8EFD-392EC423F8E1}" /></connections><inputs><input id="15" name="Input" hasSideEffects="true"><externalMetadataColumns isUsed="True"><externalMetadataColumn id="21" name="TargetEntity" dataType="wstr" length="50" /><externalMetadataColumn id="22" name="TargetId" dataType="guid" /><externalMetadataColumn id="23" name="PrincipalEntity" dataType="wstr" length="50" /><externalMetadataColumn id="24" name="PrincipalId" dataType="guid" /><externalMetadataColumn id="25" name="AccessRights" dataType="i4" /></externalMetadataColumns></input></inputs></component>