<?xml version="1.0"?>
<ScriptProject Name="ScriptTask_d1fb03e104784818ac3fd04a2db4a9c7" VSTAMajorVersion="3" VSTAMinorVersion="0" Language="VisualBasic">
  <ProjectItem Name="ScriptMain.vb" Encoding="UTF8">
<![CDATA[' Microsoft SQL Server Integration Services Script Task
'
' Copyright (c) 2007 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.IO
Imports System.Text
Imports System.Collections
Imports System.ComponentModel
Imports System.Windows.Forms.Design
Imports System.Drawing.Design
Imports System.Net
Imports System.Security.Cryptography.X509Certificates

Imports Microsoft.SqlServer.Dts.Runtime
Imports CozyRoc.SqlServer.SSIS.Attributes


'
' ScriptMain
'
<SortProperties(New String() {"FtpUrl", "Username", "Password", "Action", "Local", "Remote", "RenameTo"})> _
<FilterProperties("GetProperties")> _
<ValidateProperties("Validate")> _
<Microsoft.SqlServer.Dts.Tasks.ScriptTask.SSISScriptTaskEntryPointAttribute> _
<System.CLSCompliantAttribute(False)> _
Partial Public Class ScriptMain
	Inherits Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTARTScriptObjectModelBase

	Enum ScriptResults
		Success = Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Success
		Failure = Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Failure
	End Enum
    '
    ' Consts
    '
    Private Class Consts
        Public Shared ActionUpload As String = "Upload file"
        Public Shared ActionDownload As String = "Download file"
        Public Shared ActionMkDir As String = "Create remote directory"
        Public Shared ActionRmDir As String = "Remove remote directory"
        Public Shared ActionDelete As String = "Remove remote file"
        Public Shared ActionRename As String = "Rename remote file"

        Public Shared ActionTypes As Object() = New Object() { _
            ActionUpload, _
            ActionDownload, _
            ActionMkDir, _
            ActionRmDir, _
            ActionDelete, _
            ActionRename}
    End Class   ' Consts


    '
    ' TrustAllCertificatePolicy
    '
    Private Class TrustAllCertificatePolicy
        Implements ICertificatePolicy


        Public Sub TrustAllCertificatePolicy()
        End Sub ' TrustAllCertificatePolicy


        Public Function CheckValidationResult( _
            ByVal srvPoint As ServicePoint, _
            ByVal certificate As X509Certificate, _
            ByVal request As WebRequest, _
            ByVal certificateProblem As Integer) As Boolean Implements ICertificatePolicy.CheckValidationResult

            CheckValidationResult = True
        End Function    ' CheckValidationResult
    End Class   ' TrustAllCertificatePolicy


    Public Sub Main()
        Dim result As Integer
        Dim request As FtpWebRequest
        Dim response As FtpWebResponse
        Dim input As Stream
        Dim output As Stream
        Dim remote As String
        Dim fireAgain As Boolean

        result = ScriptResults.Success

        Try
            ' Setup to trust all server certificates.
            ServicePointManager.CertificatePolicy = New TrustAllCertificatePolicy()

            ' Setup action.
            Select Case Me.Action
                Case Consts.ActionUpload
                    ' Setup FTPS request.
                    request = CType(WebRequest.Create(Me.FtpUrl), FtpWebRequest)
                    Call SetupRequest_(request)
                    request.Method = WebRequestMethods.Ftp.UploadFile

                    input = New FileStream(Me.Local, FileMode.Open, FileAccess.Read)
                    output = request.GetRequestStream()

                    ' Upload file.
                    Try
                        Call TransferFile_(input, output)
                    Finally
                        input.Close()
                        output.Close()
                    End Try

                    response = CType(request.GetResponse(), FtpWebResponse)

                Case Consts.ActionDownload
                    ' Setup FTPS request.
                    request = CType(WebRequest.Create(Me.FtpUrl), FtpWebRequest)
                    Call SetupRequest_(request)
                    request.Method = WebRequestMethods.Ftp.DownloadFile

                    ' Get input.
                    response = CType(request.GetResponse(), FtpWebResponse)
                    input = response.GetResponseStream()

                    ' Get output.
                    If File.Exists(Me.Local) Then
                        ' File exists. Resume download.
                        request.ContentOffset = New FileInfo(Me.Local).Length
                        output = New FileStream(Me.Local, FileMode.Append, FileAccess.Write)
                    Else
                        output = New FileStream(Me.Local, FileMode.Create, FileAccess.Write)
                    End If

                    ' Download file.
                    Try
                        Call TransferFile_(input, output)
                    Finally
                        input.Close()
                        output.Close()
                    End Try

                Case Consts.ActionMkDir
                    ' Setup FTPS request.
                    request = CType(WebRequest.Create(GetRemote_()), FtpWebRequest)
                    Call SetupRequest_(request)
                    request.Method = WebRequestMethods.Ftp.MakeDirectory

                    response = CType(request.GetResponse(), FtpWebResponse)

                Case Consts.ActionRmDir
                    ' Setup FTPS request.
                    request = CType(WebRequest.Create(GetRemote_()), FtpWebRequest)
                    Call SetupRequest_(request)
                    request.Method = WebRequestMethods.Ftp.RemoveDirectory

                    response = CType(request.GetResponse(), FtpWebResponse)

                Case Consts.ActionDelete
                    ' Setup FTPS request.
                    request = CType(WebRequest.Create(GetRemote_()), FtpWebRequest)
                    Call SetupRequest_(request)
                    request.Method = WebRequestMethods.Ftp.DeleteFile

                    response = CType(request.GetResponse(), FtpWebResponse)

                Case Consts.ActionRename
                    ' Setup FTPS request.
                    request = CType(WebRequest.Create(GetRemote_()), FtpWebRequest)
                    Call SetupRequest_(request)
                    request.Method = WebRequestMethods.Ftp.MakeDirectory
                    request.RenameTo = Me.RenameTo

                    response = CType(request.GetResponse(), FtpWebResponse)

                Case Else
                    Throw New ArgumentException("Unhandled action type.")
            End Select

            ' Report response status description.
            Call Dts.Events.FireInformation( _
                0, _
                String.Empty, _
                response.StatusDescription, _
                String.Empty, _
                0, _
                fireAgain)
        Catch ex As Exception
            result = ScriptResults.Failure
            Dts.Events.FireError(0, String.Empty, ex.Message, String.Empty, 0)
        Finally
            If Not response Is Nothing Then
                Call response.Close()
            End If
        End Try

        Dts.TaskResult = result
    End Sub ' Main


#Region "Properties"
    <Category("Connection")> _
    <Description("Specifies URL of FTPS server.")> _
    Public Property FtpUrl() As String
        Get
            FtpUrl = m_ftpUrl
        End Get
        Set(ByVal value As String)
            m_ftpUrl = value
        End Set
    End Property    ' FtpUrl


    <Category("Connection")> _
    <Description("Specifies user name for connection to FTPS server.")> _
    Public Property Username() As String
        Get
            Username = m_userName
        End Get
        Set(ByVal value As String)
            m_userName = value
        End Set
    End Property    ' Username


    <Category("Connection")> _
    <Description("Specifies password for connection to FTPS server.")> _
    <PasswordPropertyText(True)> _
    Public Property Password() As String
        Get
            Password = m_password
        End Get
        Set(ByVal value As String)
            m_password = value
        End Set
    End Property


    <Category("Settings")> _
    <Description("Specifies the action that the task performs.")> _
    <List("GetActionTypes")> _
    <RefreshProperties(RefreshProperties.All)> _
    Public Property Action() As String
        Get
            Action = m_action
        End Get
        Set(ByVal value As String)
            m_action = value
        End Set
    End Property    ' Action


    <Category("Settings")> _
    <Description("Specifies the local parameter.")> _
    <Editor(GetType(FileNameEditor), GetType(UITypeEditor))> _
    Public Property Local() As String
        Get
            Local = m_local
        End Get
        Set(ByVal value As String)
            m_local = value
        End Set
    End Property    ' Local


    <Category("Settings")> _
    <Description("Specifies the remote parameter.")> _
    Public Property Remote() As String
        Get
            Remote = m_remote
        End Get
        Set(ByVal value As String)
            m_remote = value
        End Set
    End Property    ' Remote


    <Category("Settings")> _
    <Description("Specifies new name of remote.")> _
    Public Property RenameTo() As String
        Get
            RenameTo = m_local
        End Get
        Set(ByVal value As String)
            m_local = value
        End Set
    End Property    ' RenameTo
#End Region ' Properties


#Region "Internals"
    Public Function GetActionTypes() As Object()
        GetActionTypes = Consts.ActionTypes
    End Function    ' GetActionTypes


    Public Function GetProperties() As String()
        Dim result As New ArrayList()

        ' Include base settings.
        Call result.Add("FtpUrl")
        Call result.Add("Username")
        Call result.Add("Password")
        Call result.Add("Action")

        ' Setup local and remote based on action type.
        Select Case Me.Action
            Case Consts.ActionUpload, Consts.ActionDownload
                Call result.Add("Local")
                Call result.Add("Remote")

            Case Consts.ActionMkDir, Consts.ActionRmDir, Consts.ActionDelete
                Call result.Add("Remote")

            Case Consts.ActionRename
                Call result.Add("Remote")
                Call result.Add("RenameTo")

            Case Else
                Throw New ArgumentException("Unhandled action type")
        End Select

        Return CType(result.ToArray(GetType(String)), String())
    End Function    ' GetProperties


    Public Function Validate(ByRef errMessage As String) As Boolean
        Dim result As Boolean

        result = False

        If String.IsNullOrEmpty(Me.FtpUrl) Then
            errMessage = "Please specify FTPS URL."
        ElseIf String.IsNullOrEmpty(Me.Username) Then
            errMessage = "Please specify user name."
        ElseIf String.IsNullOrEmpty(Me.Action) Then
            errMessage = "Please specify task action."
        ElseIf String.IsNullOrEmpty(Me.Local) And _
            (Me.Action = Consts.ActionUpload Or Me.Action = Consts.ActionDownload) Then

            errMessage = "Please specify local parameter."
        ElseIf String.IsNullOrEmpty(Me.Remote) Then
            errMessage = "Please specify remote parameter."
        Else
            result = True
        End If

        Validate = result
    End Function    ' Validate


    Private Sub SetupRequest_(ByVal request As FtpWebRequest)
        request.EnableSsl = True
        request.UseBinary = True
        request.Credentials = New NetworkCredential(Me.Username, Me.Password)
    End Sub ' SetupRequest_


    Private Sub TransferFile_(ByVal input As Stream, ByVal output As Stream)
        Dim buf(1024) As Byte
        Dim bytesRead As Integer

        Do
            bytesRead = input.Read(buf, 0, buf.Length)
            If bytesRead > 0 Then
                output.Write(buf, 0, bytesRead)
            End If
        Loop While bytesRead > 0
    End Sub ' TransferFile_


    Private Function GetRemote_() As String
        Dim result As String

        ' Setup remote directory to create.
        result = Me.FtpUrl
        If Right(result, 1) <> "/" Then
            result = result + "/"
        End If
        result = result + Me.Remote

        GetRemote_ = result
    End Function    ' GetRemote_
#End Region ' Internals


#Region "Attributes"
    Private m_ftpUrl As String
    Private m_userName As String
    Private m_password As String
    Private m_action As String
    Private m_local As String
    Private m_remote As String
#End Region ' Attributes
End Class   ' ScriptMain]]></ProjectItem>
  <ProjectItem Name="ScriptTask_d1fb03e104784818ac3fd04a2db4a9c7.vbproj" Encoding="UTF16LE">
<![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>{455AE96C-49C0-43F0-A1D4-E3178A05D320}</ProjectGuid>
    <OutputType>Library</OutputType>
    <AppDesignerFolder>My Project</AppDesignerFolder>
    <RootNamespace>ScriptTask_d1fb03e104784818ac3fd04a2db4a9c7</RootNamespace>
    <AssemblyName>ScriptTask_d1fb03e104784818ac3fd04a2db4a9c7</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>
  <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.ManagedDTS, Version=12.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
    <Reference Include="Microsoft.SqlServer.ScriptTask, 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="System.Design">
      <Private>False</Private>
    </Reference>
    <Reference Include="System.Drawing.Design">
      <Private>False</Private>
    </Reference>
    <Reference Include="System.Drawing">
      <Private>False</Private>
    </Reference>
  </ItemGroup>
  <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" />
  <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="ScriptTask" />
        <ProjectClient>
          <HostIdentifier>SSIS_ST120</HostIdentifier>
        </ProjectClient>
      </FlavorProperties>
    </VisualStudio>
  </ProjectExtensions>
  <ItemGroup>
    <Compile Include="ScriptMain.vb" />
  </ItemGroup>
  <ItemGroup>
    <Folder Include="My Project\" />
  </ItemGroup>
</Project>]]></ProjectItem>
  <ProjectItem Name="Project" Encoding="UTF16LE">
<![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>ScriptTask_d1fb03e104784818ac3fd04a2db4a9c7</msb:CodeName>
		<msb:DisplayName>ScriptTask_d1fb03e104784818ac3fd04a2db4a9c7</msb:DisplayName>
		<msb:ProjectId>{FB0D48B6-B129-4897-AB2A-F833FD359E49}</msb:ProjectId>
	</msb:PropertyGroup>
	<msb:ItemGroup>
		<msb:Project Include="ScriptTask_d1fb03e104784818ac3fd04a2db4a9c7.vbproj"/>
		<msb:Folder Include="My Project\"/>
		<msb:File Include="ScriptMain.vb"/>
	</msb:ItemGroup>
</c:Project>]]></ProjectItem>
  <BinaryItem Name="ScriptTask_d1fb03e104784818ac3fd04a2db4a9c7.dll">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
qQBEAaYAsQCCB5QBGQA5AmMAGQBCAmgAKQCjB6EBGQBbAnEAwQC/B7EBGQBEARMAyQBEAcEBRADf
ApAATADpB4sATADzBz4CTABEARMA0QBEAU0COQBEARMA6QBdCFgC8QB9CF4CcQCLCGUCQQCSCKYA
+QBEAWsCQQC8CHYCSQDNCBMAQQDfCHsC2QDrCHYCGQECCYECIQFEAaYAIQESCYYCQQAdCYoCQQD7
A6YAKQFEAaYAOQBTCY8CMQFvCZUCQQGBCckA2QCHCXEAOQGdCZsCSQG5CaYC4QDJCXEAOQHVCawC
SQHfCRcA2QDNCBMAMQHxCbUCUQFEARMAUQEdCtACUQEnCtUCQQEvCoECQQA9Ck0CQQBLCk0CYQFE
Af8AQQB4Cu4CSQCNCvUCSQCSCv0CeQGgCgsDQQGmChEDgQFEAU0CiQFEARMAkQFEAaYAmQFEAaYA
oQFEAUYDqQFEAaYAsQFEAaYAuQFEAbwDyQFEAaYA0QFEAU0C2QFEAdYEWQDuBeUA4QFEAbUC6QFE
ARMA8QFEAaYACAA0ANcACAA4ANwAKQCDAE4BLgCbAiMGLgCLAvsFLgCTAgQGQAArANwAQAATAPYA
QwATAPYAQwAbAAUBSQCDAGwBYwAbAAUBYwATAPYAaQCDAF8BgAArANwAgwBzANwAgwAbAAUBgwB7
ANwAiQCDAIABoAArANwAowDDAMkBowATAPYAwAArANwAwwDrAFICwwATAPYAyQBbAlEEyQBTAi4E
4AArANwA4wBDAjMD4wBLAkwD4wArAlIC4wA7AiUD4wAzAtwA6QBTAmEE6QBbAlEEAAETAPYAAAEr
ANwACQFbAlEECQFzApkECQFTAp8EIAETAPYAIAErANwAKQFjAvYAKQFbAq4DKQFTAtcDKQFrAsMD
QAErANwAQAETAPYASQFbAq4DSQF7At4ESQFTAtcFYAErANwAYAETAPYAaQFbAq4DaQFTAgkEgAEr
ANwAiQFTAosDiQFbAq4DoAErANwAwAErANwAwAETAPYA4AErANwAAAIrANwAAAITAPYAOgE/AUQB
SQGZAZ0BqAGtAbwBvAFEAroCrQGtAa0BrQGtAa0BrQHLAuAC6QIFAxcDywKZAQQAAQAGAAUABwAG
AAAAaAFPAAAAIQJUAAAA0AFZAAAALQJeAAAA6QKYAAAA2ATMAAAA3wTMAAAA6ATMAAAA8QTMAAAA
+ATMAAAA/gTMAAAABQXMAAIABAADAAIABQAFAAIABgAHAAIABwAJAAIADwALAAIAEwANAAEAFAAN
AAIAFQAPAAEAFgAPAAIAFwARAAEAGAARAAIAGQATAAEAGgATAAEAHAAVAAIAGwAVAAEAHgAXAAIA
HQAXAAIAHwAZAAEAIAAZAAoAVgChAHUAdQCIAB4BJQEsATMBKwIyAt0CBIAAAAAAAAAAAAAAAAAA
AAAArwAAAAQAAAAAAAAAAAAAAAEACgAAAAAACgAAAAAAAAAAAAAACgATAAAAAAAMAAAAAAAAAAAA
AACdAPUCAAAAAAQAAAAAAAAAAAAAAAEAcQEAAAAAAQAAAAAAAAAAAAAAHAPlCgAAAAAEAAAAAAAA
AAAAAAAKAOsLAAAAAAQAAAAAAAAAAAAAAAoA+QsAAAAABQAEAAYABAAIAAcACQAHAAoABwAAABAA
DAB3AgAAEAAZAHcCAAAAABsAdwItALcBLQA5AgAAADxNb2R1bGU+AG1zY29ybGliAE1pY3Jvc29m
dC5WaXN1YWxCYXNpYwBNeUFwcGxpY2F0aW9uAFNjcmlwdFRhc2tfZDFmYjAzZTEwNDc4NDgxOGFj
M2ZkMDRhMmRiNGE5YzcuTXkATXlDb21wdXRlcgBNeVByb2plY3QATXlXZWJTZXJ2aWNlcwBUaHJl
YWRTYWZlT2JqZWN0UHJvdmlkZXJgMQBTY3JpcHRNYWluAFNjcmlwdFRhc2tfZDFmYjAzZTEwNDc4
NDgxOGFjM2ZkMDRhMmRiNGE5YzcAU2NyaXB0UmVzdWx0cwBDb25zdHMAVHJ1c3RBbGxDZXJ0aWZp
Y2F0ZVBvbGljeQBNaWNyb3NvZnQuVmlzdWFsQmFzaWMuQXBwbGljYXRpb25TZXJ2aWNlcwBBcHBs
aWNhdGlvbkJhc2UALmN0b3IATWljcm9zb2Z0LlZpc3VhbEJhc2ljLkRldmljZXMAQ29tcHV0ZXIA
U3lzdGVtAE9iamVjdAAuY2N0b3IAZ2V0X0NvbXB1dGVyAG1fQ29tcHV0ZXJPYmplY3RQcm92aWRl
cgBnZXRfQXBwbGljYXRpb24AbV9BcHBPYmplY3RQcm92aWRlcgBVc2VyAGdldF9Vc2VyAG1fVXNl
ck9iamVjdFByb3ZpZGVyAGdldF9XZWJTZXJ2aWNlcwBtX015V2ViU2VydmljZXNPYmplY3RQcm92
aWRlcgBBcHBsaWNhdGlvbgBXZWJTZXJ2aWNlcwBFcXVhbHMAbwBHZXRIYXNoQ29kZQBUeXBlAEdl
dFR5cGUAVG9TdHJpbmcAQ3JlYXRlX19JbnN0YW5jZV9fAFQAaW5zdGFuY2UARGlzcG9zZV9fSW5z
dGFuY2VfXwBnZXRfR2V0SW5zdGFuY2UATWljcm9zb2Z0LlZpc3VhbEJhc2ljLk15U2VydmljZXMu
SW50ZXJuYWwAQ29udGV4dFZhbHVlYDEAbV9Db250ZXh0AEdldEluc3RhbmNlAE1pY3Jvc29mdC5T
cWxTZXJ2ZXIuU2NyaXB0VGFzawBNaWNyb3NvZnQuU3FsU2VydmVyLkR0cy5UYXNrcy5TY3JpcHRU
YXNrAFZTVEFSVFNjcmlwdE9iamVjdE1vZGVsQmFzZQBNYWluAGdldF9GdHBVcmwAc2V0X0Z0cFVy
bAB2YWx1ZQBnZXRfVXNlcm5hbWUAc2V0X1VzZXJuYW1lAGdldF9QYXNzd29yZABzZXRfUGFzc3dv
cmQAZ2V0X0FjdGlvbgBzZXRfQWN0aW9uAGdldF9Mb2NhbABzZXRfTG9jYWwAZ2V0X1JlbW90ZQBz
ZXRfUmVtb3RlAGdldF9SZW5hbWVUbwBzZXRfUmVuYW1lVG8AR2V0QWN0aW9uVHlwZXMAR2V0UHJv
cGVydGllcwBWYWxpZGF0ZQBlcnJNZXNzYWdlAFN5c3RlbS5OZXQARnRwV2ViUmVxdWVzdABTZXR1
cFJlcXVlc3RfAHJlcXVlc3QAU3lzdGVtLklPAFN0cmVhbQBUcmFuc2ZlckZpbGVfAGlucHV0AG91
dHB1dABHZXRSZW1vdGVfAG1fZnRwVXJsAG1fdXNlck5hbWUAbV9wYXNzd29yZABtX2FjdGlvbgBt
X2xvY2FsAG1fcmVtb3RlAEZ0cFVybABVc2VybmFtZQBQYXNzd29yZABBY3Rpb24ATG9jYWwAUmVt
b3RlAFJlbmFtZVRvAEVudW0AdmFsdWVfXwBTdWNjZXNzAEZhaWx1cmUAQWN0aW9uVXBsb2FkAEFj
dGlvbkRvd25sb2FkAEFjdGlvbk1rRGlyAEFjdGlvblJtRGlyAEFjdGlvbkRlbGV0ZQBBY3Rpb25S
ZW5hbWUAQWN0aW9uVHlwZXMASUNlcnRpZmljYXRlUG9saWN5AFNlcnZpY2VQb2ludABTeXN0ZW0u
U2VjdXJpdHkuQ3J5cHRvZ3JhcGh5Llg1MDlDZXJ0aWZpY2F0ZXMAWDUwOUNlcnRpZmljYXRlAFdl
YlJlcXVlc3QAQ2hlY2tWYWxpZGF0aW9uUmVzdWx0AHNydlBvaW50AGNlcnRpZmljYXRlAGNlcnRp
ZmljYXRlUHJvYmxlbQBTeXN0ZW0uQ29tcG9uZW50TW9kZWwARWRpdG9yQnJvd3NhYmxlQXR0cmli
dXRlAEVkaXRvckJyb3dzYWJsZVN0YXRlAFN5c3RlbS5Db2RlRG9tLkNvbXBpbGVyAEdlbmVyYXRl
ZENvZGVBdHRyaWJ1dGUAU3lzdGVtLkRpYWdub3N0aWNzAERlYnVnZ2VySGlkZGVuQXR0cmlidXRl
AE1pY3Jvc29mdC5WaXN1YWxCYXNpYy5Db21waWxlclNlcnZpY2VzAFN0YW5kYXJkTW9kdWxlQXR0
cmlidXRlAEhpZGVNb2R1bGVOYW1lQXR0cmlidXRlAFN5c3RlbS5Db21wb25lbnRNb2RlbC5EZXNp
Z24ASGVscEtleXdvcmRBdHRyaWJ1dGUAU3lzdGVtLlJ1bnRpbWUuQ29tcGlsZXJTZXJ2aWNlcwBS
dW50aW1lSGVscGVycwBHZXRPYmplY3RWYWx1ZQBSdW50aW1lVHlwZUhhbmRsZQBHZXRUeXBlRnJv
bUhhbmRsZQBBY3RpdmF0b3IAQ3JlYXRlSW5zdGFuY2UATXlHcm91cENvbGxlY3Rpb25BdHRyaWJ1
dGUAZ2V0X1ZhbHVlAHNldF9WYWx1ZQBTeXN0ZW0uUnVudGltZS5JbnRlcm9wU2VydmljZXMAQ29t
VmlzaWJsZUF0dHJpYnV0ZQBGdHBXZWJSZXNwb25zZQBFeGNlcHRpb24AU2VydmljZVBvaW50TWFu
YWdlcgBzZXRfQ2VydGlmaWNhdGVQb2xpY3kAT3BlcmF0b3JzAENvbXBhcmVTdHJpbmcAQ3JlYXRl
AHNldF9NZXRob2QARmlsZVN0cmVhbQBGaWxlTW9kZQBGaWxlQWNjZXNzAEdldFJlcXVlc3RTdHJl
YW0AQ2xvc2UAV2ViUmVzcG9uc2UAR2V0UmVzcG9uc2UAR2V0UmVzcG9uc2VTdHJlYW0ARmlsZQBF
eGlzdHMARmlsZUluZm8AZ2V0X0xlbmd0aABzZXRfQ29udGVudE9mZnNldABBcmd1bWVudEV4Y2Vw
dGlvbgBTY3JpcHRPYmplY3RNb2RlbABnZXRfRHRzAEV2ZW50c09iamVjdFdyYXBwZXIAZ2V0X0V2
ZW50cwBTdHJpbmcARW1wdHkAZ2V0X1N0YXR1c0Rlc2NyaXB0aW9uAEZpcmVJbmZvcm1hdGlvbgBQ
cm9qZWN0RGF0YQBTZXRQcm9qZWN0RXJyb3IAZ2V0X01lc3NhZ2UARmlyZUVycm9yAENsZWFyUHJv
amVjdEVycm9yAHNldF9UYXNrUmVzdWx0AFN5c3RlbS5Db2xsZWN0aW9ucwBBcnJheUxpc3QAQWRk
AEFycmF5AFRvQXJyYXkASXNOdWxsT3JFbXB0eQBzZXRfRW5hYmxlU3NsAHNldF9Vc2VCaW5hcnkA
TmV0d29ya0NyZWRlbnRpYWwASUNyZWRlbnRpYWxzAHNldF9DcmVkZW50aWFscwBCeXRlAFJlYWQA
V3JpdGUAU3RyaW5ncwBSaWdodABDb25jYXQAQ0xTQ29tcGxpYW50QXR0cmlidXRlAFNTSVNTY3Jp
cHRUYXNrRW50cnlQb2ludEF0dHJpYnV0ZQBDb3p5Um9jLlNTSVNQbHVzLjIwMTQAQ296eVJvYy5T
cWxTZXJ2ZXIuU1NJUy5BdHRyaWJ1dGVzAFZhbGlkYXRlUHJvcGVydGllc0F0dHJpYnV0ZQBGaWx0
ZXJQcm9wZXJ0aWVzQXR0cmlidXRlAFNvcnRQcm9wZXJ0aWVzQXR0cmlidXRlAERlc2NyaXB0aW9u
QXR0cmlidXRlAENhdGVnb3J5QXR0cmlidXRlAFJlZnJlc2hQcm9wZXJ0aWVzQXR0cmlidXRlAFJl
ZnJlc2hQcm9wZXJ0aWVzAExpc3RBdHRyaWJ1dGUAUGFzc3dvcmRQcm9wZXJ0eVRleHRBdHRyaWJ1
dGUAU3lzdGVtLkRlc2lnbgBTeXN0ZW0uRHJhd2luZwBFZGl0b3JBdHRyaWJ1dGUAQ29tcGlsYXRp
b25SZWxheGF0aW9uc0F0dHJpYnV0ZQBSdW50aW1lQ29tcGF0aWJpbGl0eUF0dHJpYnV0ZQBTeXN0
ZW0uUnVudGltZS5WZXJzaW9uaW5nAFRhcmdldEZyYW1ld29ya0F0dHJpYnV0ZQBTY3JpcHRUYXNr
X2QxZmIwM2UxMDQ3ODQ4MThhYzNmZDA0YTJkYjRhOWM3LmRsbAAAAAAACVMAVABPAFIAAAlSAEUA
VABSAAAHTQBLAEQAAAdSAE0ARAAACUQARQBMAEUAAC1VAG4AaABhAG4AZABsAGUAZAAgAGEAYwB0
AGkAbwBuACAAdAB5AHAAZQAuAAANRgB0AHAAVQByAGwAABFVAHMAZQByAG4AYQBtAGUAABFQAGEA
cwBzAHcAbwByAGQAAA1BAGMAdABpAG8AbgAAC0wAbwBjAGEAbAAADVIAZQBtAG8AdABlAAARUgBl
AG4AYQBtAGUAVABvAAArVQBuAGgAYQBuAGQAbABlAGQAIABhAGMAdABpAG8AbgAgAHQAeQBwAGUA
ADFQAGwAZQBhAHMAZQAgAHMAcABlAGMAaQBmAHkAIABGAFQAUABTACAAVQBSAEwALgAAM1AAbABl
AGEAcwBlACAAcwBwAGUAYwBpAGYAeQAgAHUAcwBlAHIAIABuAGEAbQBlAC4AADdQAGwAZQBhAHMA
ZQAgAHMAcABlAGMAaQBmAHkAIAB0AGEAcwBrACAAYQBjAHQAaQBvAG4ALgAAP1AAbABlAGEAcwBl
ACAAcwBwAGUAYwBpAGYAeQAgAGwAbwBjAGEAbAAgAHAAYQByAGEAbQBlAHQAZQByAC4AAEFQAGwA
ZQBhAHMAZQAgAHMAcABlAGMAaQBmAHkAIAByAGUAbQBvAHQAZQAgAHAAYQByAGEAbQBlAHQAZQBy
AC4AAAMvAAAXVQBwAGwAbwBhAGQAIABmAGkAbABlAAAbRABvAHcAbgBsAG8AYQBkACAAZgBpAGwA
ZQAAL0MAcgBlAGEAdABlACAAcgBlAG0AbwB0AGUAIABkAGkAcgBlAGMAdABvAHIAeQAAL1IAZQBt
AG8AdgBlACAAcgBlAG0AbwB0AGUAIABkAGkAcgBlAGMAdABvAHIAeQAAJVIAZQBtAG8AdgBlACAA
cgBlAG0AbwB0AGUAIABmAGkAbABlAAAlUgBlAG4AYQBtAGUAIAByAGUAbQBvAHQAZQAgAGYAaQBs
AGUAAAAAALX9B0uJ4cpKnjZd1CB+uPkACLd6XFYZNOCJCLA/X38R1Qo6AyAAAQMAAAEEAAASDAcG
FRIYARIMBAAAEggHBhUSGAESCAQAABIRBwYVEhgBEhEEAAASFAcGFRIYARIUBAgAEgwECAASCAQI
ABIRBAgAEhQEIAECHAMgAAgEIAASFQMgAA4CHgAHEAEBHgAeAAcwAQEBEB4AAhMABCAAEwAHBhUS
GQETAAQoABMACImEXc2AgMyRBCABAQ4EIAAdHAQgAB0OBSABAhAOBSABARIhByACARIlEiUCBg4D
KAAOAgYIAwYRIAQAAAAABAEAAAADBh0cCiAEAhIxEjUSOQgFIAEBEUEIAQABAAAAAAAFIAIBDg4Y
AQAKTXlUZW1wbGF0ZQgxMC4wLjAuMAAABhUSGAESDAYVEhgBEggGFRIYARIRBhUSGAESFAQHARIM
BAcBEggEBwESEQQHARIUEAEAC015LkNvbXB1dGVyAAAMAQAHTXkuVXNlcgAAEwEADk15LkFwcGxp
Y2F0aW9uAAATAQAOTXkuV2ViU2VydmljZXMAAAQAARwcAwcBAgMHAQgGAAESFRFdBAcBEhUDBwEO
BRABAB4ABAoBHgAEBwEeAAcgBAEODg4OYQEANFN5c3RlbS5XZWIuU2VydmljZXMuUHJvdG9jb2xz
LlNvYXBIdHRwQ2xpZW50UHJvdG9jb2wSQ3JlYXRlX19JbnN0YW5jZV9fE0Rpc3Bvc2VfX0luc3Rh
bmNlX18AAAAGFRIYARMABhUSGQETAAQKARMABSABARMACAcDEwATABMABCABAQIFAQAAAAAFAAEB
Ei0GAAMIDg4CBQABEjkOCiADAQ4RgIERgIUEIAASJQUgABKAiQQAAQIOAyAACgQgAQEKBSAAEoCZ
BSAAEoCdCiAGAQgODg4IEAIFAAEBEnEIIAUCCA4ODggEIAEBCBAHCQISJRIlDhIhEm0IEnEOBAcB
HRwEIAEIHAcgARKArRIVAh0OCAcDHQ4SgKkOBAcCAgIGIAEBEoC1ByADCB0FCAgHIAMBHQUICAUH
Ah0FCAUAAg4OCAUAAg4ODgQHAg4OCBbPSQu4DDTqDQEACFZhbGlkYXRlAAASAQANR2V0UHJvcGVy
dGllcwAABSABAR0OPgEABwAAAAZGdHBVcmwIVXNlcm5hbWUIUGFzc3dvcmQGQWN0aW9uBUxvY2Fs
BlJlbW90ZQhSZW5hbWVUbwAAIgEAHVNwZWNpZmllcyBuZXcgbmFtZSBvZiByZW1vdGUuAAANAQAI
U2V0dGluZ3MAAAYgAQERgOETAQAOR2V0QWN0aW9uVHlwZXMAADEBACxTcGVjaWZpZXMgdGhlIGFj
dGlvbiB0aGF0IHRoZSB0YXNrIHBlcmZvcm1zLgAAJAEAH1NwZWNpZmllcyB0aGUgcmVtb3RlIHBh
cmFtZXRlci4AACIBAB1TcGVjaWZpZXMgVVJMIG9mIEZUUFMgc2VydmVyLgAADwEACkNvbm5lY3Rp
b24AADcBADJTcGVjaWZpZXMgdXNlciBuYW1lIGZvciBjb25uZWN0aW9uIHRvIEZUUFMgc2VydmVy
LgAABQEAAQAANgEAMVNwZWNpZmllcyBwYXNzd29yZCBmb3IgY29ubmVjdGlvbiB0byBGVFBTIHNl
cnZlci4AAAcgAgESFRIVgPcBAHxTeXN0ZW0uV2luZG93cy5Gb3Jtcy5EZXNpZ24uRmlsZU5hbWVF
ZGl0b3IsIFN5c3RlbS5EZXNpZ24sIFZlcnNpb249NC4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQ
dWJsaWNLZXlUb2tlbj1iMDNmNWY3ZjExZDUwYTNhdVN5c3RlbS5EcmF3aW5nLkRlc2lnbi5VSVR5
cGVFZGl0b3IsIFN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJh
bCwgUHVibGljS2V5VG9rZW49YjAzZjVmN2YxMWQ1MGEzYQAAIwEAHlNwZWNpZmllcyB0aGUgbG9j
YWwgcGFyYW1ldGVyLgAACAEACAAAAAAAHgEAAQBUAhZXcmFwTm9uRXhjZXB0aW9uVGhyb3dzAUcB
ABouTkVURnJhbWV3b3JrLFZlcnNpb249djQuMAEAVA4URnJhbWV3b3JrRGlzcGxheU5hbWUQLk5F
VCBGcmFtZXdvcmsgNAAwSwAAAAAAAAAAAABOSwAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEsA
AAAAAAAAAAAAAAAAAAAAX0NvckRsbE1haW4AbXNjb3JlZS5kbGwAAAAAAP8lACAAEAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAQAAAAGAAA
gAAAAAAAAAAAAAAAAAAAAQABAAAAMAAAgAAAAAAAAAAAAAAAAAAAAQAAAAAASAAAAFhgAADUAgAA
AAAAAAAAAADUAjQAAABWAFMAXwBWAEUAUgBTAEkATwBOAF8ASQBOAEYATwAAAAAAvQTv/gAAAQAA
AAAAAAAAAAAAAAAAAAAAPwAAAAAAAAAEAAAAAgAAAAAAAAAAAAAAAAAAAEQAAAABAFYAYQByAEYA
aQBsAGUASQBuAGYAbwAAAAAAJAAEAAAAVAByAGEAbgBzAGwAYQB0AGkAbwBuAAAAAAAAALAENAIA
AAEAUwB0AHIAaQBuAGcARgBpAGwAZQBJAG4AZgBvAAAAEAIAAAEAMAAwADAAMAAwADQAYgAwAAAA
LAACAAEARgBpAGwAZQBEAGUAcwBjAHIAaQBwAHQAaQBvAG4AAAAAACAAAAAwAAgAAQBGAGkAbABl
AFYAZQByAHMAaQBvAG4AAAAAADAALgAwAC4AMAAuADAAAACAADAAAQBJAG4AdABlAHIAbgBhAGwA
TgBhAG0AZQAAAFMAYwByAGkAcAB0AFQAYQBzAGsAXwBkADEAZgBiADAAMwBlADEAMAA0ADcAOAA0
ADgAMQA4AGEAYwAzAGYAZAAwADQAYQAyAGQAYgA0AGEAOQBjADcALgBkAGwAbAAAACgAAgABAEwA
ZQBnAGEAbABDAG8AcAB5AHIAaQBnAGgAdAAAACAAAACIADAAAQBPAHIAaQBnAGkAbgBhAGwARgBp
AGwAZQBuAGEAbQBlAAAAUwBjAHIAaQBwAHQAVABhAHMAawBfAGQAMQBmAGIAMAAzAGUAMQAwADQA
NwA4ADQAOAAxADgAYQBjADMAZgBkADAANABhADIAZABiADQAYQA5AGMANwAuAGQAbABsAAAANAAI
AAEAUAByAG8AZAB1AGMAdABWAGUAcgBzAGkAbwBuAAAAMAAuADAALgAwAC4AMAAAADgACAABAEEA
cwBzAGUAbQBiAGwAeQAgAFYAZQByAHMAaQBvAG4AAAAwAC4AMAAuADAALgAwAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAADAAAAGA7AAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==</BinaryItem>
</ScriptProject>