<component id="2" name="Date Format" 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-2013 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.Globalization
Imports System.Collections

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


'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
<SortProperties(New String() {"Columns", "InputCulture", "Options", "OutputCulture", "Format"})> _
<ValidateProperties("Validate")> _
<Microsoft.SqlServer.Dts.Pipeline.SSISScriptComponentEntryPointAttribute> _
<CLSCompliant(False)> _
Public Class ScriptMain
    Inherits UserComponent


    Private Const ColumnSeparator As String = "," + vbLf


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Public Overrides Sub Input_ProcessInputRow(ByVal Row As InputBuffer)
        Dim colsCount As Integer = m_inputIdx.Length

        For colIndex As Integer = 0 To colsCount - 1
            Dim bufIndex As Integer = m_inputIdx(colIndex)

            If Row.Buffer.IsNull(bufIndex) Then
                Continue For
            End If

            Try
                Dim colValue As String = Row.Buffer.GetString(bufIndex)

                Dim dt As DateTime
                If DateTime.TryParse(colValue, m_inCulture, m_dts, dt) Then
                    Call Row.Buffer.SetString(bufIndex, dt.ToString(Me.Format, m_outCulture))
                Else
                    Call FireWarning_(String.Format("Failed to parse date: {0}",  colValue))
                End If
            Catch ex As Exception
                Call FireError_(ex.Message)
            End Try
        Next
    End Sub ' Input_ProcessInputRow


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

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

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

        m_inCulture = CultureInfo.GetCultureInfo(m_icid)
        m_outCulture = CultureInfo.GetCultureInfo(m_ocid)

        ' Initialize parse options.
        m_dts = DateTimeStyles.None
        Dim optionsList() As String = CStr(Me.Options).Split( _
            New String() {ColumnSeparator}, _
            StringSplitOptions.None)
        For Each opt As String In optionsList
            m_dts = m_dts Or CType( _
                System.Enum.Parse(GetType(DateTimeStyles), opt), _
                DateTimeStyles)
        Next
    End Sub ' PreExecute


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

        Try
            If String.IsNullOrEmpty(Me.Columns) Then
                Throw New Exception("Select input columns.")
            End If

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

            ' Setup input columns based on selection.
            Dim selectedCols() As String = CStr(Me.Columns).Split( _
                New String() {ColumnSeparator}, _
                StringSplitOptions.None)
            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 cultures.
    Public Function GetCultures() As Object()
        Dim result As New ArrayList()

        Dim cultures() As CultureInfo = CultureInfo.GetCultures(CultureTypes.AllCultures)
        For Each culture As CultureInfo In cultures
            Call result.Add(culture.DisplayName)
        Next

        GetCultures = result.ToArray()
    End Function    ' GetCultures


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Public Function GetDateParseOptions() As Object()
        GetDateParseOptions = System.Enum.GetNames(GetType(DateTimeStyles))
    End Function    ' GetDateParseOptions


#Region "Properties"
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Category("Input")> _
    <Description("Select input columns you want to process.")> _
    <InputVirtualColumn("", False)> _
    Public Property Columns() As String
        Get
            Columns = m_inputCols
        End Get
        Set(ByVal value As String)
            m_inputCols = value
        End Set
    End Property    ' Columns


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Category("Input")> _
    <Description("Select input date parse culture.")> _
    <List("GetCultures")> _
    Public Property InputCulture() As String
        Get
            InputCulture = CultureInfo.GetCultureInfo(m_icid).DisplayName
        End Get
        Set(ByVal value As String)
            m_icid = GetIdFromDisplayName_(value)
        End Set
    End Property    ' InputCulture


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Category("Input")> _
    <Description("Specify date parse options.")> _
    <List("GetDateParseOptions", True, False)> _
    <DefaultValue("None")> _
    Public Property Options() As String
        Get
            Options = m_options
        End Get
        Set(ByVal value As String)
            m_options = value
        End Set
    End Property    ' Options


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Category("Output")> _
    <Description("Select output date format culture.")> _
    <List("GetCultures")> _
    Public Property OutputCulture() As String
        Get
            OutputCulture = CultureInfo.GetCultureInfo(m_ocid).DisplayName
        End Get
        Set(ByVal value As String)
            m_ocid = GetIdFromDisplayName_(value)
        End Set
    End Property    ' OutputCulture


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Category("Output")> _
    <Description("Specify output date format.")> _
    Public Property Format() As String
        Get
            Format = m_format
        End Get
        Set(ByVal value As String)
            m_format = value
        End Set
    End Property    ' Format
#End Region ' Properties


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


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Sub FireWarning_(ByVal message As String)
        Call MyBase.ComponentMetaData.FireWarning( _
            0, _
            "Date Format", _
            message, _
            String.Empty, _
            0)
    End Sub ' FireError_


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private Function GetIdFromDisplayName_(ByVal displayName As String) As Integer
        Dim result As Integer = CultureInfo.CurrentCulture.LCID

        If Not String.IsNullOrEmpty(displayName) Then
            Dim cultures() As CultureInfo = CultureInfo.GetCultures(CultureTypes.AllCultures)
            For Each culture As CultureInfo In cultures
                If culture.DisplayName.Equals(displayName) Then
                    ' Found culture.
                    result = culture.LCID
                    Exit For
                End If
            Next
        End If

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


#Region "Attributes"
    Private m_inputCols As String = String.Empty
    Private m_icid As Integer = CultureInfo.CurrentCulture.LCID
    Private m_options As String
    Private m_ocid As Integer = CultureInfo.CurrentCulture.LCID
    Private m_format As String
    Private m_inputIdx() As Integer
    Private m_inCulture As CultureInfo
    Private m_outCulture As CultureInfo
    Private m_dts As DateTimeStyles
#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_64d53ca642cd4993b6263101b072b016.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>{87AF84AC-3B67-4274-8F24-F9595259393A}</ProjectGuid>
    <OutputType>Library</OutputType>
    <AppDesignerFolder>My Project</AppDesignerFolder>
    <RootNamespace>ScriptComponent_64d53ca642cd4993b6263101b072b016</RootNamespace>
    <AssemblyName>ScriptComponent_64d53ca642cd4993b6263101b072b016</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>
  </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

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_64d53ca642cd4993b6263101b072b016</msb:CodeName>
		<msb:DisplayName>ScriptComponent_64d53ca642cd4993b6263101b072b016</msb:DisplayName>
		<msb:ProjectId>{8CFB7CF8-49B3-4F9F-883D-65249E41D443}</msb:ProjectId>
	</msb:PropertyGroup>
	<msb:ItemGroup>
		<msb:Project Include="ScriptComponent_64d53ca642cd4993b6263101b072b016.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_64d53ca642cd4993b6263101b072b016.dll]]></arrayElement><arrayElement dataType="System.String"><![CDATA[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
EgC8A1sDDgBgBBYDBgBABisGBgBlBisGGgDCBqwGGgDbBqwGGgAIB/AGBgAyBx8HCgBxB0oHCgCJ
BxMAGgC+B6EHBgDzB9MHBgARCHwBBgA1CHwBCgBOCBMABgCcCH0IBgCwCHwBEgC3CFsDBgDECHwB
HgAnCf4IHgBWCf4IHgCBCf4IBgDACXwBBgDJCXwBBgDvCXwBCgASCkoHBgBMCnwBHgBSCv4IFgCT
ClsDHgC3Cv4IHgDeCv4IBgAkC3wBBgA9C3wBCgBIC0oHHgBeC/4IHgByC/4IHgC0C/4IHgD5C/4I
BgAmDBMMBgAwDCsGEgB4DFsDDgDBDJ8MDgDdDJ8MGgD1DKwGGgAKDawGGgAcDawGDgAyDZ8MDgBA
DZ8MBgBcDdMHBgB8DdMHBgC0DZoNAAAAAAEAAAAAAAEAAQAAAAAAKQA3AAUAAQABAAAAAABrADcA
CQABAAIAAAEQAHYANwANAAEAAwAFAQAAgAAAAA0ABQAIAAUBAACOAAAADQAFAA8AAQAAAKkAtQAd
AAYAEQABAAAA5gC1AC0ABgAWAAEAAAD0ALUADQAIABoAAQAAAAABtQANAAkAGwABAAAACgG1ACAA
CgAcADEAngEgADEAxwEtADEA6QE6ADEADgJHACEA6gKQAAYA9ADJAAYAAAHNAAEAwAThAAEAwATh
AFGA0ATrAAEA8wXrAAEA/wUIAQEABgbrAAEAEAYIAQEAFwbrAAEAIAYLAQEATAYPAQEAWAYPAQEA
dAYTAVAgAAAAAAYYTwETAAEAWCAAAAAABhhPARMAAQBgIAAAAAARGIoBFwABAIwgAAAAABMIkQEb
AAEApCAAAAAAEwi3ASgAAQC8IAAAAAATCOABNQABANQgAAAAABMI/gFCAAEA7CAAAAAARgJEAmMA
AQAIIQAAAABGAk0CaAACABwhAAAAAIMAXgJsAAIANCEAAAAARgJmAnEAAgBIIQAAAAARAG8CeAAC
AGQhAAAAAAEAjQKAAAMAgCEAAAAABhhPARMABACIIQAAAAADCKECiwAEALwhAAAAAAYYTwETAAQA
0CEAAAAABhhPAa8ABADgIQAAAABGCvYDuwAJAPQhAAAAAEYKDQS7AAkACCIAAAAAhgAlBMAACQAg
IgAAAACGAC0EwAAJADgiAAAAAAYYTwETAAkAWCIAAAAARgJ0BNEACQCIIgAAAABGA5ME2wANAJwi
AAAAAEYDpgTbAA4AoCIAAAAABhhPAeUADwCwIgAAAAAGGE8B5QAQAMAiAAAAAAYYTwETABEA9CIA
AAAARgKmBNsAEQDAIwAAAABGAuAEEwASANgkAAAAAAYA6wTzABIAwCUAAAAABgD/BPkAEwAMJgAA
AAAGAAsF+QATACwmAAAAAAYIHwVxABMARCYAAAAABggrBf4AEwBQJgAAAAAGCD0FcQAUAHAmAAAA
AAYITgX+ABQAgCYAAAAABghfBXEAFQCYJgAAAAAGCGsF/gAVAKQmAAAAAAYIdwVxABYAxCYAAAAA
BgiJBf4AFgDUJgAAAAAGCJsFcQAXAOwmAAAAAAYIpgX+ABcA+CYAAAAAAQCxBf4AGAAkJwAAAAAB
AMQF/gAZAEAnAAAAAAEA0QUDARoAAAABAEsCAAABAIQCAAABAIQCAAABAMoDAAACANQDAAADAN0D
AAAEAOUDAAAFAOwDAAABAIEEAAACAIkEAAADAOUDAAAEAOwDAAABAOUDAAABALwEAAABAMoDAAAB
AMoDAAABALwEAAABAPQEAAABADcFAAABADcFAAABADcFAAABADcFAAABADcFAAABALwFAAABALwF
AAABAOcFCQBPARMAcQBPARsBgQBPASoBEQBPARMAiQBPARMAJABPARMALABPARMANABPARMAPABP
ARMAJAChAosALAChAosANAChAosAPAChAosAkQBPARMAmQBPARMAoQBPAf4AqQACCMQBGQBEAmMA
GQBNAmgAKQAjCNEBGQBmAnEAuQA/COEBGQBPARMAwQBPAfEBRADqApAATABpCIsATABzCG4CTABP
ARMAyQBPAX0COQBPAa8A2QAlBMAA2QAtBMAA4QBPAX0CWQBPARMAQQBACY0C6QBtCZIC8QCOCZcC
+QCXCWgA0QCeCesAYQCkCZ0CYQC3CWgAOQDTCaICSQDeCacCSQDlCawCAQH/CbECAQFmAr8CSQAI
CscC0QClBs0CGQEeCtMCCQEuCnEAGQE6ChcAQQDgBBMA+QBvCugCKQGJCmgAWQClCu4CMQHMCvQC
+QDTCWgAKQGOCfoCQQHxCmgAOQH/CgEDYQAVCwcD0QA3Cw0DUQFCCxcDWQFUCx4D0QCMCzMDCQFP
Af4A+QCaCzgDKQGqCxMAYQHYCz4DcQGOCUQDaQHxCmgAYQEGDEsDgQFPARMAYQD/BGsDYQA9DHEA
gQFNDHQDgQFRDPkAUQFZDIoD6QBiDJYD6QBsDKED0QBEAqoDkQFPARMAmQFPAf4AoQFPAcsDqQFP
Af4AsQFPAf4AuQFPAf4AwQFPAUMEwQFPAf4AyQFPAfAE0QFPASwF2QFPARMA4QFPAf4ADgAoAO4A
KQCDAH4BLgDbAjEFLgDrAlkFLgDjAjoFQAArAEkBQAATACEBQwATACEBQwAbADABSQCDAJwBYwAT
ACEBYwAbADABaQCDAI8BgAArAEkBgwB7AEkBgwBzAEkBgwAbADABiQCDALABoAArAEkBowDDAPkB
owATACEBwAArAEkBwwATACEBwwDrAIIC4AArAEkB4wALAYICAAErAEkBAAETACEBAwELAYICCQGr
Av0ECQGzAoYECQHTAvYEIAErAEkBIAETACEBKQHLApEEKQGzAoYEKQGrAqIEQAETACEBQAErAEkB
SQHDAkoESQGzAoYESQGrAmUESQG7AjkEYAETACEBYAErAEkBYwGTAkkBYwGbAr0DYwGjAtEDYwEL
AYICaQGzAi0EaQHLApEEaQGrAsgEgAErAEkBiQGzAi0EiQGrAgwEoAErAEkBwAErAEkBwAETACEB
4AErAEkBAAIrAEkBAAITACEBQAMLAYICYAMLAYICagFvAXQBeQHJAc0B2AHdAewB7AF0AogCiALJ
AckB2gIjA1MDeQORA90B3QHdAd0B3QHJAa8DBAABAAYABQAHAAYACwAIAAAAcwFPAAAALAJUAAAA
2wFZAAAAOAJeAAAA9AKYAAAAOQTEAAAATATEAAAAegYXAQAAggYXAQAAjwYXAQAAlwYXAQAApQYX
AQIABAADAAIABQAFAAIABgAHAAIABwAJAAIADwALAAIAEgANAAIAEwAPAAEAIwARAAIAIgARAAIA
JAATAAEAJQATAAEAJwAVAAIAJgAVAAEAKQAXAAIAKAAXAAIAKgAZAAEAKwAZAHUAdQCIAE4BVQFc
AWMBWwJiAgSAAAAAAAAAAAAAAAAAAAAAALUAAAAEAAAAAAAAAAAAAAABAAoAAAAAAAoAAAAAAAAA
AAAAAAoAEwAAAAAAAQAAAAAAAAAAAAAAnQAAAwAAAAAMAAAAAAAAAAAAAACmAD4DAAAAAAwAAAAA
AAAAAAAAAKYAjAMAAAAABAAAAAAAAAAAAAAAAQB8AQAAAAAMAAAAAAAAAAAAAACmANoIAAAAAAUA
BAAGAAQAAAAQAAwAggIAABAAGQCCAgAAAAAbAIICLQDnAS0AaQIAAAA8TW9kdWxlPgBtc2Nvcmxp
YgBNaWNyb3NvZnQuVmlzdWFsQmFzaWMATXlBcHBsaWNhdGlvbgBTY3JpcHRDb21wb25lbnRfNjRk
NTNjYTY0MmNkNDk5M2I2MjYzMTAxYjA3MmIwMTYuTXkATXlDb21wdXRlcgBNeVByb2plY3QATXlX
ZWJTZXJ2aWNlcwBUaHJlYWRTYWZlT2JqZWN0UHJvdmlkZXJgMQBJbnB1dEJ1ZmZlcgBTY3JpcHRD
b21wb25lbnRfNjRkNTNjYTY0MmNkNDk5M2I2MjYzMTAxYjA3MmIwMTYAVXNlckNvbXBvbmVudABD
b25uZWN0aW9ucwBWYXJpYWJsZXMAU2NyaXB0TWFpbgBNaWNyb3NvZnQuVmlzdWFsQmFzaWMuQXBw
bGljYXRpb25TZXJ2aWNlcwBBcHBsaWNhdGlvbkJhc2UALmN0b3IATWljcm9zb2Z0LlZpc3VhbEJh
c2ljLkRldmljZXMAQ29tcHV0ZXIAU3lzdGVtAE9iamVjdAAuY2N0b3IAZ2V0X0NvbXB1dGVyAG1f
Q29tcHV0ZXJPYmplY3RQcm92aWRlcgBnZXRfQXBwbGljYXRpb24AbV9BcHBPYmplY3RQcm92aWRl
cgBVc2VyAGdldF9Vc2VyAG1fVXNlck9iamVjdFByb3ZpZGVyAGdldF9XZWJTZXJ2aWNlcwBtX015
V2ViU2VydmljZXNPYmplY3RQcm92aWRlcgBBcHBsaWNhdGlvbgBXZWJTZXJ2aWNlcwBFcXVhbHMA
bwBHZXRIYXNoQ29kZQBUeXBlAEdldFR5cGUAVG9TdHJpbmcAQ3JlYXRlX19JbnN0YW5jZV9fAFQA
aW5zdGFuY2UARGlzcG9zZV9fSW5zdGFuY2VfXwBnZXRfR2V0SW5zdGFuY2UATWljcm9zb2Z0LlZp
c3VhbEJhc2ljLk15U2VydmljZXMuSW50ZXJuYWwAQ29udGV4dFZhbHVlYDEAbV9Db250ZXh0AEdl
dEluc3RhbmNlAENvenlSb2MuU1NJU1BsdXMuMjAxNABDb3p5Um9jLlNxbFNlcnZlci5TU0lTAFNj
cmlwdEJ1ZmZlclBsdXMATWljcm9zb2Z0LlNxbFNlcnZlci5UeFNjcmlwdABNaWNyb3NvZnQuU3Fs
U2VydmVyLkR0cy5QaXBlbGluZQBTY3JpcHRDb21wb25lbnQATWljcm9zb2Z0LlNxbFNlcnZlci5Q
aXBlbGluZUhvc3QAUGlwZWxpbmVCdWZmZXIAT3V0cHV0TmFtZU1hcABDb21wb25lbnQAT2JqZWN0
SUQASXNJbnB1dABCdWZmZXIAT3V0cHV0TWFwAGdldF9TdGF0aWNJbnB1dENvbHVtbnMAZ2V0X1N0
YXRpY091dHB1dENvbHVtbnMATmV4dFJvdwBFbmRPZlJvd3NldABTdGF0aWNJbnB1dENvbHVtbnMA
U3RhdGljT3V0cHV0Q29sdW1ucwBTY3JpcHRDb21wb25lbnRQbHVzAFByb2Nlc3NJbnB1dABJbnB1
dElEAElucHV0TmFtZQBJbnB1dF9Qcm9jZXNzSW5wdXQASW5wdXRfUHJvY2Vzc0lucHV0Um93AFJv
dwBQYXJlbnRDb21wb25lbnQAQ29sdW1uU2VwYXJhdG9yAFByZUV4ZWN1dGUAVmFsaWRhdGUAZXJy
TWVzc2FnZQBHZXRDdWx0dXJlcwBHZXREYXRlUGFyc2VPcHRpb25zAGdldF9Db2x1bW5zAHNldF9D
b2x1bW5zAHZhbHVlAGdldF9JbnB1dEN1bHR1cmUAc2V0X0lucHV0Q3VsdHVyZQBnZXRfT3B0aW9u
cwBzZXRfT3B0aW9ucwBnZXRfT3V0cHV0Q3VsdHVyZQBzZXRfT3V0cHV0Q3VsdHVyZQBnZXRfRm9y
bWF0AHNldF9Gb3JtYXQARmlyZUVycm9yXwBtZXNzYWdlAEZpcmVXYXJuaW5nXwBHZXRJZEZyb21E
aXNwbGF5TmFtZV8AZGlzcGxheU5hbWUAbV9pbnB1dENvbHMAbV9pY2lkAG1fb3B0aW9ucwBtX29j
aWQAbV9mb3JtYXQAbV9pbnB1dElkeABTeXN0ZW0uR2xvYmFsaXphdGlvbgBDdWx0dXJlSW5mbwBt
X2luQ3VsdHVyZQBtX291dEN1bHR1cmUARGF0ZVRpbWVTdHlsZXMAbV9kdHMAQ29sdW1ucwBJbnB1
dEN1bHR1cmUAT3B0aW9ucwBPdXRwdXRDdWx0dXJlAEZvcm1hdABTeXN0ZW0uQ29tcG9uZW50TW9k
ZWwARWRpdG9yQnJvd3NhYmxlQXR0cmlidXRlAEVkaXRvckJyb3dzYWJsZVN0YXRlAFN5c3RlbS5D
b2RlRG9tLkNvbXBpbGVyAEdlbmVyYXRlZENvZGVBdHRyaWJ1dGUAU3lzdGVtLkRpYWdub3N0aWNz
AERlYnVnZ2VySGlkZGVuQXR0cmlidXRlAE1pY3Jvc29mdC5WaXN1YWxCYXNpYy5Db21waWxlclNl
cnZpY2VzAFN0YW5kYXJkTW9kdWxlQXR0cmlidXRlAEhpZGVNb2R1bGVOYW1lQXR0cmlidXRlAFN5
c3RlbS5Db21wb25lbnRNb2RlbC5EZXNpZ24ASGVscEtleXdvcmRBdHRyaWJ1dGUAU3lzdGVtLlJ1
bnRpbWUuQ29tcGlsZXJTZXJ2aWNlcwBSdW50aW1lSGVscGVycwBHZXRPYmplY3RWYWx1ZQBSdW50
aW1lVHlwZUhhbmRsZQBHZXRUeXBlRnJvbUhhbmRsZQBBY3RpdmF0b3IAQ3JlYXRlSW5zdGFuY2UA
TXlHcm91cENvbGxlY3Rpb25BdHRyaWJ1dGUAZ2V0X1ZhbHVlAHNldF9WYWx1ZQBTeXN0ZW0uUnVu
dGltZS5JbnRlcm9wU2VydmljZXMAQ29tVmlzaWJsZUF0dHJpYnV0ZQBTdHJpbmcAU2NyaXB0QnVm
ZmVyAENMU0NvbXBsaWFudEF0dHJpYnV0ZQBNaWNyb3NvZnQuU3FsU2VydmVyLkRUU1BpcGVsaW5l
V3JhcABNaWNyb3NvZnQuU3FsU2VydmVyLkR0cy5QaXBlbGluZS5XcmFwcGVyAElEVFNDb21wb25l
bnRNZXRhRGF0YTEwMABnZXRfQ29tcG9uZW50TWV0YURhdGEASURUU0lucHV0Q29sbGVjdGlvbjEw
MABnZXRfSW5wdXRDb2xsZWN0aW9uAElEVFNJbnB1dDEwMABnZXRfSXRlbQBnZXRfSUQARW1wdHkA
Z2V0X0N1cnJlbnRDdWx0dXJlAGdldF9MQ0lEAERhdGVUaW1lAEV4Y2VwdGlvbgBnZXRfQnVmZmVy
AElzTnVsbABHZXRTdHJpbmcASUZvcm1hdFByb3ZpZGVyAFRyeVBhcnNlAFNldFN0cmluZwBQcm9q
ZWN0RGF0YQBTZXRQcm9qZWN0RXJyb3IAZ2V0X01lc3NhZ2UAQ2xlYXJQcm9qZWN0RXJyb3IASW50
MzIASURUU0lucHV0Q29sdW1uQ29sbGVjdGlvbjEwMABnZXRfSW5wdXRDb2x1bW5Db2xsZWN0aW9u
AGdldF9Db3VudABQaXBlbGluZUNvbXBvbmVudABnZXRfSG9zdENvbXBvbmVudABJRFRTQnVmZmVy
TWFuYWdlcjEwMABnZXRfQnVmZmVyTWFuYWdlcgBJRFRTSW5wdXRDb2x1bW4xMDAAZ2V0X0xpbmVh
Z2VJRABGaW5kQ29sdW1uQnlMaW5lYWdlSUQAR2V0Q3VsdHVyZUluZm8AU3RyaW5nU3BsaXRPcHRp
b25zAFNwbGl0AEVudW0AUGFyc2UAQ29udmVyc2lvbnMAVG9JbnRlZ2VyAElEVFNWaXJ0dWFsSW5w
dXQxMDAASURUU1ZpcnR1YWxJbnB1dENvbHVtbjEwMABJc051bGxPckVtcHR5AEdldFZpcnR1YWxJ
bnB1dABSZW1vdmVBbGwASURUU1ZpcnR1YWxJbnB1dENvbHVtbkNvbGxlY3Rpb24xMDAAZ2V0X1Zp
cnR1YWxJbnB1dENvbHVtbkNvbGxlY3Rpb24ARFRTVXNhZ2VUeXBlAFNldFVzYWdlVHlwZQBTeXN0
ZW0uQ29sbGVjdGlvbnMAQXJyYXlMaXN0AEN1bHR1cmVUeXBlcwBnZXRfRGlzcGxheU5hbWUAQWRk
AFRvQXJyYXkAR2V0TmFtZXMARmlyZUVycm9yAEZpcmVXYXJuaW5nAFNTSVNTY3JpcHRDb21wb25l
bnRFbnRyeVBvaW50QXR0cmlidXRlAENvenlSb2MuU3FsU2VydmVyLlNTSVMuQXR0cmlidXRlcwBW
YWxpZGF0ZVByb3BlcnRpZXNBdHRyaWJ1dGUAU29ydFByb3BlcnRpZXNBdHRyaWJ1dGUARGVzY3Jp
cHRpb25BdHRyaWJ1dGUAQ2F0ZWdvcnlBdHRyaWJ1dGUARGVmYXVsdFZhbHVlQXR0cmlidXRlAExp
c3RBdHRyaWJ1dGUASW5wdXRWaXJ0dWFsQ29sdW1uQXR0cmlidXRlAENvbXBpbGF0aW9uUmVsYXhh
dGlvbnNBdHRyaWJ1dGUAUnVudGltZUNvbXBhdGliaWxpdHlBdHRyaWJ1dGUAU3lzdGVtLlJ1bnRp
bWUuVmVyc2lvbmluZwBUYXJnZXRGcmFtZXdvcmtBdHRyaWJ1dGUAU2NyaXB0Q29tcG9uZW50XzY0
ZDUzY2E2NDJjZDQ5OTNiNjI2MzEwMWIwNzJiMDE2LmRsbAAAAAALSQBuAHAAdQB0AAAzRgBhAGkA
bABlAGQAIAB0AG8AIABwAGEAcgBzAGUAIABkAGEAdABlADoAIAB7ADAAfQAABSwACgAAK1MAZQBs
AGUAYwB0ACAAaQBuAHAAdQB0ACAAYwBvAGwAdQBtAG4AcwAuAAAXRABhAHQAZQAgAEYAbwByAG0A
YQB0AAAAQY+GuOdvZUuGHfGdwrHshgAIt3pcVhk04IkIsD9ffxHVCjoDIAABAwAAAQQAABIMBwYV
EhgBEgwEAAASCAcGFRIYARIIBAAAEhEHBhUSGAESEQQAABIUBwYVEhgBEhQECAASDAQIABIIBAgA
EhEECAASFAQgAQIcAyAACAQgABIVAyAADgIeAAcQAQEeAB4ABzABAQEQHgACEwAEIAATAAcGFRIZ
ARMABCgAEwAIFs9JC7gMNOoIiYRdzYCAzJELIAUBEiEIAhIlEikEIAAdDgMgAAIEKAAdDgMGEiQD
BhIoCSAEAQgOEiUSKQUgAQESHAMGEiEFIAEBEiECBg4ELAAKAAUgAQIQDgQgAB0cBCABAQ4EIAEI
DgIGCAMGHQgDBhIxAwYRNQMoAA4FIAEBET0IAQABAAAAAAAFIAIBDg4YAQAKTXlUZW1wbGF0ZQgx
MC4wLjAuMAAABAEAAAAGFRIYARIMBhUSGAESCAYVEhgBEhEGFRIYARIUBAcBEgwEBwESCAQHARIR
BAcBEhQQAQALTXkuQ29tcHV0ZXIAAAwBAAdNeS5Vc2VyAAATAQAOTXkuQXBwbGljYXRpb24AABMB
AA5NeS5XZWJTZXJ2aWNlcwAABAABHBwDBwECAwcBCAYAARIVEVkEBwESFQMHAQ4FEAEAHgAECgEe
AAQHAR4AByAEAQ4ODg5hAQA0U3lzdGVtLldlYi5TZXJ2aWNlcy5Qcm90b2NvbHMuU29hcEh0dHBD
bGllbnRQcm90b2NvbBJDcmVhdGVfX0luc3RhbmNlX18TRGlzcG9zZV9fSW5zdGFuY2VfXwAAAAYV
EhgBEwAGFRIZARMABAoBEwAFIAEBEwAIBwMTABMAEwAEIAEBAgUBAAAAAAQHAR0OBCAAEnUEIAAS
eQUgARJ9HAQAABIxBCAAEiUEIAECCAQgAQ4IDQAEAg4SgIkRNRARgIEHIAIODhKAiQUgAgEIDgUA
Ag4OHAYAAQESgIUNBwcICAgOEYCBEoCFCAUgABKAlQUgABKAmQUgABKAnQYgARKAoRwFIAIICAgF
AAESMQgJIAIdDh0OEYClBgACHBIVDgQAAQgcDwcJCBJ9HQ4IDggdDggdDgQAAQIOBSAAEoCxBSAA
EoC5BiABEoC1HAcgAggIEYC9FwcLAgISfR0OEoCxDhKAtRKAhR0OCB0OCAABHRIxEYDFBCABCBwQ
BwYdEjEdHBKAwRIxCB0SMQYAAR0OEhUEBwEdHAogBgEIDg4OCBACCCAFAQgODg4IBCABAg4NBwYI
CB0SMRIxCB0SMQ0BAAhWYWxpZGF0ZQAABSABAR0OOgEABQAAAAdDb2x1bW5zDElucHV0Q3VsdHVy
ZQdPcHRpb25zDU91dHB1dEN1bHR1cmUGRm9ybWF0AAAgAQAbU3BlY2lmeSBvdXRwdXQgZGF0ZSBm
b3JtYXQuAAALAQAGT3V0cHV0AAAJAQAETm9uZQAABiADAQ4CAhoBABNHZXREYXRlUGFyc2VPcHRp
b25zAQAAACABABtTcGVjaWZ5IGRhdGUgcGFyc2Ugb3B0aW9ucy4AAAoBAAVJbnB1dAAAEAEAC0dl
dEN1bHR1cmVzAAAlAQAgU2VsZWN0IGlucHV0IGRhdGUgcGFyc2UgY3VsdHVyZS4AACcBACJTZWxl
Y3Qgb3V0cHV0IGRhdGUgZm9ybWF0IGN1bHR1cmUuAAAFIAIBDgIGAQAAAAAALgEAKVNlbGVjdCBp
bnB1dCBjb2x1bW5zIHlvdSB3YW50IHRvIHByb2Nlc3MuAAAEIAEBCAgBAAgAAAAAAB4BAAEAVAIW
V3JhcE5vbkV4Y2VwdGlvblRocm93cwFHAQAaLk5FVEZyYW1ld29yayxWZXJzaW9uPXY0LjABAFQO
FEZyYW1ld29ya0Rpc3BsYXlOYW1lEC5ORVQgRnJhbWV3b3JrIDQAAAD0RwAAAAAAAAAAAAAOSAAA
ACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAAAAAAAAAAAAAAABfQ29yRGxsTWFpbgBtc2NvcmVl
LmRsbAAAAAAA/yUAIAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAEAAAABgA
AIAAAAAAAAAAAAAAAAAAAAEAAQAAADAAAIAAAAAAAAAAAAAAAAAAAAEAAAAAAEgAAABYYAAA7AIA
AAAAAAAAAAAA7AI0AAAAVgBTAF8AVgBFAFIAUwBJAE8ATgBfAEkATgBGAE8AAAAAAL0E7/4AAAEA
AAAAAAAAAAAAAAAAAAAAAD8AAAAAAAAABAAAAAIAAAAAAAAAAAAAAAAAAABEAAAAAQBWAGEAcgBG
AGkAbABlAEkAbgBmAG8AAAAAACQABAAAAFQAcgBhAG4AcwBsAGEAdABpAG8AbgAAAAAAAACwBEwC
AAABAFMAdAByAGkAbgBnAEYAaQBsAGUASQBuAGYAbwAAACgCAAABADAAMAAwADAAMAA0AGIAMAAA
ACwAAgABAEYAaQBsAGUARABlAHMAYwByAGkAcAB0AGkAbwBuAAAAAAAgAAAAMAAIAAEARgBpAGwA
ZQBWAGUAcgBzAGkAbwBuAAAAAAAwAC4AMAAuADAALgAwAAAAjAA1AAEASQBuAHQAZQByAG4AYQBs
AE4AYQBtAGUAAABTAGMAcgBpAHAAdABDAG8AbQBwAG8AbgBlAG4AdABfADYANABkADUAMwBjAGEA
NgA0ADIAYwBkADQAOQA5ADMAYgA2ADIANgAzADEAMAAxAGIAMAA3ADIAYgAwADEANgAuAGQAbABs
AAAAAAAoAAIAAQBMAGUAZwBhAGwAQwBvAHAAeQByAGkAZwBoAHQAAAAgAAAAlAA1AAEATwByAGkA
ZwBpAG4AYQBsAEYAaQBsAGUAbgBhAG0AZQAAAFMAYwByAGkAcAB0AEMAbwBtAHAAbwBuAGUAbgB0
AF8ANgA0AGQANQAzAGMAYQA2ADQAMgBjAGQANAA5ADkAMwBiADYAMgA2ADMAMQAwADEAYgAwADcA
MgBiADAAMQA2AC4AZABsAGwAAAAAADQACAABAFAAcgBvAGQAdQBjAHQAVgBlAHIAcwBpAG8AbgAA
ADAALgAwAC4AMAAuADAAAAA4AAgAAQBBAHMAcwBlAG0AYgBsAHkAIABWAGUAcgBzAGkAbwBuAAAA
MAAuADAALgAwAC4AMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAwAAAAgOAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=]]></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_64d53ca642cd4993b6263101b072b016</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><inputs><input id="14" name="Input" hasSideEffects="true"></input></inputs><outputs><output id="16" name="Output" synchronousInputId="14"><externalMetadataColumns /></output></outputs></component>