<component id="2" name="Dictionary" componentClassID="Microsoft.ManagedComponentHost" description="Executes a custom script" localeId="1033" version="11" 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-2010 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 Microsoft.SqlServer.Dts.Runtime.Wrapper
Imports CozyRoc.SqlServer.SSIS
Imports CozyRoc.SqlServer.SSIS.Attributes


<ValidateProperties("Validate")> _
<FilterProperties("GetProperties")> _
<SortProperties(New String() { _
    "KeyColumn", "ValueColumn", _
    "IsResultCache", "ResultVariable", "ResultCache"})> _
<Microsoft.SqlServer.Dts.Pipeline.SSISScriptComponentEntryPointAttribute> _
<CLSCompliant(False)> _
Public Class ScriptMain
    Inherits UserComponent


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Public Overrides Sub Input_ProcessInputRow(ByVal Row As InputBuffer)
        Dim key As Object = Row.Buffer(m_keyIndex)

        Dim keyArray As Byte() = TryCast(key, Byte())
        If Not keyArray Is Nothing Then
            ' Key value is byte array. Transform to base64.
            key = Convert.ToBase64String(keyArray)
        End If

        Try
            Call m_dictionary.Add(key, Row.Buffer(m_valueIndex))
        Catch ex As Exception
            Call FireError_(ex.Message)
        End Try
    End Sub ' Input_ProcessInputRow


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

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

        ' Find key column index.
        m_keyIndex = Me.HostComponent.BufferManager.FindColumnByLineageID( _
            input.Buffer, _
            input.InputColumnCollection(Me.KeyColumn).LineageID)

        ' Find value column index.
        m_valueIndex = Me.HostComponent.BufferManager.FindColumnByLineageID( _
            input.Buffer, _
            input.InputColumnCollection(Me.ValueColumn).LineageID)

        If Me.IsResultCache Then
            ' Acquire distributed cache.
            m_connection = CType( _
                Me.ComponentMetaData.RuntimeConnectionCollection("Cache").ConnectionManager.AcquireConnection(Nothing), _
                ICacheConnection)
            m_dictionary = CType(m_connection.Connect(), IDictionary)
        Else
            ' Setup dictionary object.
            Dim vars As IDTSVariables100
            Call Me.VariableDispenser.LockOneForWrite(Me.ResultVariable, vars)
            Try
                Try
                    m_dictionary = CType(vars(Me.ResultVariable).Value, IDictionary)
                Catch ex As Exception
                    ' Dictionary not yet initialized.
                    m_dictionary = New Hashtable()
                    vars(Me.ResultVariable).Value = m_dictionary
                End Try
            Finally
                Call vars.Unlock()
            End Try
        End If
    End Sub ' PreExecute


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

        m_keyIndex = -1
        m_valueIndex = -1
        m_dictionary = Nothing

        If Not m_connection Is Nothing Then
            Call m_connection.Close()
            m_connection = Nothing
        End If
    End Sub ' PostExecute


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

        Try
            If String.IsNullOrEmpty(Me.KeyColumn) Then
                Throw New Exception("Select key column.")
            ElseIf String.IsNullOrEmpty(Me.ValueColumn) Then
                Throw New Exception("Select value column.")
            ElseIf String.IsNullOrEmpty(m_result) Then
                Throw New Exception("Select result.")
            Else
                Dim managedComponent As CManagedComponentWrapper = Me.ComponentMetaData.Instantiate()
                Dim input As IDTSInput100 = Me.ComponentMetaData.InputCollection(0)
                Dim virtInput As IDTSVirtualInput100 = input.GetVirtualInput()

                Call input.InputColumnCollection.RemoveAll()

                ' Setup selected key column.
                Dim keyColumn As IDTSInputColumn100 = managedComponent.SetUsageType( _
                    input.ID, _
                    virtInput, _
                    virtInput.VirtualInputColumnCollection(Me.KeyColumn).LineageID, _
                    DTSUsageType.UT_READONLY)

                ' Setup selected value column.
                Dim valueColumn As IDTSInputColumn100 = managedComponent.SetUsageType( _
                    input.ID, _
                    virtInput, _
                    virtInput.VirtualInputColumnCollection(Me.ValueColumn).LineageID, _
                    DTSUsageType.UT_READONLY)

                If Me.IsResultCache Then
                    Dim conn As IDTSRuntimeConnection100 = Me.ComponentMetaData.RuntimeConnectionCollection.[New]()
                    conn.Name = "Cache"
                    conn.ConnectionManagerID = Me.ResultCache
                Else
                    Call Me.ComponentMetaData.RuntimeConnectionCollection.RemoveAll()
                End If
            End If
        Catch ex As Exception
            result = False
            errMessage = ex.Message
        End Try

        Validate = result
    End Function    'Validate


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

        ' Base properties.
        Call result.Add("KeyColumn")
        Call result.Add("ValueColumn")
        Call result.Add("IsResultCache")

        Call result.Add(IIf(Me.IsResultCache, "ResultCache", "ResultVariable"))

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


#Region "Properties"
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Description("Select key column.")> _
    <Category("Input")> _
    <InputVirtualColumn()> _
    Public Property KeyColumn() As String
        Get
            KeyColumn = m_keyColumn
        End Get
        Set(ByVal value As String)
            m_keyColumn = value
        End Set
    End Property    ' KeyColumn


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Description("Select value column.")> _
    <Category("Input")> _
    <InputVirtualColumn()> _
    Public Property ValueColumn() As String
        Get
            ValueColumn = m_valueColumn
        End Get
        Set(ByVal value As String)
            m_valueColumn = value
        End Set
    End Property    ' ValueColumn


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Description("Specifies if Result property references Distributed Cache.")> _
    <Category("Result")> _
    <RefreshProperties(RefreshProperties.All)> _
    Public Property IsResultCache() As Boolean
        Get
            IsResultCache = m_isResultCache
        End Get
        Set(ByVal value As Boolean)
            m_isResultCache = value
            m_result = String.Empty
        End Set
    End Property    ' IsResultCache


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Description("Select variable with dictionary object.")> _
    <Category("Result")> _
    <Variable()> _
    Public Property ResultVariable() As String
        Get
            ResultVariable = m_result
        End Get
        Set(ByVal value As String)
            m_result = value
        End Set
    End Property    ' ResultVariable


    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    <Description("Select Distributed Cache.")> _
    <Category("Result")> _
    <Connection("CacheConnectionType")> _
    Public Property ResultCache() As String
        Get
            ResultCache = m_result
        End Get
        Set(ByVal value As String)
            m_result = value
        End Set
    End Property    ' ResultCache
#End Region ' Properties


#Region "Internals"
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    Private ReadOnly Property CacheConnectionType() As String()
        Get
            CacheConnectionType = New String() {"CACHE+"}
        End Get
    End Property    ' CacheConnectionType


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


#Region "Attributes"
    Private m_keyColumn As String
    Private m_valueColumn As String
    Private m_isResultCache As Boolean
    Private m_result As String

    Private m_keyIndex As Integer
    Private m_valueIndex As Integer
    Private m_dictionary As IDictionary
    Private m_connection As ICacheConnection
#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_6c68f9432c9a4de8b29402396d88cf94.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>{FB09872B-1ED1-4882-8AB1-06FCE4AAA02E}</ProjectGuid>
    <OutputType>Library</OutputType>
    <AppDesignerFolder>My Project</AppDesignerFolder>
    <RootNamespace>ScriptComponent_6c68f9432c9a4de8b29402396d88cf94</RootNamespace>
    <AssemblyName>ScriptComponent_6c68f9432c9a4de8b29402396d88cf94</AssemblyName>
    <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
    <FileAlignment>512</FileAlignment>
    <OptionCompare>Binary</OptionCompare>
    <OptionExplicit>On</OptionExplicit>
    <OptionStrict>On</OptionStrict>
    <TargetFrameworkProfile>
    </TargetFrameworkProfile>
  </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.2017, Version=1.0.0.0, Culture=neutral, PublicKeyToken=16cf490bb80c34ea, processorArchitecture=MSIL">
      <SpecificVersion>False</SpecificVersion>
      <HintPath>C:\Program Files (x86)\Microsoft SQL Server\140\SDK\Assemblies\CozyRoc.SSISPlus.2017.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=14.0.0.0, Culture=Neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="Microsoft.SqlServer.DTSRuntimeWrap, Version=14.0.0.0, Culture=Neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="Microsoft.SqlServer.DTSPipelineWrap, Version=14.0.0.0, Culture=Neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="Microsoft.SqlServer.PipelineHost, Version=14.0.0.0, Culture=Neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="System">
      <Private>False</Private>
    </Reference>
    <Reference Include="System.Data">
      <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_SC140</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:CodeName>ScriptComponent_6c68f9432c9a4de8b29402396d88cf94</msb:CodeName>
    <msb:Language>msBuild</msb:Language>
    <msb:DisplayName>ScriptComponent_6c68f9432c9a4de8b29402396d88cf94</msb:DisplayName>
    <msb:ProjectId>{863728BF-B872-40DB-9C83-ACDAEDF3BDCF}</msb:ProjectId>
  </msb:PropertyGroup>
  <msb:ItemGroup>
    <msb:Project Include="ScriptComponent_6c68f9432c9a4de8b29402396d88cf94.vbproj" />
    <msb:File Include="ComponentWrapper.vb" />
    <msb:File Include="ScriptMain.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_6c68f9432c9a4de8b29402396d88cf94.dll]]></arrayElement><arrayElement dataType="System.String"><![CDATA[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
AABGA/INQQISADQmAAAAAEYDEw5BAhMANiYAAAAABhg6C14CFABFJgAAAAAGGDoLXgIVAFQmAAAA
AMYCgQyNARYAYiYAAAAAxgILA7gAFwBqJgAAAACDAEQEZQIXAHYmAAAAAMYCPweJABcAgCYAAAAA
EQCAAmoCFwCgJgAAAAABAGwCcgIYAKkmAAAAAAYYOgsGABkAtCYAAAAAAwjyAlcAGQDoJgAAAAAG
GDoLBgAZAAAAAQAtDgAAAQAjAwAAAQAMBwAAAQAMBwAAAQAMBwAAAQAMBwAAAQAMBwAAAQAuAwAA
AQCADQAAAgBCAgAAAwDqDQAABAAcCgAABQA/CQAAAQBLAgAAAgDnAwAAAwAcCgAABAA/CQAAAQAc
CgAAAQAtDgAAAQCADQAAAQCADQAAAQAvCQAAAQACAwAAAQACAwkAOgsBABEAOgsGABkAOgsKACkA
OgsQADEAOgsVAEEAOgsbAFkAOgsGAGEAOgsGAGkAOgsGAIEAOgshAJEAOgspAKEAOgsQAKkAOgsQ
ALEAOgsQALkAOgsuAMEAOgsGAMkAOgspAAEBOgsQAAkBOgsQABEBOgsGACEBOgs0ACkBOgsGADEB
OgsQAEkAOgsGAFEAOgsGAAwAOgsGABQAOgsGABwAOgsGACQAOgsGAAwA8gJXABQA8gJXABwA8gJX
ACQA8gJXADkB8AlkAEkBzgdqAGEB/QZvAGkBMAd3ANEA3wJ9AHEBIAuDAOEAFwOJAHEBDguNAEEB
0gYGAEEBngKaAHkB4QigAIEBzgemAFkBeA2sAJEBOQqyAOkA8Am4AOkAhgi8AKEBzgfCAKkBBgK4
AJkBFALJAHkBwQjPALEBzgfVALkBIwrcAMEBBgniANkAGw3nAEEB1grrAMkBjATxAPEAzgf5ANEB
6QbnANkBOgsGANEB8wYAAfEASAcGAEEB3QYGANkAXAQGAOEBng4QAeEAOgsQAHkBawQVAekA2g0b
AaEBjwcGAOkA/wG4APkAoAggAfEBzgcmAfkBBgK4AAECHwQtAbEBDw46AbkB3gMQALkBKgIQALEB
jwcGABECOgsGABEC3wJAARkCEgdFAYkAzANMARECfQ5UAeEBpg5nAXkBBAtvATkBOgt6ATECKQ6J
ATECIw2JAVkBOgsGAHEAOgsGAHEAgQyNAXEACwO4AHEAPweJADkC4wKaAUQABQ6xAUwA6QZXAEwA
8wbIAUwAOgsGACkAYwATBC4ACwCgAi4AEwCpAi4AGwDIAi4AIwDRAkAAOwAbA0AAMwAgA0MAKwAv
A0MAMwAgA0kAYwAkBGMAKwAvA2MAMwAgA2kAYwA4BIAAOwAbA4MAQwAbA4MASwAbA4MAKwAvA4kA
YwBFBKAAOwAbA6MAawBIA6MAcwBWA6MAewBpA6MAgwAbA6MAiwApA6kAkwBZBKkAmwBxBKkAowAb
A8AAOwAbA8MAiwApA8kAkwB8BMkAmwBxBMkAowAbA+AAOwAbA+MAiwApA+kAkwCWBOkAmwDWBOkA
qwAgAwkBkwDiBAkBmwDWBAkBswAbAykBkwAPBSkBmwDWBCkBuwAuBUMBMwAgA0MBUwCxA2MBMwAg
A2MBWwApA2AEiwApA4AEiwApA6AEMwAgA6AEOwAbA8AEMwAgA8AEOwAbA+AEMwAgA+AEOwAbAwAF
MwAgAwAFOwAbAyAFOwAbA0AFOwAbA2AFOwAbA2AFMwAgA4AFOwAbA6AFOwAbA6AFMwAgA1wAkQAF
AV8BYwFqAZIBpQEEAAEABQAFAAYACwALAA0AAAD7CnoCAABuCH8CAADRCoQCAACKC4kCAABGCI4C
AAAaCI4CAABsA5ICAAChA44CAAB+A44CAAAwBJYCAACMDJYCAACjDJYCAAD2ApsCAgAEAAMAAgAF
AAUAAgAGAAcAAgAHAAkAAgAOAAsAAQAPAAsAAgAQAA0AAQARAA0AAgASAA8AAQATAA8AAgAUABEA
AQAVABEAAgAWABMAAQAXABMAAgAYABUAAgAbABcAAgAcABkAAgAsABsAOwBCAEkAUAB0AFwBlwGq
AbkBwAEEgAAAAAAAAAAAAAAAAAAAAACvAQAABAAAAAAAAAAAAAAAzgHAAgAAAAAEAAAAAAAAAAAA
AADOAdcHAAAAAAoAAAAAAAAAAAAAANcByQIAAAAAAQAAAAAAAAAAAAAA4AHgAQAAAAAOAAAAAAAA
AAAAAADpAYoNAAAAAA4AAAAAAAAAAAAAAOkBbAkAAAAADgAAAAAAAAAAAAAA6QFJCQAAAAAOAAAA
AAAAAAAAAADpAbkNAAAAAAoABAALAAQAAAAQABYAagIAABAAUwBqAgAAAABVAGoCwQCgAcEAwwEA
AABJRFRTQ29tcG9uZW50TWV0YURhdGExMDAASURUU1ZhcmlhYmxlMTAwAElEVFNJbnB1dENvbHVt
bjEwMABJRFRTVmlydHVhbElucHV0Q29sdW1uMTAwAElEVFNJbnB1dENvbHVtbkNvbGxlY3Rpb24x
MDAASURUU1ZpcnR1YWxJbnB1dENvbHVtbkNvbGxlY3Rpb24xMDAASURUU1J1bnRpbWVDb25uZWN0
aW9uQ29sbGVjdGlvbjEwMABJRFRTSW5wdXRDb2xsZWN0aW9uMTAwAElEVFNSdW50aW1lQ29ubmVj
dGlvbjEwMABJRFRTQ29ubmVjdGlvbk1hbmFnZXIxMDAASURUU0J1ZmZlck1hbmFnZXIxMDAASURU
U1ZhcmlhYmxlRGlzcGVuc2VyMTAwAElEVFNWYXJpYWJsZXMxMDAASURUU0Rlc2lnbnRpbWVDb21w
b25lbnQxMDAASURUU0lucHV0MTAwAElEVFNWaXJ0dWFsSW5wdXQxMDAAQ29udGV4dFZhbHVlYDEA
VGhyZWFkU2FmZU9iamVjdFByb3ZpZGVyYDEASW50MzIAU2NyaXB0Q29tcG9uZW50XzZjNjhmOTQz
MmM5YTRkZThiMjk0MDIzOTZkODhjZjk0AENvenlSb2MuU1NJU1BsdXMuMjAxNwA8TW9kdWxlPgBn
ZXRfSUQAZ2V0X0xpbmVhZ2VJRABGaW5kQ29sdW1uQnlMaW5lYWdlSUQAc2V0X0Nvbm5lY3Rpb25N
YW5hZ2VySUQAT2JqZWN0SUQASW5wdXRJRABDb3p5Um9jLlNxbFNlcnZlci5TU0lTAFQARGlzcG9z
ZV9fSW5zdGFuY2VfXwBDcmVhdGVfX0luc3RhbmNlX18ARmlyZUVycm9yXwBnZXRfQ29tcG9uZW50
TWV0YURhdGEAUHJvamVjdERhdGEAbXNjb3JsaWIATWljcm9zb2Z0LlZpc3VhbEJhc2ljAEFkZABD
cmVhdGVJbnN0YW5jZQBnZXRfR2V0SW5zdGFuY2UAaW5zdGFuY2UAR2V0SGFzaENvZGUAZ2V0X01l
c3NhZ2UAZXJyTWVzc2FnZQBtZXNzYWdlAGdldF9SZXN1bHRDYWNoZQBzZXRfUmVzdWx0Q2FjaGUA
Z2V0X0lzUmVzdWx0Q2FjaGUAc2V0X0lzUmVzdWx0Q2FjaGUAbV9pc1Jlc3VsdENhY2hlAGdldF9S
ZXN1bHRWYXJpYWJsZQBzZXRfUmVzdWx0VmFyaWFibGUASGFzaHRhYmxlAFJ1bnRpbWVUeXBlSGFu
ZGxlAEdldFR5cGVGcm9tSGFuZGxlAHNldF9OYW1lAElucHV0TmFtZQBNaWNyb3NvZnQuU3FsU2Vy
dmVyLkR0cy5QaXBlbGluZQBEVFNVc2FnZVR5cGUAU2V0VXNhZ2VUeXBlAGdldF9DYWNoZUNvbm5l
Y3Rpb25UeXBlAEdldFR5cGUAQXBwbGljYXRpb25CYXNlAENsb3NlAFZhbGlkYXRlAEluc3RhbnRp
YXRlAEVkaXRvckJyb3dzYWJsZVN0YXRlAExvY2tPbmVGb3JXcml0ZQBIZWxwS2V5d29yZEF0dHJp
YnV0ZQBHZW5lcmF0ZWRDb2RlQXR0cmlidXRlAERlYnVnZ2FibGVBdHRyaWJ1dGUAVmFyaWFibGVB
dHRyaWJ1dGUARWRpdG9yQnJvd3NhYmxlQXR0cmlidXRlAENvbVZpc2libGVBdHRyaWJ1dGUAU3Rh
bmRhcmRNb2R1bGVBdHRyaWJ1dGUASGlkZU1vZHVsZU5hbWVBdHRyaWJ1dGUAVGFyZ2V0RnJhbWV3
b3JrQXR0cmlidXRlAERlYnVnZ2VySGlkZGVuQXR0cmlidXRlAElucHV0VmlydHVhbENvbHVtbkF0
dHJpYnV0ZQBNeUdyb3VwQ29sbGVjdGlvbkF0dHJpYnV0ZQBDb25uZWN0aW9uQXR0cmlidXRlAERl
c2NyaXB0aW9uQXR0cmlidXRlAFZhbGlkYXRlUHJvcGVydGllc0F0dHJpYnV0ZQBSZWZyZXNoUHJv
cGVydGllc0F0dHJpYnV0ZQBGaWx0ZXJQcm9wZXJ0aWVzQXR0cmlidXRlAFNvcnRQcm9wZXJ0aWVz
QXR0cmlidXRlAENvbXBpbGF0aW9uUmVsYXhhdGlvbnNBdHRyaWJ1dGUAQ0xTQ29tcGxpYW50QXR0
cmlidXRlAFNTSVNTY3JpcHRDb21wb25lbnRFbnRyeVBvaW50QXR0cmlidXRlAENhdGVnb3J5QXR0
cmlidXRlAFJ1bnRpbWVDb21wYXRpYmlsaXR5QXR0cmlidXRlAFByZUV4ZWN1dGUAUG9zdEV4ZWN1
dGUAZ2V0X1ZhbHVlAHNldF9WYWx1ZQBHZXRPYmplY3RWYWx1ZQB2YWx1ZQBJSWYAU3lzdGVtLlJ1
bnRpbWUuVmVyc2lvbmluZwBUb0Jhc2U2NFN0cmluZwBUb1N0cmluZwBVbmxvY2sATWljcm9zb2Z0
LlZpc3VhbEJhc2ljLk15U2VydmljZXMuSW50ZXJuYWwAU3lzdGVtLkNvbXBvbmVudE1vZGVsAFJl
bW92ZUFsbABTY3JpcHRDb21wb25lbnRfNmM2OGY5NDMyYzlhNGRlOGIyOTQwMjM5NmQ4OGNmOTQu
ZGxsAGdldF9JdGVtAFN5c3RlbQBTeXN0ZW0uQ29tcG9uZW50TW9kZWwuRGVzaWduAFNjcmlwdE1h
aW4AZ2V0X1ZhbHVlQ29sdW1uAHNldF9WYWx1ZUNvbHVtbgBtX3ZhbHVlQ29sdW1uAGdldF9LZXlD
b2x1bW4Ac2V0X0tleUNvbHVtbgBtX2tleUNvbHVtbgBnZXRfQXBwbGljYXRpb24ATXlBcHBsaWNh
dGlvbgBJbnRlcmFjdGlvbgBnZXRfSW5wdXRDb2x1bW5Db2xsZWN0aW9uAGdldF9WaXJ0dWFsSW5w
dXRDb2x1bW5Db2xsZWN0aW9uAGdldF9SdW50aW1lQ29ubmVjdGlvbkNvbGxlY3Rpb24AZ2V0X0lu
cHV0Q29sbGVjdGlvbgBJQ2FjaGVDb25uZWN0aW9uAEFjcXVpcmVDb25uZWN0aW9uAG1fY29ubmVj
dGlvbgBFeGNlcHRpb24AbwBPdXRwdXROYW1lTWFwAE91dHB1dE1hcABNaWNyb3NvZnQuU3FsU2Vy
dmVyLkRUU1J1bnRpbWVXcmFwAE1pY3Jvc29mdC5TcWxTZXJ2ZXIuRFRTUGlwZWxpbmVXcmFwAG1f
QXBwT2JqZWN0UHJvdmlkZXIAbV9Vc2VyT2JqZWN0UHJvdmlkZXIAbV9Db21wdXRlck9iamVjdFBy
b3ZpZGVyAG1fTXlXZWJTZXJ2aWNlc09iamVjdFByb3ZpZGVyAGdldF9CdWZmZXIAUGlwZWxpbmVC
dWZmZXIAU2NyaXB0QnVmZmVyAElucHV0QnVmZmVyAGdldF9Db25uZWN0aW9uTWFuYWdlcgBnZXRf
QnVmZmVyTWFuYWdlcgBTeXN0ZW0uQ29kZURvbS5Db21waWxlcgBNaWNyb3NvZnQuU3FsU2VydmVy
LkR0cy5SdW50aW1lLldyYXBwZXIATWljcm9zb2Z0LlNxbFNlcnZlci5EdHMuUGlwZWxpbmUuV3Jh
cHBlcgBDTWFuYWdlZENvbXBvbmVudFdyYXBwZXIAZ2V0X1VzZXIAZ2V0X1ZhcmlhYmxlRGlzcGVu
c2VyAGdldF9Db21wdXRlcgBNeUNvbXB1dGVyAEZpcmVFcnJvcgBDbGVhclByb2plY3RFcnJvcgBT
ZXRQcm9qZWN0RXJyb3IAQWN0aXZhdG9yAC5jdG9yAC5jY3RvcgBTeXN0ZW0uRGlhZ25vc3RpY3MA
TWljcm9zb2Z0LlZpc3VhbEJhc2ljLkRldmljZXMAZ2V0X1dlYlNlcnZpY2VzAE15V2ViU2Vydmlj
ZXMATWljcm9zb2Z0LlZpc3VhbEJhc2ljLkFwcGxpY2F0aW9uU2VydmljZXMAU3lzdGVtLlJ1bnRp
bWUuSW50ZXJvcFNlcnZpY2VzAE1pY3Jvc29mdC5WaXN1YWxCYXNpYy5Db21waWxlclNlcnZpY2Vz
AFN5c3RlbS5SdW50aW1lLkNvbXBpbGVyU2VydmljZXMARGVidWdnaW5nTW9kZXMAUmVmcmVzaFBy
b3BlcnRpZXMAR2V0UHJvcGVydGllcwBWYXJpYWJsZXMAQ296eVJvYy5TcWxTZXJ2ZXIuU1NJUy5B
dHRyaWJ1dGVzAEVxdWFscwBnZXRfU3RhdGljSW5wdXRDb2x1bW5zAGdldF9TdGF0aWNPdXRwdXRD
b2x1bW5zAFN5c3RlbS5Db2xsZWN0aW9ucwBDb25uZWN0aW9ucwBSdW50aW1lSGVscGVycwBTY3Jp
cHRCdWZmZXJQbHVzAFNjcmlwdENvbXBvbmVudFBsdXMAT2JqZWN0AE15UHJvamVjdABDb25uZWN0
AEVuZE9mUm93c2V0AG1fcmVzdWx0AFBpcGVsaW5lQ29tcG9uZW50AFVzZXJDb21wb25lbnQAUGFy
ZW50Q29tcG9uZW50AFNjcmlwdENvbXBvbmVudABnZXRfSG9zdENvbXBvbmVudABNaWNyb3NvZnQu
U3FsU2VydmVyLlR4U2NyaXB0AENvbnZlcnQAQXJyYXlMaXN0AE1pY3Jvc29mdC5TcWxTZXJ2ZXIu
UGlwZWxpbmVIb3N0AEdldFZpcnR1YWxJbnB1dABJc0lucHV0AElucHV0X1Byb2Nlc3NJbnB1dABt
X0NvbnRleHQATmV3AElucHV0X1Byb2Nlc3NJbnB1dFJvdwBOZXh0Um93AG1fdmFsdWVJbmRleABt
X2tleUluZGV4AFNjcmlwdENvbXBvbmVudF82YzY4Zjk0MzJjOWE0ZGU4YjI5NDAyMzk2ZDg4Y2Y5
NC5NeQBUb0FycmF5AElEaWN0aW9uYXJ5AG1fZGljdGlvbmFyeQBJc051bGxPckVtcHR5AAALQwBh
AGMAaABlAAAlUwBlAGwAZQBjAHQAIABrAGUAeQAgAGMAbwBsAHUAbQBuAC4AAClTAGUAbABlAGMA
dAAgAHYAYQBsAHUAZQAgAGMAbwBsAHUAbQBuAC4AAB1TAGUAbABlAGMAdAAgAHIAZQBzAHUAbAB0
AC4AABNLAGUAeQBDAG8AbAB1AG0AbgAAF1YAYQBsAHUAZQBDAG8AbAB1AG0AbgAAG0kAcwBSAGUA
cwB1AGwAdABDAGEAYwBoAGUAABdSAGUAcwB1AGwAdABDAGEAYwBoAGUAAB1SAGUAcwB1AGwAdABW
AGEAcgBpAGEAYgBsAGUAAA1DAEEAQwBIAEUAKwAALUQAaQBjAHQAaQBvAG4AYQByAHkAIABEAGUA
cwB0AGkAbgBhAHQAaQBvAG4AAAtJAG4AcAB1AHQAAAAAAAPq1tU+5NFAt12dClnE9fAABCABAQgD
IAABBSABARERBCABAQ4FIAIBDg4FIAEBER0HIAQBDg4ODgQgAQECBSABAR0OBiABARGAjQYVEiwB
EgwGFRIsARIIBhUSLAESPQYVEiwBEigEIAATAAcHAxwdBRJxBSAAEoClBCABHAgEAAEcHAIdBQUA
AQ4dBQUgAgEcHAUAAQEScQMgAA4DAAABCAcDEnUSeRJxBSAAEoC9BSAAEoDBBSABEnUcBSAAEoDJ
BSAAEoDNAyAACAUgABKA0QYgARKA1RwFIAIICAgFIAASgNkGIAESgN0cBSAAEoDhBCABHBwDIAAc
BSAAEoDlByACAQ4QEnkGIAESgOkcBCABARwKBwUCAhJ1En0ScQQAAQIOBSAAEoD1BCAAEn0FIAAS
gPkGIAESgP0cDCAEEoDVCBJ9CBGBBQUgABKA3QQgAQgcBgADHAIcHAcAARJFEYERByABEoEVEkUC
HQ4DBwEOAwcBAgIGDgQHAR0OCiAGAQgODg4IEAIOIAUBEoChCAISgKUSgKkDIAACBCABAhwEBwEe
AAIeAAUQAQAeAAQKAR4ABAcBEwAGFRIsARMABwYVEk0BEwAGFRJNARMAAhMABAoBEwAFIAEBEwAI
t3pcVhk04IkIsD9ffxHVCjoIFs9JC7gMNOoIiYRdzYCAzJEHBhUSLAESDAcGFRIsARIIBwYVEiwB
Ej0HBhUSLAESKAIGAgIGCAMGEmkDBhJtAwYSIAMGEiQEBhKAoQQAABIMBAAAEggEAAASPQQAABIo
BSABARIYBSABAhAOBCAAHQ4LIAQBCA4SgKUSgKkGIAEBEoChBCAAEkUHEAEBHgAeAAcwAQEBEB4A
BAgAEgwECAASCAQIABI9BAgAEigDKAAOAygAAgQoAB0OBCgAEwAIAQAIAAAAAAAeAQABAFQCFldy
YXBOb25FeGNlcHRpb25UaHJvd3MBCAEAAgAAAAAASQEAGi5ORVRGcmFtZXdvcmssVmVyc2lvbj12
NC41AQBUDhRGcmFtZXdvcmtEaXNwbGF5TmFtZRIuTkVUIEZyYW1ld29yayA0LjUEAQAAAAgBAAEA
AAAAAAUBAAAAABgBAApNeVRlbXBsYXRlCDExLjAuMC4wAAANAQAIVmFsaWRhdGUAABIBAA1HZXRQ
cm9wZXJ0aWVzAABHAQAFAAAACUtleUNvbHVtbgtWYWx1ZUNvbHVtbg1Jc1Jlc3VsdENhY2hlDlJl
c3VsdFZhcmlhYmxlC1Jlc3VsdENhY2hlAABhAQA0U3lzdGVtLldlYi5TZXJ2aWNlcy5Qcm90b2Nv
bHMuU29hcEh0dHBDbGllbnRQcm90b2NvbBJDcmVhdGVfX0luc3RhbmNlX18TRGlzcG9zZV9fSW5z
dGFuY2VfXwAAABABAAtNeS5Db21wdXRlcgAAEwEADk15LkFwcGxpY2F0aW9uAAAMAQAHTXkuVXNl
cgAAEwEADk15LldlYlNlcnZpY2VzAAAXAQASU2VsZWN0IGtleSBjb2x1bW4uAAAKAQAFSW5wdXQA
ABkBABRTZWxlY3QgdmFsdWUgY29sdW1uLgAAPwEAOlNwZWNpZmllcyBpZiBSZXN1bHQgcHJvcGVy
dHkgcmVmZXJlbmNlcyBEaXN0cmlidXRlZCBDYWNoZS4AAAsBAAZSZXN1bHQAACwBACdTZWxlY3Qg
dmFyaWFibGUgd2l0aCBkaWN0aW9uYXJ5IG9iamVjdC4AAB4BABlTZWxlY3QgRGlzdHJpYnV0ZWQg
Q2FjaGUuAAAYAQATQ2FjaGVDb25uZWN0aW9uVHlwZQAAAJhIAAAAAAAAAAAAALJIAAAAIAAAAAAA
AAAAAAAAAAAAAAAAAAAAAACkSAAAAAAAAAAAAAAAAF9Db3JEbGxNYWluAG1zY29yZWUuZGxsAAAA
AAD/JQAgABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAEAAAABgA
AIAAAAAAAAAAAAAAAAAAAAEAAQAAADAAAIAAAAAAAAAAAAAAAAAAAAEAAAAAAEgAAABYYAAA7AIA
AAAAAAAAAAAA7AI0AAAAVgBTAF8AVgBFAFIAUwBJAE8ATgBfAEkATgBGAE8AAAAAAL0E7/4AAAEA
AAAAAAAAAAAAAAAAAAAAAD8AAAAAAAAABAAAAAIAAAAAAAAAAAAAAAAAAABEAAAAAQBWAGEAcgBG
AGkAbABlAEkAbgBmAG8AAAAAACQABAAAAFQAcgBhAG4AcwBsAGEAdABpAG8AbgAAAAAAAACwBEwC
AAABAFMAdAByAGkAbgBnAEYAaQBsAGUASQBuAGYAbwAAACgCAAABADAAMAAwADAAMAA0AGIAMAAA
ACwAAgABAEYAaQBsAGUARABlAHMAYwByAGkAcAB0AGkAbwBuAAAAAAAgAAAAMAAIAAEARgBpAGwA
ZQBWAGUAcgBzAGkAbwBuAAAAAAAwAC4AMAAuADAALgAwAAAAigA1AAEASQBuAHQAZQByAG4AYQBs
AE4AYQBtAGUAAABTAGMAcgBpAHAAdABDAG8AbQBwAG8AbgBlAG4AdABfADYAYwA2ADgAZgA5ADQA
MwAyAGMAOQBhADQAZABlADgAYgAyADkANAAwADIAMwA5ADYAZAA4ADgAYwBmADkANAAuAGQAbABs
AAAAAAAoAAIAAQBMAGUAZwBhAGwAQwBvAHAAeQByAGkAZwBoAHQAAAAgAAAAkgA1AAEATwByAGkA
ZwBpAG4AYQBsAEYAaQBsAGUAbgBhAG0AZQAAAFMAYwByAGkAcAB0AEMAbwBtAHAAbwBuAGUAbgB0
AF8ANgBjADYAOABmADkANAAzADIAYwA5AGEANABkAGUAOABiADIAOQA0ADAAMgAzADkANgBkADgA
OABjAGYAOQA0AC4AZABsAGwAAAAAADQACAABAFAAcgBvAGQAdQBjAHQAVgBlAHIAcwBpAG8AbgAA
ADAALgAwAC4AMAAuADAAAAA4AAgAAQBBAHMAcwBlAG0AYgBsAHkAIABWAGUAcgBzAGkAbwBuAAAA
MAAuADAALgAwAC4AMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAwAAADEOAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=]]></arrayElement></arrayElements></property><property id="5" 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_6c68f9432c9a4de8b29402396d88cf94</property><property id="6" 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><property id="12" name="UserComponentTypeName" dataType="System.String">CozyRoc.ScriptComponentHostPlus</property></properties><inputs><input id="14" name="Input" hasSideEffects="true"></input></inputs></component>