<component id="15" name="Timezone" 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="16" 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[scriptcomponent_dabdc273a51b4faa88704ad79ae2721e.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_dabdc273a51b4faa88704ad79ae2721e.vbproj</RootNamespace>
    <AssemblyName>SC_F8D292A28B8E4AE2A7276DF27E97BB9A</AssemblyName>
    <StartupObject>
    </StartupObject>
    <OptionExplicit>On</OptionExplicit>
    <OptionCompare>Binary</OptionCompare>
    <OptionStrict>Off</OptionStrict>
    <OptionInfer>On</OptionInfer>
    <ProjectGuid>{2A545211-C6A6-4BB6-8F8F-5AEE5C20F7D7}</ProjectGuid>
    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
  </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="Microsoft.SqlServer.ManagedDTS, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL">
      <SpecificVersion>False</SpecificVersion>
      <HintPath>C:\Windows\Microsoft.NET\assembly\GAC_MSIL\Microsoft.SqlServer.ManagedDTS\v4.0_11.0.0.0__89845dcd8080cc91\Microsoft.SqlServer.ManagedDTS.dll</HintPath>
    </Reference>
    <Reference Include="System" />
    <Reference Include="System.Core">
      <RequiredTargetFramework>3.5</RequiredTargetFramework>
    </Reference>
    <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" />
    <Reference Include="CozyRoc.SSISPlus.2012, Version=1.0.0.0, Culture=neutral, PublicKeyToken=16cf490bb80c34ea" />
  </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;vstadebugc7b90381-46ab-4940-bf6b-41ce0c5d350e/eb08aa32-d4f9-463d-9a6f-6f8828373e5a&quot;" />
        <Host Name="SSIS_ScriptComponent" />
        <ProjectClient>
          <HostIdentifier>SSIS_SC110</HostIdentifier>
        </ProjectClient>
      </FlavorProperties>
    </VisualStudio>
  </ProjectExtensions>
  <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_dabdc273a51b4faa88704ad79ae2721e.vbproj")> 
<Assembly: AssemblyDescription("")> 
<Assembly: AssemblyCompany("Microsoft")> 
<Assembly: AssemblyProduct("ScriptComponent_dabdc273a51b4faa88704ad79ae2721e.vbproj")> 
<Assembly: AssemblyCopyright("Copyright @ Microsoft 2018")> 
<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("51c58a44-7015-4b4c-9d73-b46a69a5b9c7")> 

' 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

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[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-2018 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.Collections

Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper
Imports CozyRoc.SqlServer.SSIS.Attributes


'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
<SortProperties(New String() {"TimeColumns", "InputZone", "OutputZone"})> _
<ValidateProperties("Validate")> _
<Microsoft.SqlServer.Dts.Pipeline.SSISScriptComponentEntryPointAttribute> _
<CLSCompliant(False)> _
Public Class ScriptMain
    Inherits UserComponent


    Private Class Consts
        Public Const ColumnSeparator As String = "," + vbLf
        Public Const LocalTime As String = "[Local Time]"
    End Class   ' Consts


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Public Overrides Sub Input_ProcessInputRow(ByVal Row As InputBuffer)
        Dim colsCount As Integer = m_colIdx.Length
        For colIndex As Integer = 0 To colsCount - 1
            Dim bufIndex As Integer = m_colIdx(colIndex)
            If Not Row.Buffer.IsNull(bufIndex) Then
                Row.Buffer(bufIndex) = TimeZoneInfo.ConvertTime( _
                    CType(Row.Buffer(bufIndex), DateTime), _
                    m_inTZI, _
                    m_outTZI)
            End If
        Next
    End Sub ' Input_ProcessInputRow


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

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

        ' Setup dynamic time columns indexes.
        Dim colsCount As Integer = input.InputColumnCollection.Count
        m_colIdx = New Integer(colsCount - 1) {}
        For colIndex As Integer = 0 To colsCount - 1
            m_colIdx(colIndex) = Me.HostComponent.BufferManager.FindColumnByLineageID( _
                input.Buffer, _
                input.InputColumnCollection(colIndex).LineageID)
        Next

        ' Get input and output time zones.
        m_inTZI = GetTimeZoneInfo_(m_inputZone)
        m_outTZI = GetTimeZoneInfo_(m_outputZone)
    End Sub ' PreExecute


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

        m_colIdx = Nothing
    End Sub ' PostExecute


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

        Try
            If String.IsNullOrEmpty(Me.TimeColumns) Then
                Throw New ApplicationException("Select time columns.")
            End If

            If String.IsNullOrEmpty(Me.InputZone) Then
                Throw New Exception("Select input time zone.")
            End If

            If String.IsNullOrEmpty(Me.OutputZone) Then
                Throw New Exception("Select output time zone.")
            End If

            ' Setup input columns based on selection.
            Dim selectedCols() As String = CStr(Me.TimeColumns).Split( _
                New String() {Consts.ColumnSeparator}, _
                StringSplitOptions.None)
            Dim input As IDTSInput100 = Me.ComponentMetaData.InputCollection(0)
            Dim virtInput As IDTSVirtualInput100 = input.GetVirtualInput()

            Call input.InputColumnCollection.RemoveAll()

            For Each col As String In selectedCols
                If Not String.IsNullOrEmpty(col) Then
                    Dim virtColumn As IDTSVirtualInputColumn100 = virtInput.VirtualInputColumnCollection(col)
                    Call virtInput.SetUsageType(virtColumn.LineageID, DTSUsageType.UT_READWRITE)
                End If
            Next

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

        Validate = result
    End Function    'Validate


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    ' Returns list of available time zones.
    Public Function GetZones() As Object()
        Dim result As New ArrayList
        Call result.Add(Consts.LocalTime)

        For Each tzi As TimeZoneInfo In TimeZoneInfo.GetSystemTimeZones()
            Call result.Add(tzi.DisplayName)
        Next

        GetZones = result.ToArray()
    End Function    ' GetZones


#Region "Properties"
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Description("Select time columns.")> _
    <InputVirtualColumn("", False)> _
    Public Property TimeColumns() As String
        Get
            TimeColumns = m_cols
        End Get
        Set(ByVal value As String)
            m_cols = value
        End Set
    End Property    ' TimeColumns


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Description("Select input time zone.")> _
    <List("GetZones")> _
    Public Property InputZone() As String
        Get
            InputZone = GetDisplayNameFromId_(m_inputZone)
        End Get
        Set(ByVal value As String)
            m_inputZone = GetIdFromDisplayName_(value)
        End Set
    End Property    ' InputZone


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Description("Select output time zone.")> _
    <List("GetZones")> _
    Public Property OutputZone() As String
        Get
            OutputZone = GetDisplayNameFromId_(m_outputZone)
        End Get
        Set(ByVal value As String)
            m_outputZone = GetIdFromDisplayName_(value)
        End Set
    End Property    ' OutputZone
#End Region ' Properties


#Region "Internals"
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Sub FireError_(ByVal message As String)
        Dim cancel As Boolean = False
        Call MyBase.ComponentMetaData.FireError( _
            0, _
            "Time Zone", _
            message, _
            String.Empty, _
            0, _
            cancel)
    End Sub ' FireError_


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Function GetDisplayNameFromId_(ByVal id As String) As String
        Dim result As String = id

        If Not String.IsNullOrEmpty(id) AndAlso _
            id <> Consts.LocalTime Then

            For Each tzi As TimeZoneInfo In TimeZoneInfo.GetSystemTimeZones()
                If tzi.Id.Equals(id) Then
                    ' Found zone
                    result = tzi.DisplayName
                    Exit For
                End If
            Next
        End If

        GetDisplayNameFromId_ = result
    End Function    ' GetDisplayNameFromId_


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Function GetIdFromDisplayName_(ByVal displayName As String) As String
        Dim result As String = displayName

        If Not String.IsNullOrEmpty(displayName) AndAlso _
            displayName <> Consts.LocalTime Then

            For Each tzi As TimeZoneInfo In TimeZoneInfo.GetSystemTimeZones()
                If tzi.DisplayName.Equals(displayName) Then
                    ' Found zone
                    result = tzi.Id
                    Exit For
                End If
            Next
        End If

        GetIdFromDisplayName_ = result
    End Function    ' GetIdFromDisplayName_


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Function GetTimeZoneInfo_(ByVal zoneID As String) As TimeZoneInfo
        Dim result As TimeZoneInfo = TimeZoneInfo.Local

        If zoneID <> Consts.LocalTime Then
            result = TimeZoneInfo.FindSystemTimeZoneById(zoneID)
        End If

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


#Region "Attributes"
    Private m_cols As String
    Private m_inputZone As String = TimeZoneInfo.Local.Id
    Private m_outputZone As String

    Private m_colIdx() As Integer
    Private m_inTZI As TimeZoneInfo
    Private m_outTZI As TimeZoneInfo
#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[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\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[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:ProjectId>{F433D5CB-307E-4F51-9425-ADA738D370F6}</msb:ProjectId>
		<msb:NoContent>Reference;Import;Folder</msb:NoContent>
		<msb:Language>msBuild</msb:Language>
		<msb:DisplayName>scriptcomponent_dabdc273a51b4faa88704ad79ae2721e</msb:DisplayName>
		<msb:CodeName>scriptcomponent_dabdc273a51b4faa88704ad79ae2721e</msb:CodeName>
	</msb:PropertyGroup>
	<msb:ItemGroup>
		<msb:File Include="ComponentWrapper.vb"/>
		<msb:File Include="BufferWrapper.vb"/>
		<msb:File Include="main.vb"/>
		<msb:File Include="My Project\Settings.Designer.vb"/>
		<msb:File Include="My Project\Resources.Designer.vb"/>
		<msb:File Include="My Project\AssemblyInfo.vb"/>
		<msb:File Include="My Project\Resources.resx"/>
		<msb:File Include="My Project\Settings.settings"/>
		<msb:Project Include="scriptcomponent_dabdc273a51b4faa88704ad79ae2721e.vbproj"/>
	</msb:ItemGroup>
</c:Project>]]></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="17" 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[SC_F8D292A28B8E4AE2A7276DF27E97BB9A.dll]]></arrayElement><arrayElement dataType="System.String"><![CDATA[TVqQAAMAAAAEAAAA//8AALgAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAgAAAAA4fug4AtAnNIbgBTM0hVGhpcyBwcm9ncmFtIGNhbm5vdCBiZSBydW4gaW4gRE9TIG1v
ZGUuDQ0KJAAAAAAAAABQRQAATAEDAJv89VoAAAAAAAAAAOAAAiELAQsAADAAAAAIAAAAAAAAfk4A
AAAgAAAAYAAAAAAAEAAgAAAAAgAABAAAAAAAAAAEAAAAAAAAAACgAAAAAgAAAAAAAAIAQIUAABAA
ABAAAAAAEAAAEAAAAAAAABAAAAAAAAAAAAAAAChOAABTAAAAAGAAAHAEAAAAAAAAAAAAAAAAAAAA
AAAAAIAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAIAAACAAAAAAAAAAAAAAACCAAAEgAAAAAAAAAAAAAAC50ZXh0AAAAhC4AAAAgAAAAMAAAAAIA
AAAAAAAAAAAAAAAAACAAAGAucnNyYwAAAHAEAAAAYAAAAAYAAAAyAAAAAAAAAAAAAAAAAABAAABA
LnJlbG9jAAAMAAAAAIAAAAACAAAAOAAAAAAAAAAAAAAAAAAAQAAAQgAAAAAAAAAAAAAAAAAAAABg
TgAAAAAAAEgAAAACAAUA6CgAAEAlAAABAAAAAAAAADAoAAC4AAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4CKAEAAAoqHgIoBAAACiqmcwYAAAqAAQAABHMHAAAKgAIA
AARzCAAACoADAAAEcwkAAAqABAAABCoAABMwAQALAAAAAQAAEX4BAAAEbwoAAAoqABMwAQALAAAA
AgAAEX4CAAAEbwsAAAoqABMwAQALAAAAAwAAEX4DAAAEbwwAAAoqABMwAQALAAAABAAAEX4EAAAE
bw0AAAoqABMwAgANAAAABQAAEQIDKBEAAAooEgAACioAAAATMAEABwAAAAYAABECKBMAAAoqABMw
AQALAAAABwAAEdAFAAACKBQAAAoqABMwAQAHAAAACAAAEQIoFQAACioAEzABABAAAAAJAAARAowB
AAAbLQYoAQAAKyoCKhMwAgAQAAAACgAAEQMSAP4VAgAAGwaBAgAAGyoeAigXAAAKKhMwAgAoAAAA
CwAAEQJ7GQAACm8aAAAKCweMAwAAGy0SKAIAACsLAnsZAAAKB28bAAAKBypKAigXAAAKAnMcAAAK
fRkAAAoqADoCAwQFDgQOBSgeAAAKKgATMAEABwAAAAwAABEWjRwAAAEqABMwAQAHAAAADQAAERaN
HAAAASoAEzABAAkAAAAOAAARAigfAAAKCgYqAAAAEzABAAkAAAAPAAARAiggAAAKCgYqAAAAfgIo
IgAACgICcxoAAAZ9BgAABAICcxsAAAZ9BwAABCq+AwIoIwAACm8kAAAKcgEAAHBvJQAACm8mAAAK
MxECAgMXBQ4EcxEAAAZvGAAABipKKwcCA28ZAAAGA28UAAAGLfEqAAYqAAA6AigXAAAKAgN9CAAA
BCoAOgIoFwAACgIDfQkAAAQqAF4CKBYAAAYCKCcAAApvKAAACn0LAAAEKhMwBQBkAAAAEAAAEQJ7
DQAABI63ChYGF9oNDCtOAnsNAAAECJQLA28pAAAKB28qAAAKLTMDbykAAAoHA28pAAAKB28rAAAK
KCwAAAoCew4AAAQCew8AAAQoLQAACowjAAABby4AAAoIF9YMCAkxrioTMAYAogAAABEAABECKC8A
AAoCbyMAAApvJAAAChaMJAAAAW8lAAAKCwdvMAAACm8xAAAKCgIGF9oX1o0kAAABfQ0AAAQWBhfa
DQwrOAJ7DQAABAgCbzIAAApvMwAACgdvNAAACgdvMAAACgiMJAAAAW81AAAKbzYAAApvNwAACp4I
F9YMCAkxxAICAnsLAAAEbysAAAZ9DgAABAICAnsMAAAEbysAAAZ9DwAABCoAADoCKDgAAAoCFH0N
AAAEKgAbMAQA+gAAABIAABECbyIAAAYoOQAACiwLcg0AAHBzOgAACnoCbyQAAAYoOQAACiwLcjcA
AHBzOwAACnoCbyYAAAYoOQAACiwLcmcAAHBzOwAACnoCbyIAAAYXjRwAAAETCBEIFnKZAABwohEI
Fm88AAAKDQJvIwAACm8kAAAKFowkAAABbyUAAAoMCG89AAAKEwQIbzAAAApvPgAACgkTChYTCSs2
EQoRCZoTBREFKDkAAAotIBEEbz8AAAoRBW9AAAAKEwYRBBEGb0EAAAoXb0IAAAomEQkX1hMJEQkR
Co63MsIXCt4aJShDAAAKEwcWCgMRB29EAAAKUShFAAAK3gAGCwcqAAABEAAAAAAAANzcABorAAAB
GzACAFAAAAATAAARc0YAAAoLB3KfAABwb0cAAAomKEgAAApvSQAACg0rFAlvSgAACgwHCG9LAAAK
b0cAAAomCW9MAAAKLeTeCgksBglvTQAACtwHb04AAAoKBioBEAAAAgASACs9AAoAAAAAEzABAAkA
AAAUAAARAnsKAAAECgYqAAAAIgIDfQoAAAQqAAAAEzACAA8AAAAVAAARAgJ7CwAABG8pAAAGCgYq
ADoCAgNvKgAABn0LAAAEKgATMAIADwAAABYAABECAnsMAAAEbykAAAYKBioAOgICA28qAAAGfQwA
AAQqABMwBwAdAAAAFwAAERYKAigjAAAKFnK5AABwA35PAAAKFhIAb1AAAAoqAAAAGzADAFwAAAAY
AAARAwsDKDkAAAotTgNynwAAcBYoUQAAChYuPyhIAAAKb0kAAAoNKx4Jb0oAAAoMCG8oAAAKA29S
AAAKLAkIb0sAAAoL3hQJb0wAAAot2t4KCSwGCW9NAAAK3AcKBioBEAAAAgAZADVOAAoAAAAAGzAD
AFwAAAAZAAARAwsDKDkAAAotTgNynwAAcBYoUQAAChYuPyhIAAAKb0kAAAoNKx4Jb0oAAAoMCG9L
AAAKA29SAAAKLAkIbygAAAoL3hQJb0wAAAot2t4KCSwGCW9NAAAK3AcKBioBEAAAAgAZADVOAAoA
AAAAEzADACAAAAAaAAARKCcAAAoLA3KfAABwFihRAAAKFi4HAyhTAAAKCwcKBioeAigXAAAKKh4C
KBcAAAoqEzACAC0AAAAbAAARfhIAAAQtIHLNAABw0A0AAAIoFAAACm9aAAAKc1sAAAoLB4ASAAAE
fhIAAAQqAAAAEzABAAYAAAAcAAARfhMAAAQqAAAeAoATAAAEKkJzFwAACigRAAAKgBUAAAQqAAAA
HgIoXAAACiobMAEAPwAAAB0AABF+FAAABC0yfhUAAAQoEQAACihdAAAKfhQAAAQtHHMyAAAGgBQA
AATeEH4VAAAEKBEAAAooXgAACtx+FAAABCoAARAAAAIAHQAMKQAQAAAAALQAAADOyu++AQAAAJEA
AABsU3lzdGVtLlJlc291cmNlcy5SZXNvdXJjZVJlYWRlciwgbXNjb3JsaWIsIFZlcnNpb249NC4w
LjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5I1N5
c3RlbS5SZXNvdXJjZXMuUnVudGltZVJlc291cmNlU2V0AgAAAAAAAAAAAAAAUEFEUEFEULQAAABC
U0pCAQABAAAAAAAMAAAAdjQuMC4zMDMxOQAAAAAFAGwAAADkDAAAI34AAFANAADoEAAAI1N0cmlu
Z3MAAAAAOB4AAAABAAAjVVMAOB8AABAAAAAjR1VJRAAAAEgfAAD4BQAAI0Jsb2IAAAAAAAAAAgAA
AVcdogkJDwAAAPolMwAWAAABAAAASgAAAA4AAAAVAAAAMwAAABoAAABqAAAAAgAAAEIAAAAdAAAA
BgAAAA0AAAARAAAACwAAAAEAAAAHAAAAAQAAAAMAAAADAAAAAgAAAAAAvRABAAAAAAAKALABhgEK
AOQBxgEGAPQB7QEKAEwChgEGAMoC7QEKAEwDIgMOAJ4DhwMSAO0DzAMWAB4EzAMSAC0EzAMOANEE
hwMGACMG7QEGAM4GvQYGAPsG5gYaAGIHTQcaAK8HmQcaAMgHmQcaAPUH3QcGAB8IDAgKAF4INwgK
AHYIEwAaAKsIjggGAOAIwAgGAP4I7QEGACIJ7QEKADsJEwAGAH8JYAkGAJMJ7QESAJoJzAMGAKcJ
7QEeAAoK4QkeADkK4QkeAGQK4QkKAKQKNwgGALAK7QEGANUK7QEeANsK4QkWABwLzAMeAEAL4Qke
AGcL4QkeAJ4L4QkeALIL4QkGAMwL7QEGAOQL7QEGAPkL7QEeACwM4QkeAHEM4QkKAIsMNwgGANgM
xQwGAP0M4gwGAC4NDw0GAIANxQwGAJUN7QEKAMENNwgSAPANzAMOADkOFw4OAFUOFw4OAG0OFw4a
AIkOmQcOAJ4OFw4GAL4OrA4GAOUO1A4GAPgODAgGAGEPwAgGAIEPwAgGALkPnw8GANIPrA4GAO8P
YAkGAP0PrA4GABgQrA4GADMQrA4GAEwQrA4GAGUQrA4GAIIQrA4AAAAAAQAAAAAAAQABAAAAAAAp
ADcABQABAAEAAAAAAHIANwAJAAEAAgAAARAAfQA3AA0AAQADAAUBAACHAAAADQAFAAgABQEAAJUA
AAANAAUADwABAAAAsAC8AB0ABgARAAEAAAD0ALwALQAGABYAAQAAAAIBvAANAAgAGgABAAAADgG8
AA0ACQAbAAEAAAAYAbwAIAAKABwAAwAAACMBAAANABAALAAAAAAAKgE2AQ0AEgAtAAABEAB7AbwA
PQAUADEAMQAPAiAAMQA4Ai0AMQBaAjoAMQB/AkcAIQBbA5AABgACAckABgAOAc0AAQAxBeEAAQAx
BeEAAQBIBgYBAQBPBgYBAQBbBgYBAQBoBgkBAQBxBg0BAQB5Bg0BVoCjBgYBVoCzBgYBEQDeBjMB
EQAHBzcBEQB6B1UBEQCCB1kBUCAAAAAABhjAARMAAQBYIAAAAAAGGMABEwABAGAgAAAAABEY+wEX
AAEAjCAAAAAAEwgCAhsAAQCkIAAAAAATCCgCKAABALwgAAAAABMIUQI1AAEA1CAAAAAAEwhvAkIA
AQDsIAAAAABGArUCYwABAAghAAAAAEYCvgJoAAIAHCEAAAAAgwDPAmwAAgA0IQAAAABGAtcCcQAC
AEghAAAAABEA4AJ4AAIAZCEAAAAAAQD+AoAAAwCAIQAAAAAGGMABEwAEAIghAAAAAAMIEgOLAAQA
vCEAAAAABhjAARMABADQIQAAAAAGGMABrwAEAOAhAAAAAEYKZwS7AAkA9CEAAAAARgp+BLsACQAI
IgAAAACGAJYEwAAJACAiAAAAAIYAngTAAAkAOCIAAAAABhjAARMACQBYIgAAAABGAuUE0QAJAIgi
AAAAAEYDBAXbAA0AnCIAAAAARgMXBdsADgCgIgAAAAAGGMAB5QAPALAiAAAAAAYYwAHlABAAwCIA
AAAABhjAARMAEQDYIgAAAABGAhcF2wARAEgjAAAAAEYCQQUTABIA+CMAAAAARgJMBRMAEgAIJAAA
AAAGAFgF6wASACAlAAAAAAYAbAXxABMAjCUAAAAABgh1BXEAEwCkJQAAAAAGCIUF9gATALAlAAAA
AAYImwVxABQAzCUAAAAABgipBfYAFADcJQAAAAAGCLcFcQAVAPglAAAAAAYIxgX2ABUACCYAAAAA
AQDVBfYAFgA0JgAAAAABAOgF+wAXAKwmAAAAAAEAAQb7ABgAJCcAAAAAAQAwBgABGQBQJwAAAAAG
GMABEwAaAFgnAAAAAAMYwAETABoAYCcAAAAAFggTBzsBGgCcJwAAAAAWCCcHQAEaALAnAAAAABYI
MwdFARoAuCcAAAAAERj7ARcAGwDMJwAAAAAGGMABEwAbANQnAAAAABYIjwdcARsAAAABALwCAAAB
APUCAAABAPUCAAABADsEAAACAEUEAAADAE4EAAAEAFYEAAAFAF0EAAABAPIEAAACAPoEAAADAFYE
AAAEAF0EAAABAFYEAAABAC0FAAABADsEAAABADsEAAABAC0FAAABAGEFAAABAJUFAAABAJUFAAAB
AJUFAAABAOAFAAABAP4FAAABABcGAAABAEEGAAABAD8HCQDAARMAgQDAAWYBkQDAAXUBEQDAARMA
mQDAARMAJADAARMALADAARMANADAARMAPADAARMAJAASA4sALAASA4sANAASA4sAPAASA4sAoQDA
ARMAqQDAARMAsQDAAfYAuQDvCA8CGQC1AmMAGQC+AmgAKQAQCRwCGQDXAnEAyQAsCSwCGQDAARMA
0QDAATwCRABbA5AATACPB4sATABWCbkCTADAARMA2QDAAcgCOQDAAa8A6QCWBMAA6QCeBMAA8QDA
AcgCWQDAARMAQQAjCtgC+QBQCt0CAQFxCuMCCQF6CmgAYQCBCuoCYQCLCnEAOQCSCu8CSQCdCvQC
SQBxCvkCEQG5Cv4CYQDACgUDSQDMChIDQQBBBRMACQH4Ch8DKQESC2gAWQAuCyUDMQFVCysDCQGS
CmgAKQFxCjEDQQF6C2gAOQGICzgDQQBMBRMA4QDWC0cDYQHAAfYAWQHAAfYA4QAMDEwDCQESDFYD
KQEiDBMASQFQDFwDcQFxCmIDUQF6C2gASQF+DGkDgQGXDHEDWQGnDHEAgQGzDBcAiQHAARMAiQEL
DZEDYQBDDZYDVABWDagDXABkDYsAYQBwDXEAoQGMDcAAqQGhDRMAiQGpDfEA4QCxDQYB+QC3DcsD
sQHLDdYD4QC1At0DYQDZDfADuQHAARMAwQHAAfYAyQHAAQsE0QHAATsE2QHAAfYA4QHAAfYAKQDH
DqsEaQDAAbEEeQDAARMA8QHtDs4E8QHzDs4E+QHAARMAAQLAAdgECQLAARMAEQLAAfYAGQLAAfYA
IQLAAfYAKQLAAfYAMQLAAfYAOQLAAfYAQQLAAfYASQLAAfYAUQLAAfYADgBAABUBDgBEABoBKQCD
AN0BLgBDA+cFLgATAwUFLgAbA00FLgA7A6oFLgBLA80CLgADA90ELgALA+YELgBTA6oFLgAjA1oF
LgDrAM0CLgALAYQFLgArA80CLgAzA4oFQAATAGwBQAArAJQBQwATAGwBQwAbAHsBSQCDAMkBYwAb
AHsBYwATAGwBaQCDAO4BgAArAJQBgwBzAJQBgwB7AJQBgwAbAHsBiQCDAPsBoAArAJQBowATAGwB
owDDAEQCwAArAJQBwwATAGwBwwDrAM0C4AArAJQB4wALAc0CAAErAJQBAAETAGwBAwELAc0CCQHD
AkgECQG7AkEEIAErAJQBIAETAGwBKQHDAnAEKQHLAmIEQAETAGwBQAErAJQBSQHLAmIESQHDAo0E
YAETAGwBYAErAJQBYwGzAhEEYwGjApQBYwELAc0CYwGrAv0DaQETAMUEgAErAJQBiQETAMUEoAEr
AJQBqQH7ApQBwAErAJQBwAETAGwB4AErAJQBAAITAGwBAAIrAJQBQAMLAc0CYAMLAc0CtQG6Ab8B
xAEUAhgCIwIoAjcCNwK/AtMC0wIUAhQCGAM+A3gDugMoAigCKAIUAuID4gP2A7kEwATTBAQAAQAG
AAUABwAGAAsACAANAAsADgANAAAA5AFPAAAAnQJUAAAATAJZAAAAqQJeAAAAZQOYAAAAqgTEAAAA
vQTEAAAAggYRAQAAjgYRAQAAmAYRAQAAzgZLAQAARQdQAQAAPwdhAQIABAADAAIABQAFAAIABgAH
AAIABwAJAAIADwALAAIAEgANAAIAEwAPAAEAIwARAAIAIgARAAIAJAATAAEAJQATAAEAJwAVAAIA
JgAVAAIALgAXAAIALwAZAAEAMAAZAAIAMwAbAHUAdQCIAJkBoAGnAa4BpgKtAqADsgMEgAAAAQAA
AAAAAAAAAAAAAACZEAAABAAAAAAAAAAAAAAAAQAKAAAAAAAKAAAAAAAAAAAAAAAKABMAAAAAAAEA
AAAAAAAAAAAAAJ0AcQMAAAAACwAAAAAAAAAAAAAApgCvAwAAAAALAAAAAAAAAAAAAACmAP0DAAAA
AAQAAAAAAAAAAAAAAAEA7QEAAAAACwAAAAAAAAAAAAAApgC9CQAAAAAAAAAAAQAAABUPAAAFAAQA
BgAEAAwACwAAABAADADzAgAAEAAZAPMCAAAAABsA8wItADICLQC0AgAAAAAAPE1vZHVsZT4AbXNj
b3JsaWIATWljcm9zb2Z0LlZpc3VhbEJhc2ljAE15QXBwbGljYXRpb24AU2NyaXB0Q29tcG9uZW50
X2RhYmRjMjczYTUxYjRmYWE4ODcwNGFkNzlhZTI3MjFlLnZicHJvai5NeQBNeUNvbXB1dGVyAE15
UHJvamVjdABNeVdlYlNlcnZpY2VzAFRocmVhZFNhZmVPYmplY3RQcm92aWRlcmAxAElucHV0QnVm
ZmVyAFNjcmlwdENvbXBvbmVudF9kYWJkYzI3M2E1MWI0ZmFhODg3MDRhZDc5YWUyNzIxZS52YnBy
b2oAVXNlckNvbXBvbmVudABDb25uZWN0aW9ucwBWYXJpYWJsZXMAU2NyaXB0TWFpbgBDb25zdHMA
TXlSZXNvdXJjZXMAU2NyaXB0Q29tcG9uZW50X2RhYmRjMjczYTUxYjRmYWE4ODcwNGFkNzlhZTI3
MjFlLnZicHJvai5NeS5SZXNvdXJjZXMATXlTZXR0aW5ncwBNaWNyb3NvZnQuVmlzdWFsQmFzaWMu
QXBwbGljYXRpb25TZXJ2aWNlcwBBcHBsaWNhdGlvbkJhc2UALmN0b3IATWljcm9zb2Z0LlZpc3Vh
bEJhc2ljLkRldmljZXMAQ29tcHV0ZXIAU3lzdGVtAE9iamVjdAAuY2N0b3IAZ2V0X0NvbXB1dGVy
AG1fQ29tcHV0ZXJPYmplY3RQcm92aWRlcgBnZXRfQXBwbGljYXRpb24AbV9BcHBPYmplY3RQcm92
aWRlcgBVc2VyAGdldF9Vc2VyAG1fVXNlck9iamVjdFByb3ZpZGVyAGdldF9XZWJTZXJ2aWNlcwBt
X015V2ViU2VydmljZXNPYmplY3RQcm92aWRlcgBBcHBsaWNhdGlvbgBXZWJTZXJ2aWNlcwBFcXVh
bHMAbwBHZXRIYXNoQ29kZQBUeXBlAEdldFR5cGUAVG9TdHJpbmcAQ3JlYXRlX19JbnN0YW5jZV9f
AFQAaW5zdGFuY2UARGlzcG9zZV9fSW5zdGFuY2VfXwBnZXRfR2V0SW5zdGFuY2UATWljcm9zb2Z0
LlZpc3VhbEJhc2ljLk15U2VydmljZXMuSW50ZXJuYWwAQ29udGV4dFZhbHVlYDEAbV9Db250ZXh0
AEdldEluc3RhbmNlAENvenlSb2MuU1NJU1BsdXMuMjAxMgBDb3p5Um9jLlNxbFNlcnZlci5TU0lT
AFNjcmlwdEJ1ZmZlclBsdXMATWljcm9zb2Z0LlNxbFNlcnZlci5UeFNjcmlwdABNaWNyb3NvZnQu
U3FsU2VydmVyLkR0cy5QaXBlbGluZQBTY3JpcHRDb21wb25lbnQATWljcm9zb2Z0LlNxbFNlcnZl
ci5QaXBlbGluZUhvc3QAUGlwZWxpbmVCdWZmZXIAT3V0cHV0TmFtZU1hcABDb21wb25lbnQAT2Jq
ZWN0SUQASXNJbnB1dABCdWZmZXIAT3V0cHV0TWFwAGdldF9TdGF0aWNJbnB1dENvbHVtbnMAZ2V0
X1N0YXRpY091dHB1dENvbHVtbnMATmV4dFJvdwBFbmRPZlJvd3NldABTdGF0aWNJbnB1dENvbHVt
bnMAU3RhdGljT3V0cHV0Q29sdW1ucwBTY3JpcHRDb21wb25lbnRQbHVzAFByb2Nlc3NJbnB1dABJ
bnB1dElEAElucHV0TmFtZQBJbnB1dF9Qcm9jZXNzSW5wdXQASW5wdXRfUHJvY2Vzc0lucHV0Um93
AFJvdwBQYXJlbnRDb21wb25lbnQAUHJlRXhlY3V0ZQBQb3N0RXhlY3V0ZQBWYWxpZGF0ZQBlcnJN
ZXNzYWdlAEdldFpvbmVzAGdldF9UaW1lQ29sdW1ucwBzZXRfVGltZUNvbHVtbnMAdmFsdWUAZ2V0
X0lucHV0Wm9uZQBzZXRfSW5wdXRab25lAGdldF9PdXRwdXRab25lAHNldF9PdXRwdXRab25lAEZp
cmVFcnJvcl8AbWVzc2FnZQBHZXREaXNwbGF5TmFtZUZyb21JZF8AaWQAR2V0SWRGcm9tRGlzcGxh
eU5hbWVfAGRpc3BsYXlOYW1lAFRpbWVab25lSW5mbwBHZXRUaW1lWm9uZUluZm9fAHpvbmVJRABt
X2NvbHMAbV9pbnB1dFpvbmUAbV9vdXRwdXRab25lAG1fY29sSWR4AG1faW5UWkkAbV9vdXRUWkkA
VGltZUNvbHVtbnMASW5wdXRab25lAE91dHB1dFpvbmUAQ29sdW1uU2VwYXJhdG9yAExvY2FsVGlt
ZQBTeXN0ZW0uUmVzb3VyY2VzAFJlc291cmNlTWFuYWdlcgBfcmVzTWdyAFN5c3RlbS5HbG9iYWxp
emF0aW9uAEN1bHR1cmVJbmZvAF9yZXNDdWx0dXJlAGdldF9SZXNvdXJjZU1hbmFnZXIAZ2V0X0N1
bHR1cmUAc2V0X0N1bHR1cmUAVmFsdWUAQ3VsdHVyZQBTeXN0ZW0uQ29uZmlndXJhdGlvbgBBcHBs
aWNhdGlvblNldHRpbmdzQmFzZQBtX1ZhbHVlAG1fU3luY09iamVjdABnZXRfVmFsdWUAU3lzdGVt
LkNvbXBvbmVudE1vZGVsAEVkaXRvckJyb3dzYWJsZUF0dHJpYnV0ZQBFZGl0b3JCcm93c2FibGVT
dGF0ZQBTeXN0ZW0uQ29kZURvbS5Db21waWxlcgBHZW5lcmF0ZWRDb2RlQXR0cmlidXRlAFN5c3Rl
bS5EaWFnbm9zdGljcwBEZWJ1Z2dlckhpZGRlbkF0dHJpYnV0ZQBNaWNyb3NvZnQuVmlzdWFsQmFz
aWMuQ29tcGlsZXJTZXJ2aWNlcwBTdGFuZGFyZE1vZHVsZUF0dHJpYnV0ZQBIaWRlTW9kdWxlTmFt
ZUF0dHJpYnV0ZQBTeXN0ZW0uQ29tcG9uZW50TW9kZWwuRGVzaWduAEhlbHBLZXl3b3JkQXR0cmli
dXRlAFN5c3RlbS5SdW50aW1lLkNvbXBpbGVyU2VydmljZXMAUnVudGltZUhlbHBlcnMAR2V0T2Jq
ZWN0VmFsdWUAUnVudGltZVR5cGVIYW5kbGUAR2V0VHlwZUZyb21IYW5kbGUAQWN0aXZhdG9yAENy
ZWF0ZUluc3RhbmNlAE15R3JvdXBDb2xsZWN0aW9uQXR0cmlidXRlAHNldF9WYWx1ZQBTeXN0ZW0u
UnVudGltZS5JbnRlcm9wU2VydmljZXMAQ29tVmlzaWJsZUF0dHJpYnV0ZQBTdHJpbmcAU2NyaXB0
QnVmZmVyAENMU0NvbXBsaWFudEF0dHJpYnV0ZQBNaWNyb3NvZnQuU3FsU2VydmVyLkRUU1BpcGVs
aW5lV3JhcABNaWNyb3NvZnQuU3FsU2VydmVyLkR0cy5QaXBlbGluZS5XcmFwcGVyAElEVFNDb21w
b25lbnRNZXRhRGF0YTEwMABnZXRfQ29tcG9uZW50TWV0YURhdGEASURUU0lucHV0Q29sbGVjdGlv
bjEwMABnZXRfSW5wdXRDb2xsZWN0aW9uAElEVFNJbnB1dDEwMABnZXRfSXRlbQBnZXRfSUQAZ2V0
X0xvY2FsAGdldF9JZABnZXRfQnVmZmVyAElzTnVsbABDb252ZXJzaW9ucwBEYXRlVGltZQBUb0Rh
dGUAQ29udmVydFRpbWUAc2V0X0l0ZW0ASW50MzIASURUU0lucHV0Q29sdW1uQ29sbGVjdGlvbjEw
MABnZXRfSW5wdXRDb2x1bW5Db2xsZWN0aW9uAGdldF9Db3VudABQaXBlbGluZUNvbXBvbmVudABn
ZXRfSG9zdENvbXBvbmVudABJRFRTQnVmZmVyTWFuYWdlcjEwMABnZXRfQnVmZmVyTWFuYWdlcgBJ
RFRTSW5wdXRDb2x1bW4xMDAAZ2V0X0xpbmVhZ2VJRABGaW5kQ29sdW1uQnlMaW5lYWdlSUQASURU
U1ZpcnR1YWxJbnB1dDEwMABJRFRTVmlydHVhbElucHV0Q29sdW1uMTAwAEV4Y2VwdGlvbgBJc051
bGxPckVtcHR5AEFwcGxpY2F0aW9uRXhjZXB0aW9uAFN0cmluZ1NwbGl0T3B0aW9ucwBTcGxpdABH
ZXRWaXJ0dWFsSW5wdXQAUmVtb3ZlQWxsAElEVFNWaXJ0dWFsSW5wdXRDb2x1bW5Db2xsZWN0aW9u
MTAwAGdldF9WaXJ0dWFsSW5wdXRDb2x1bW5Db2xsZWN0aW9uAERUU1VzYWdlVHlwZQBTZXRVc2Fn
ZVR5cGUAUHJvamVjdERhdGEAU2V0UHJvamVjdEVycm9yAGdldF9NZXNzYWdlAENsZWFyUHJvamVj
dEVycm9yAFN5c3RlbS5Db2xsZWN0aW9ucwBBcnJheUxpc3QAU3lzdGVtLkNvbGxlY3Rpb25zLkdl
bmVyaWMASUVudW1lcmF0b3JgMQBBZGQAU3lzdGVtLkNvbGxlY3Rpb25zLk9iamVjdE1vZGVsAFJl
YWRPbmx5Q29sbGVjdGlvbmAxAEdldFN5c3RlbVRpbWVab25lcwBHZXRFbnVtZXJhdG9yAGdldF9D
dXJyZW50AGdldF9EaXNwbGF5TmFtZQBJRW51bWVyYXRvcgBNb3ZlTmV4dABJRGlzcG9zYWJsZQBE
aXNwb3NlAFRvQXJyYXkARW1wdHkARmlyZUVycm9yAE9wZXJhdG9ycwBDb21wYXJlU3RyaW5nAEZp
bmRTeXN0ZW1UaW1lWm9uZUJ5SWQAU1NJU1NjcmlwdENvbXBvbmVudEVudHJ5UG9pbnRBdHRyaWJ1
dGUAQ296eVJvYy5TcWxTZXJ2ZXIuU1NJUy5BdHRyaWJ1dGVzAFZhbGlkYXRlUHJvcGVydGllc0F0
dHJpYnV0ZQBTb3J0UHJvcGVydGllc0F0dHJpYnV0ZQBJbnB1dFZpcnR1YWxDb2x1bW5BdHRyaWJ1
dGUARGVzY3JpcHRpb25BdHRyaWJ1dGUATGlzdEF0dHJpYnV0ZQBTeXN0ZW0uUmVmbGVjdGlvbgBB
c3NlbWJseQBnZXRfQXNzZW1ibHkAU3lzdGVtLlRocmVhZGluZwBNb25pdG9yAEVudGVyAEV4aXQA
RGVidWdnZXJOb25Vc2VyQ29kZUF0dHJpYnV0ZQBTY3JpcHRDb21wb25lbnRfZGFiZGMyNzNhNTFi
NGZhYTg4NzA0YWQ3OWFlMjcyMWUudmJwcm9qLlJlc291cmNlcy5yZXNvdXJjZXMAQ29tcGlsYXRp
b25SZWxheGF0aW9uc0F0dHJpYnV0ZQBSdW50aW1lQ29tcGF0aWJpbGl0eUF0dHJpYnV0ZQBTeXN0
ZW0uUnVudGltZS5WZXJzaW9uaW5nAFRhcmdldEZyYW1ld29ya0F0dHJpYnV0ZQBBc3NlbWJseUZp
bGVWZXJzaW9uQXR0cmlidXRlAEd1aWRBdHRyaWJ1dGUAQXNzZW1ibHlUcmFkZW1hcmtBdHRyaWJ1
dGUAQXNzZW1ibHlDb3B5cmlnaHRBdHRyaWJ1dGUAQXNzZW1ibHlQcm9kdWN0QXR0cmlidXRlAEFz
c2VtYmx5Q29tcGFueUF0dHJpYnV0ZQBBc3NlbWJseURlc2NyaXB0aW9uQXR0cmlidXRlAEFzc2Vt
Ymx5VGl0bGVBdHRyaWJ1dGUAU0NfRjhEMjkyQTI4QjhFNEFFMkE3Mjc2REYyN0U5N0JCOUEAU0Nf
RjhEMjkyQTI4QjhFNEFFMkE3Mjc2REYyN0U5N0JCOUEuZGxsAAAAAAALSQBuAHAAdQB0AAApUwBl
AGwAZQBjAHQAIAB0AGkAbQBlACAAYwBvAGwAdQBtAG4AcwAuAAAvUwBlAGwAZQBjAHQAIABpAG4A
cAB1AHQAIAB0AGkAbQBlACAAegBvAG4AZQAuAAAxUwBlAGwAZQBjAHQAIABvAHUAdABwAHUAdAAg
AHQAaQBtAGUAIAB6AG8AbgBlAC4AAAUsAAoAABlbAEwAbwBjAGEAbAAgAFQAaQBtAGUAXQAAE1QA
aQBtAGUAIABaAG8AbgBlAAAxTQB5AC4AUgBlAHMAbwB1AHIAYwBlAHMALgBNAHkAUgBlAHMAbwB1
AHIAYwBlAHMAAACQW28MbbbCSa8whyBJKsdMAAi3elxWGTTgiQiwP19/EdUKOgMgAAEDAAABBAAA
EgwHBhUSGAESDAQAABIIBwYVEhgBEggEAAASEQcGFRIYARIRBAAAEhQHBhUSGAESFAQIABIMBAgA
EggECAASEQQIABIUBCABAhwDIAAIBCAAEhUDIAAOAh4ABxABAR4AHgAHMAEBARAeAAITAAQgABMA
BwYVEhkBEwAEKAATAAgWz0kLuAw06giJhF3NgIDMkQsgBQESIQgCEiUSKQQgAB0OAyAAAgQoAB0O
AwYSJAMGEigJIAQBCA4SJRIpBSABARIcAwYSIQUgAQESIQUgAQIQDgQgAB0cBCABAQ4EIAEODgUg
ARIxDgIGDgMGHQgDBhIxAygADgQsAAoAGFsATABvAGMAYQBsACAAVABpAG0AZQBdAAMGEjUDBhI5
BAAAEjUEAAASOQUAAQESOQQIABI1BAgAEjkDBhI4AgYcBAAAEjgECAASOAUgAQERRQgBAAEAAAAA
AAUgAgEODhgBAApNeVRlbXBsYXRlCDEwLjAuMC4wAAAEAQAAAAYVEhgBEgwGFRIYARIIBhUSGAES
EQYVEhgBEhQEBwESDAQHARIIBAcBEhEEBwESFBMBAA5NeS5BcHBsaWNhdGlvbgAAEAEAC015LkNv
bXB1dGVyAAAMAQAHTXkuVXNlcgAAEwEADk15LldlYlNlcnZpY2VzAAAEAAEcHAMHAQIDBwEIBgAB
EhURYQQHARIVAwcBDgUQAQAeAAQKAR4ABAcBHgAHIAQBDg4ODmEBADRTeXN0ZW0uV2ViLlNlcnZp
Y2VzLlByb3RvY29scy5Tb2FwSHR0cENsaWVudFByb3RvY29sEkNyZWF0ZV9fSW5zdGFuY2VfXxNE
aXNwb3NlX19JbnN0YW5jZV9fAAAABhUSGAETAAYVEhkBEwAECgETAAUgAQETAAgHAxMAEwATAAQg
AQECBQEAAAAABAcBHQ4EIAASfQUgABKAgQYgARKAhRwEAAASMQQgABIlBCABAggEIAEcCAYAARGA
jRwMAAMRgI0RgI0SMRIxBSACAQgcBgcECAgICAUgABKAlQUgABKAmQUgABKAnQYgARKAoRwFIAII
CAgIBwQIEoCFCAgEAAECDgkgAh0OHQ4RgLUFIAASgKUFIAASgLkGIAESgKkcByACCAgRgL0GAAEB
EoCtGAcLAgISgIUdDhKApQ4SgKkSgK0dDggdDgQgAQgcCQAAFRKAzQESMQcVEoDNARIxCSAAFRKA
yQETAAcVEoDJARIxEAcEHRwSgMUSMRUSgMkBEjEKIAYBCA4ODggQAgYAAwgODgIEIAECDg0HBA4O
EjEVEoDJARIxBQABEjEOBgcCEjESMQ0BAAhWYWxpZGF0ZQAABSABAR0OKQEAAwAAAAtUaW1lQ29s
dW1ucwlJbnB1dFpvbmUKT3V0cHV0Wm9uZQAABSACAQ4CBgEAAAAAABkBABRTZWxlY3QgdGltZSBj
b2x1bW5zLgAADQEACEdldFpvbmVzAAAcAQAXU2VsZWN0IGlucHV0IHRpbWUgem9uZS4AAB0BABhT
ZWxlY3Qgb3V0cHV0IHRpbWUgem9uZS4AAAUgABKA9QcgAgEOEoD1BgcCEjUSNQQHARI5CAEAAgAA
AAAABAABARwEBwESOAQgAQEICAEACAAAAAAAHgEAAQBUAhZXcmFwTm9uRXhjZXB0aW9uVGhyb3dz
AUcBABouTkVURnJhbWV3b3JrLFZlcnNpb249djQuMAEAVA4URnJhbWV3b3JrRGlzcGxheU5hbWUQ
Lk5FVCBGcmFtZXdvcmsgNAwBAAcxLjAuMC4wAAApAQAkNTFjNThhNDQtNzAxNS00YjRjLTlkNzMt
YjQ2YTY5YTViOWM3AAAFAQABAAAfAQAaQ29weXJpZ2h0IEAgTWljcm9zb2Z0IDIwMTgAADwBADdT
Y3JpcHRDb21wb25lbnRfZGFiZGMyNzNhNTFiNGZhYTg4NzA0YWQ3OWFlMjcyMWUudmJwcm9qAAAO
AQAJTWljcm9zb2Z0AAAAAFBOAAAAAAAAAAAAAG5OAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAABg
TgAAAAAAAAAAAAAAAAAAAABfQ29yRGxsTWFpbgBtc2NvcmVlLmRsbAAAAAAA/yUAIAAQAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAEAAAABgAAIAA
AAAAAAAAAAAAAAAAAAEAAQAAADAAAIAAAAAAAAAAAAAAAAAAAAEAAAAAAEgAAABYYAAAGAQAAAAA
AAAAAAAAGAQ0AAAAVgBTAF8AVgBFAFIAUwBJAE8ATgBfAEkATgBGAE8AAAAAAL0E7/4AAAEAAAAB
AAAAAAAAAAEAAAAAAD8AAAAAAAAABAAAAAIAAAAAAAAAAAAAAAAAAABEAAAAAQBWAGEAcgBGAGkA
bABlAEkAbgBmAG8AAAAAACQABAAAAFQAcgBhAG4AcwBsAGEAdABpAG8AbgAAAAAAAACwBHgDAAAB
AFMAdAByAGkAbgBnAEYAaQBsAGUASQBuAGYAbwAAAFQDAAABADAAMAAwADAAMAA0AGIAMAAAADQA
CgABAEMAbwBtAHAAYQBuAHkATgBhAG0AZQAAAAAATQBpAGMAcgBvAHMAbwBmAHQAAACYADgAAQBG
AGkAbABlAEQAZQBzAGMAcgBpAHAAdABpAG8AbgAAAAAAUwBjAHIAaQBwAHQAQwBvAG0AcABvAG4A
ZQBuAHQAXwBkAGEAYgBkAGMAMgA3ADMAYQA1ADEAYgA0AGYAYQBhADgAOAA3ADAANABhAGQANwA5
AGEAZQAyADcAMgAxAGUALgB2AGIAcAByAG8AagAAADAACAABAEYAaQBsAGUAVgBlAHIAcwBpAG8A
bgAAAAAAMQAuADAALgAwAC4AMAAAAHAAKAABAEkAbgB0AGUAcgBuAGEAbABOAGEAbQBlAAAAUwBD
AF8ARgA4AEQAMgA5ADIAQQAyADgAQgA4AEUANABBAEUAMgBBADcAMgA3ADYARABGADIANwBFADkA
NwBCAEIAOQBBAC4AZABsAGwAAABcABsAAQBMAGUAZwBhAGwAQwBvAHAAeQByAGkAZwBoAHQAAABD
AG8AcAB5AHIAaQBnAGgAdAAgAEAAIABNAGkAYwByAG8AcwBvAGYAdAAgADIAMAAxADgAAAAAAHgA
KAABAE8AcgBpAGcAaQBuAGEAbABGAGkAbABlAG4AYQBtAGUAAABTAEMAXwBGADgARAAyADkAMgBB
ADIAOABCADgARQA0AEEARQAyAEEANwAyADcANgBEAEYAMgA3AEUAOQA3AEIAQgA5AEEALgBkAGwA
bAAAAJAAOAABAFAAcgBvAGQAdQBjAHQATgBhAG0AZQAAAAAAUwBjAHIAaQBwAHQAQwBvAG0AcABv
AG4AZQBuAHQAXwBkAGEAYgBkAGMAMgA3ADMAYQA1ADEAYgA0AGYAYQBhADgAOAA3ADAANABhAGQA
NwA5AGEAZQAyADcAMgAxAGUALgB2AGIAcAByAG8AagAAADQACAABAFAAcgBvAGQAdQBjAHQAVgBl
AHIAcwBpAG8AbgAAADEALgAwAC4AMAAuADAAAAA4AAgAAQBBAHMAcwBlAG0AYgBsAHkAIABWAGUA
cgBzAGkAbwBuAAAAMQAuADAALgAwAC4AMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAADAAAAIA+AAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==]]></arrayElement></arrayElements></property><property id="22" name="UserComponentTypeName" dataType="System.String">CozyRoc.SqlServer.SSIS.ScriptComponentHostPlus, CozyRoc.SSISPlus.2012, Version=1.0.0.0, Culture=neutral, PublicKeyToken=16cf490bb80c34ea</property><property id="24" 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">SC_f8d292a28b8e4ae2a7276df27e97bb9a</property><property id="25" 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><inputs><input id="26" name="Input" hasSideEffects="true"><externalMetadataColumns /></input></inputs><outputs><output id="29" name="Output" synchronousInputId="26"><externalMetadataColumns /></output></outputs></component>