-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathapp.js.map
1 lines (1 loc) · 316 KB
/
app.js.map
1
{"version":3,"file":"app.js","sourceRoot":"","sources":["app/index.ts","app/browser/boot.ts","app/node/boot.ts","app/node/server.ts","app/node/server_handleRequest.ts","app/node/server_handleRoot.ts","app/node/startBrowser.ts","app/xboot/xboot.ts","src/core/Long.ts","src/core/async.ts","src/core/format.ts","src/enums/headers/DataDirectoryKind.ts","src/enums/headers/DllCharacteristics.ts","src/enums/headers/ImageCharacteristics.ts","src/enums/headers/MZSignature.ts","src/enums/headers/Machine.ts","src/enums/headers/PEMagic.ts","src/enums/headers/PESignature.ts","src/enums/headers/SectionCharacteristics.ts","src/enums/headers/Subsystem.ts","src/enums/metadata/managed/AssemblyFlags.ts","src/enums/metadata/managed/AssemblyHashAlgorithm.ts","src/enums/metadata/managed/CallingConventions.ts","src/enums/metadata/managed/ClrImageFlags.ts","src/enums/metadata/managed/ClrMetadataSignature.ts","src/enums/metadata/managed/ElementType.ts","src/enums/metadata/managed/EventAttributes.ts","src/enums/metadata/managed/FieldAttributes.ts","src/enums/metadata/managed/FileAttributes.ts","src/enums/metadata/managed/ManifestResourceAttributes.ts","src/enums/metadata/managed/MethodAttributes.ts","src/enums/metadata/managed/MethodImplAttributes.ts","src/enums/metadata/managed/MethodSemanticsAttributes.ts","src/enums/metadata/managed/PInvokeAttributes.ts","src/enums/metadata/managed/ParamAttributes.ts","src/enums/metadata/managed/PropertyAttributes.ts","src/enums/metadata/managed/TypeAttributes.ts","src/headers/AddressRange.ts","src/headers/DosHeader.ts","src/headers/OptionalHeader.ts","src/headers/PEFileHeaders.ts","src/headers/PEHeader.ts","src/headers/SectionHeader.ts","src/io/BufferReader.ts","src/managed/AppDomain.ts","src/managed/Assembly.ts","src/managed/EventInfo.ts","src/managed/FieldInfo.ts","src/managed/MethodInfo.ts","src/managed/ParameterInfo.ts","src/managed/PropertyInfo.ts","src/managed/Type.ts","src/managed/metadata/ClrDirectory.ts","src/managed/metadata/ClrMetadata.ts","src/managed/metadata/CodedIndexReader.ts","src/managed/metadata/CodedIndexReaders.ts","src/managed/metadata/MetadataStreams.ts","src/managed/metadata/SignatureReader.ts","src/managed/metadata/TableCompletionReader.ts","src/managed/metadata/TableKind.ts","src/managed/metadata/TableReader.ts","src/managed/metadata/TableStream.ts","src/managed/metadata/bits.ts","src/managed/tables/Assembly.ts","src/managed/tables/AssemblyOS.ts","src/managed/tables/AssemblyProcessor.ts","src/managed/tables/AssemblyRef.ts","src/managed/tables/AssemblyRefOS.ts","src/managed/tables/AssemblyRefProcessor.ts","src/managed/tables/ClassLayout.ts","src/managed/tables/Constant.ts","src/managed/tables/CustomAttribute.ts","src/managed/tables/DeclSecurity.ts","src/managed/tables/Event.ts","src/managed/tables/EventMap.ts","src/managed/tables/ExportedType.ts","src/managed/tables/Field.ts","src/managed/tables/FieldLayout.ts","src/managed/tables/FieldMarshal.ts","src/managed/tables/FieldRva.ts","src/managed/tables/File.ts","src/managed/tables/GenericParam.ts","src/managed/tables/GenericParamConstraint.ts","src/managed/tables/ImplMap.ts","src/managed/tables/InterfaceImpl.ts","src/managed/tables/ManfiestResource.ts","src/managed/tables/MemberRef.ts","src/managed/tables/MethodDef.ts","src/managed/tables/MethodImpl.ts","src/managed/tables/MethodSemantics.ts","src/managed/tables/MethodSpec.ts","src/managed/tables/Module.ts","src/managed/tables/ModuleRef.ts","src/managed/tables/NestedClass.ts","src/managed/tables/Param.ts","src/managed/tables/Property.ts","src/managed/tables/PropertyMap.ts","src/managed/tables/StandaloneSig.ts","src/managed/tables/TypeDef.ts","src/managed/tables/TypeRef.ts","src/managed/tables/TypeSpec.ts","src/unmanaged/DllExport.ts","src/unmanaged/DllExports.ts","src/unmanaged/DllImport.ts","src/unmanaged/ResourceDataEntry.ts","src/unmanaged/ResourceDirectory.ts","src/unmanaged/ResourceDirectoryEntry.ts"],"names":[],"mappings":"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","sourcesContent":["/// <reference types=\"node\" />\r\n\r\n(function () {\r\n const html = `\r\n <!DOCTYPE html>\r\n<html lang=\"en\">\r\n<head>\r\n <meta charset=\"UTF-8\">\r\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\r\n <meta http-equiv=\"X-UA-Compatible\" content=\"ie=edge\">\r\n <title>PE.js</title>\r\n</head>\r\n<body>\r\n <h2>PE.js</h2>\r\n <p>\r\n Loading...\r\n </p>\r\n\r\n <script></${''}script>\r\n</body>\r\n</html>\r\n`;\r\n})()","namespace browser {\r\n export async function boot() {\r\n const rootElement = getRootElement();\r\n\r\n rootElement.style.cssText = `\r\n background: white;\r\n color: black;\r\n font-family: Segoe UI, Tahoma, Verdana, Roboto, Helvetica, San Francisco, Sans Serif;\r\n font-size: 10pt;\r\n `;\r\n\r\n let docBody = document.body;\r\n if (!docBody) {\r\n docBody = document.createElement('body');\r\n if (!document.body)\r\n rootElement.appendChild(docBody);\r\n }\r\n\r\n docBody.innerHTML = `\r\n <h2> Loaded </h2>\r\n `\r\n \r\n }\r\n\r\n function getRootElement() {\r\n const bodyOrHead =\r\n document.body ||\r\n document.head ||\r\n document.getElementsByTagName('body')[0] ||\r\n document.getElementsByTagName('head')[0];\r\n \r\n return bodyOrHead && bodyOrHead.parentElement;\r\n }\r\n}","namespace node {\r\n\r\n export function boot() {\r\n bootAsync().then(\r\n () => {\r\n console.log('COMPLETED>');\r\n },\r\n error => {\r\n process.exit(error.message.charCodeAt(0));\r\n });\r\n }\r\n\r\n async function bootAsync() {\r\n const serverPromise = server(__dirname);\r\n\r\n const srv = await serverPromise;\r\n console.log('Running server on port ' + srv.port);\r\n\r\n startBrowser('http://localhost:' + srv.port + '/');\r\n\r\n await serverPromise;\r\n }\r\n\r\n}","namespace node {\r\n export async function server(baseDir: string) {\r\n\r\n let basePort = 0;\r\n for (let i = 0; i < __filename.length; i++) {\r\n basePort += __filename.charCodeAt(i);\r\n basePort = basePort % 4000;\r\n\r\n const lowPromise = tryPort(6340 + basePort);\r\n const highPromise = tryPort(12891 + basePort);\r\n\r\n const srv = await lowPromise || await highPromise;\r\n if (srv)\r\n return srv;\r\n }\r\n\r\n function tryPort(port: number) {\r\n return new Promise<{ server: import('http').Server, port: number } | null>(resolve => {\r\n const http = require('http') as typeof import('http');\r\n const srv = http.createServer((request, response) => {\r\n server_handleRequest({ baseDir, server: srv, port, request, response });\r\n });\r\n\r\n srv.on('error', () => {\r\n resolve(null);\r\n });\r\n\r\n srv.on('listening', () => {\r\n resolve({ server: srv, port });\r\n });\r\n\r\n srv.listen(port);\r\n });\r\n }\r\n\r\n }\r\n}\r\n","namespace node {\r\n\r\n export declare namespace server_handleRequest {\r\n type Options = {\r\n baseDir: string,\r\n server: import('http').Server,\r\n port: number,\r\n request: import('http').IncomingMessage,\r\n response: import('http').ServerResponse\r\n };\r\n }\r\n\r\n export async function server_handleRequest(options: server_handleRequest.Options) {\r\n \r\n const { baseDir, server, port, request, response } = options;\r\n\r\n const fs = require('fs') as typeof import('fs');\r\n const path = require('path') as typeof import('path');\r\n const URL = require('url') as typeof import('url');\r\n\r\n const requestURL = URL.parse(\r\n request.url,\r\n true /* parseQueryString */);\r\n\r\n const requestPath = requestURL.path.replace(/^[\\.\\/\\\\]+/, '').replace(/\\[\\.\\/\\\\]*\\//g, '/');\r\n if (requestPath === '' || requestPath === '/') {\r\n await server_handleRoot(options);\r\n return;\r\n }\r\n\r\n const resolvedPath = path.resolve(baseDir, requestPath);\r\n \r\n const fileContent = await readFileIfExistsAsync(resolvedPath);\r\n if (fileContent)\r\n return response.end(fileContent);\r\n\r\n response.statusCode = 404;\r\n response.end();\r\n }\r\n\r\n function readFileIfExistsAsync(fullPath: string) {\r\n const fs = require('fs') as typeof import('fs');\r\n return new Promise<Buffer | null>(resolve => {\r\n fs.readFile(fullPath, (error, buffer) => {\r\n if (buffer)\r\n resolve(buffer);\r\n else\r\n resolve(null);\r\n });\r\n });\r\n\r\n }\r\n\r\n}","namespace node {\r\n\r\n let thisScriptPromise: Promise<Buffer> | undefined;\r\n\r\n export async function server_handleRoot(options: server_handleRequest.Options) {\r\n if (typeof thisScriptPromise !== 'string')\r\n thisScriptPromise = readThisScript();\r\n \r\n const thisScriptData = await thisScriptPromise;\r\n\r\n const wholeHTML = '<' + 'body' + '><' + 'script' + '>' + thisScriptData + '</' + 'script' + '></' + 'body' + '>';\r\n \r\n options.response.end(wholeHTML);\r\n\r\n async function readThisScript() {\r\n return new Promise<Buffer>((resolve, reject) => {\r\n const fs = require('fs') as typeof import('fs');\r\n fs.readFile(__filename, (error, data) => {\r\n if (error)\r\n reject(error);\r\n else\r\n resolve(data);\r\n });\r\n });\r\n }\r\n }\r\n}","namespace node {\r\n\r\n export async function startBrowser(url: string) {\r\n const fs = require('fs') as typeof import('fs');\r\n const path = require('path') as typeof import('path');\r\n const child_process = require('child_process') as typeof import('child_process');\r\n\r\n const chromePath = 'C:\\\\Program Files (x86)\\\\Google\\\\Chrome\\\\Application\\\\chrome.exe';\r\n if (await existAsync(chromePath)) {\r\n console.log('chrome:');\r\n console.log(chromePath, ['--app=' + url, '--new-window'].join(' '));\r\n const chromeProcess = child_process.spawn(\r\n chromePath,\r\n ['--app=' + url, '--new-window'],\r\n { shell: false });\r\n\r\n await new Promise<void>((resolve, reject) => {\r\n chromeProcess.on('error', error => {\r\n reject(error);\r\n });\r\n });\r\n }\r\n }\r\n\r\n function existAsync(fullPath: string) {\r\n return new Promise<boolean>(resolve => {\r\n const fs = require('fs') as typeof import('fs');\r\n fs.exists(fullPath, result => {\r\n resolve(result);\r\n });\r\n })\r\n }\r\n}","if (typeof process !== 'undefined' && process && typeof process.exit === 'function') {\r\n node.boot();\r\n}\r\nelse if (typeof window !== 'undefined' && typeof window.alert === 'function') {\r\n browser.boot();\r\n}\r\n","module pe {\n\n /**\n * 64-bit integer\n */\n export class Long {\n constructor (\n public lo: number,\n public hi: number) {\n }\n\n toString() {\n var result: string;\n result = this.lo.toString(16);\n if (this.hi != 0) {\n result = ('0000').substring(result.length) + result;\n result = this.hi.toString(16) + result;\n }\n result = result.toUpperCase() + 'h';\n return result;\n }\n }\n\n}","module pe {\n\n /**\n * Used for optional cooperative multitasking.\n */\n export interface AsyncCallback<T> {\n\n (error: Error, result: T);\n\n progress?: AsyncCallback.ProgressCallback;\n\n }\n\n\n export module AsyncCallback {\n\n export interface ProgressCallback {\n (value: number, total: number, text?: string): YieldCallback;\n }\n\n export interface YieldCallback {\n (next: () => void);\n }\n\n }\n\n}","module pe {\n\n /**\n * Convert enum value to string, considering the bit flags.\n */\n export function formatEnum(value, type): string {\n if (!value) {\n if (value === null)\n return 'null';\n else if (typeof value == 'undefined')\n return 'undefined';\n }\n\n var textValue = type[value];\n if (textValue) return textValue;\n\n // find bit flags matching the provided value,\n // collect what bits are covered that way\n var enumValues = [];\n var accountedEnumValueMask = 0;\n\n for (var kvKey in type) {\n var kvValue = type[kvKey];\n if (typeof kvValue!=='number') continue;\n\n if (kvValue && (value & kvValue) === kvValue) {\n enumValues.push(kvKey);\n accountedEnumValueMask = accountedEnumValueMask | kvValue;\n }\n }\n\n // uncovered bits are taken as a hex literal\n var spill = value & ~accountedEnumValueMask;\n if (spill)\n enumValues.push('0x' + spill.toString(16).toUpperCase());\n\n textValue = enumValues.join(' | ');\n\n return textValue;\n }\n\n export function bytesToHex(bytes: Uint8Array): string {\n if (!bytes)\n return null;\n \n var result = '';\n for (var i = 0; i < bytes.length; i++) {\n var hex = bytes[i].toString(16).toUpperCase();\n if (hex.length==1)\n hex = '0' + hex;\n result += hex;\n }\n\n return result;\n }\n\n}","module pe.headers {\n\n export enum DataDirectoryKind {\n ExportSymbols = 0,\n ImportSymbols = 1,\n Resources = 2,\n Exception = 3,\n Security = 4,\n BaseRelocation = 5,\n Debug = 6,\n CopyrightString = 7,\n Unknown = 8,\n ThreadLocalStorage = 9,\n LoadConfiguration = 10,\n BoundImport = 11,\n ImportAddressTable = 12,\n DelayImport = 13,\n\n /**\n * Common Language Runtime, look for ClrDirectory at that offset.\n */\n Clr = 14\n }\n\n}","module pe.headers {\n\n export enum DllCharacteristics {\n /**\n * Reserved.\n */\n ProcessInit = 0x0001,\n\n /**\n * Reserved.\n */\n ProcessTerm = 0x0002,\n\n /**\n * Reserved.\n */\n ThreadInit = 0x0004,\n\n /**\n * Reserved.\n */\n ThreadTerm = 0x0008,\n\n /**\n * The DLL can be relocated at load time.\n */\n DynamicBase = 0x0040,\n\n\n /**\n * Code integrity checks are forced.\n * If you set this flag and a section contains only uninitialized data,\n * set the PointerToRawData member of IMAGE_SECTION_HEADER\n * for that section to zero;\n * otherwise, the image will fail to load because the digital signature cannot be verified.\n */\n ForceIntegrity = 0x0080,\n\n /**\n * The image is compatible with data execution prevention (DEP).\n */\n NxCompatible = 0x0100,\n\n /**\n * The image is isolation aware, but should not be isolated.\n */\n NoIsolation = 0x0200,\n\n /**\n * The image does not use structured exception handling (SEH). No SE handler may reside in this image.\n */\n NoSEH = 0x0400,\n\n /**\n * Do not bind this image.\n */\n NoBind = 0x0800,\n\n /**\n * The image must run inside an AppContainer.\n */\n AppContainer = 0x1000,\n\n /**\n * WDM (Windows Driver Model) driver.\n */\n WdmDriver = 0x2000,\n\n /**\n * Reserved (no specific name).\n */\n Reserved = 0x4000,\n\n /**\n * The image is terminal server aware.\n */\n TerminalServerAware = 0x8000,\n }\n\n }","module pe.headers{\n\n export enum ImageCharacteristics {\n /**\n * Relocation information was stripped from the file.\n * The file must be loaded at its preferred base address.\n * If the base address is not available, the loader reports an error.\n */\n RelocsStripped = 0x0001,\n\n /**\n * The file is executable (there are no unresolved external references).\n */\n ExecutableImage = 0x0002,\n\n /**\n * COFF line numbers were stripped from the file.\n */\n LineNumsStripped = 0x0004,\n\n /**\n * COFF symbol table entries were stripped from file.\n */\n LocalSymsStripped = 0x0008,\n\n /**\n * Aggressively trim the working set.\n * This value is obsolete as of Windows 2000.\n */\n AggressiveWsTrim = 0x0010,\n\n /**\n * The application can handle addresses larger than 2 GB.\n */\n LargeAddressAware = 0x0020,\n\n /**\n * The bytes of the word are reversed. This flag is obsolete.\n */\n BytesReversedLo = 0x0080,\n\n /**\n * The computer supports 32-bit words.\n */\n Bit32Machine = 0x0100,\n\n /**\n * Debugging information was removed and stored separately in another file.\n */\n DebugStripped = 0x0200,\n\n /**\n * If the image is on removable media, copy it to and run it from the swap file.\n */\n RemovableRunFromSwap = 0x0400,\n\n /**\n * If the image is on the network, copy it to and run it from the swap file.\n */\n NetRunFromSwap = 0x0800,\n\n /**\n * The image is a system file.\n */\n System = 0x1000,\n\n /**\n * The image is a DLL file.\n * While it is an executable file, it cannot be run directly.\n */\n Dll = 0x2000,\n\n /**\n * The file should be run only on a uniprocessor computer.\n */\n UpSystemOnly = 0x4000,\n\n /**\n * The bytes of the word are reversed. This flag is obsolete.\n */\n BytesReversedHi = 0x8000\n }\n\n}","module pe.headers {\n\n export enum MZSignature {\n MZ =\n \"M\".charCodeAt(0) +\n (\"Z\".charCodeAt(0) << 8)\n }\n\n}","module pe.headers {\n\n export enum Machine {\n /**\n * The target CPU is unknown or not specified.\n */\n Unknown = 0x0000,\n\n /**\n * Intel 386.\n */\n I386 = 0x014C,\n\n /**\n * MIPS little-endian\n */\n R3000 = 0x0162,\n\n /**\n * MIPS little-endian\n */\n R4000 = 0x0166,\n\n /**\n * MIPS little-endian\n */\n R10000 = 0x0168,\n\n /**\n * MIPS little-endian WCE v2\n */\n WCEMIPSV2 = 0x0169,\n\n /**\n * Alpha_AXP\n */\n Alpha = 0x0184,\n\n /**\n * SH3 little-endian\n */\n SH3 = 0x01a2,\n\n /**\n * SH3 little-endian. DSP.\n */\n SH3DSP = 0x01a3,\n\n /**\n * SH3E little-endian.\n */\n SH3E = 0x01a4,\n\n /**\n * SH4 little-endian.\n */\n SH4 = 0x01a6,\n\n /**\n * SH5.\n */\n SH5 = 0x01a8,\n\n /**\n * ARM Little-Endian\n */\n ARM = 0x01c0,\n\n /**\n * Thumb.\n */\n Thumb = 0x01c2,\n\n /**\n * AM33\n */\n AM33 = 0x01d3,\n\n /**\n * IBM PowerPC Little-Endian\n */\n PowerPC = 0x01F0,\n\n /**\n * PowerPCFP\n */\n PowerPCFP = 0x01f1,\n\n /**\n * Intel 64\n */\n IA64 = 0x0200,\n\n /**\n * MIPS\n */\n MIPS16 = 0x0266,\n\n /**\n * ALPHA64\n */\n Alpha64 = 0x0284,\n\n /**\n * MIPS\n */\n MIPSFPU = 0x0366,\n\n /**\n * MIPS\n */\n MIPSFPU16 = 0x0466,\n\n /**\n * AXP64\n */\n AXP64 = Alpha64,\n\n /**\n * Infineon\n */\n Tricore = 0x0520,\n\n /**\n * CEF\n */\n CEF = 0x0CEF,\n\n /**\n * EFI Byte Code\n */\n EBC = 0x0EBC,\n\n /**\n * AMD64 (K8)\n */\n AMD64 = 0x8664,\n\n /**\n * M32R little-endian\n */\n M32R = 0x9041,\n\n /**\n * CEE\n */\n CEE = 0xC0EE,\n }\n}","module pe.headers {\n \n export enum PEMagic {\n NT32 = 0x010B,\n NT64 = 0x020B,\n ROM = 0x107\n }\n\n}","module pe.headers {\n\n export enum PESignature {\n PE =\n \"P\".charCodeAt(0) +\n (\"E\".charCodeAt(0) << 8)\n }\n\n}","module pe.headers{\n\n export enum SectionCharacteristics {\n Reserved_0h = 0x00000000,\n Reserved_1h = 0x00000001,\n Reserved_2h = 0x00000002,\n Reserved_4h = 0x00000004,\n\n /**\n * The section should not be padded to the next boundary.\n * This flag is obsolete and is replaced by Align1Bytes.\n */\n NoPadding = 0x00000008,\n\n Reserved_10h = 0x00000010,\n\n /**\n * The section contains executable code.\n */\n ContainsCode = 0x00000020,\n\n /**\n * The section contains initialized data.\n */\n ContainsInitializedData = 0x00000040,\n\n /**\n * The section contains uninitialized data.\n */\n ContainsUninitializedData = 0x00000080,\n\n /**\n * Reserved.\n */\n LinkerOther = 0x00000100,\n\n /**\n * The section contains comments or other information.\n * This is valid only for object files.\n */\n LinkerInfo = 0x00000200,\n\n Reserved_400h = 0x00000400,\n\n /**\n * The section will not become part of the image.\n * This is valid only for object files.\n */\n LinkerRemove = 0x00000800,\n\n /**\n * The section contains COMDAT data.\n * This is valid only for object files.\n */\n LinkerCOMDAT = 0x00001000,\n\n Reserved_2000h = 0x00002000,\n\n /**\n * Reset speculative exceptions handling bits in the TLB entries for this section.\n */\n NoDeferredSpeculativeExecution = 0x00004000,\n\n /**\n * The section contains data referenced through the global pointer.\n */\n GlobalPointerRelative = 0x00008000,\n\n Reserved_10000h = 0x00010000,\n\n /**\n * Reserved.\n */\n MemoryPurgeable = 0x00020000,\n\n /**\n * Reserved.\n */\n MemoryLocked = 0x00040000,\n\n /**\n * Reserved.\n */\n MemoryPreload = 0x00080000,\n\n /**\n * Align data on a 1-byte boundary.\n * This is valid only for object files.\n */\n Align1Bytes = 0x00100000,\n\n /**\n * Align data on a 2-byte boundary.\n * This is valid only for object files.\n */\n Align2Bytes = 0x00200000,\n\n /**\n * Align data on a 4-byte boundary.\n * This is valid only for object files.\n */\n Align4Bytes = 0x00300000,\n\n /**\n * Align data on a 8-byte boundary.\n * This is valid only for object files.\n */\n Align8Bytes = 0x00400000,\n\n /**\n * Align data on a 16-byte boundary.\n * This is valid only for object files.\n */\n Align16Bytes = 0x00500000,\n\n /**\n * Align data on a 32-byte boundary.\n * This is valid only for object files.\n */\n Align32Bytes = 0x00600000,\n\n /**\n * Align data on a 64-byte boundary.\n * This is valid only for object files.\n */\n Align64Bytes = 0x00700000,\n\n /**\n * Align data on a 128-byte boundary.\n * This is valid only for object files.\n */\n Align128Bytes = 0x00800000,\n\n /**\n * Align data on a 256-byte boundary.\n * This is valid only for object files.\n */\n Align256Bytes = 0x00900000,\n\n /**\n * Align data on a 512-byte boundary.\n * This is valid only for object files.\n */\n Align512Bytes = 0x00A00000,\n\n /**\n * Align data on a 1024-byte boundary.\n * This is valid only for object files.\n */\n Align1024Bytes = 0x00B00000,\n\n /**\n * Align data on a 2048-byte boundary.\n * This is valid only for object files.\n */\n Align2048Bytes = 0x00C00000,\n\n /**\n * Align data on a 4096-byte boundary.\n * This is valid only for object files.\n */\n Align4096Bytes = 0x00D00000,\n\n /**\n * Align data on a 8192-byte boundary.\n * This is valid only for object files.\n */\n Align8192Bytes = 0x00E00000,\n\n /**\n * The section contains extended relocations.\n * The count of relocations for the section exceeds the 16 bits that is reserved for it in the section header.\n * If the NumberOfRelocations field in the section header is 0xffff,\n * the actual relocation count is stored in the VirtualAddress field of the first relocation.\n * It is an error if LinkerRelocationOverflow is set and there are fewer than 0xffff relocations in the section.\n */\n LinkerRelocationOverflow = 0x01000000,\n\n /**\n * The section can be discarded as needed.\n */\n MemoryDiscardable = 0x02000000,\n\n /**\n * The section cannot be cached.\n */\n MemoryNotCached = 0x04000000,\n\n /**\n * The section cannot be paged.\n */\n MemoryNotPaged = 0x08000000,\n\n /**\n * The section can be shared in memory.\n */\n MemoryShared = 0x10000000,\n\n /**\n * The section can be executed as code.\n */\n MemoryExecute = 0x20000000,\n\n /**\n * The section can be read.\n */\n MemoryRead = 0x40000000,\n\n /**\n * The section can be written to.\n */\n MemoryWrite = 0x80000000\n }\n}\n","module pe.headers {\n\n export enum Subsystem {\n /**\n * Unknown subsystem.\n */\n Unknown = 0,\n\n /**\n * No subsystem required (device drivers and native system processes).\n */\n Native = 1,\n\n /**\n * Windows graphical user interface (GUI) subsystem.\n */\n WindowsGUI = 2,\n\n /**\n * Windows character-mode user interface (CUI) subsystem.\n */\n WindowsCUI = 3,\n\n /**\n * OS/2 console subsystem.\n */\n OS2CUI = 5,\n\n /**\n * POSIX console subsystem.\n */\n POSIXCUI = 7,\n\n /**\n * Image is a native Win9x driver.\n */\n NativeWindows = 8,\n\n /**\n * Windows CE system.\n */\n WindowsCEGUI = 9,\n\n /**\n * Extensible Firmware Interface (EFI) application.\n */\n EFIApplication = 10,\n\n /**\n * EFI driver with boot services.\n */\n EFIBootServiceDriver = 11,\n\n /**\n * EFI driver with run-time services.\n */\n EFIRuntimeDriver = 12,\n\n /**\n * EFI ROM image.\n */\n EFIROM = 13,\n\n /**\n * Xbox system.\n */\n XBOX = 14,\n\n /**\n * Boot application.\n */\n BootApplication = 16\n }\n\n}","module pe.managed.metadata {\n\n export enum AssemblyFlags {\n /**\n * The assembly reference holds the full (unhashed) public key.\n */\n PublicKey = 0x0001,\n\n /**\n * The implementation of this assembly used at runtime is not expected to match the version seen at compile time.\n * (See the text following this table.)\n */\n Retargetable = 0x0100,\n\n /**\n * Reserved \n * (a conforming implementation of the CLI can ignore this setting on read;\n * some implementations might use this bit to indicate\n * that a CIL-to-native-code compiler should not generate optimized code).\n */\n DisableJITcompileOptimizer = 0x4000,\n\n /**\n * Reserved\n * (a conforming implementation of the CLI can ignore this setting on read;\n * some implementations might use this bit to indicate\n * that a CIL-to-native-code compiler should generate CIL-to-native code map).\n */\n EnableJITcompileTracking = 0x8000\n }\n\n}","module pe.managed.metadata {\n\n export enum AssemblyHashAlgorithm {\n None = 0x0000,\n MD5 = 0x8003,\n SHA1 = 0x8004,\n SHA256 = 0x800c,\n SHA384 = 0x800d,\n SHA512 = 0x800e\n }\n\n}","module pe.managed.metadata {\n\n /**\n * [ECMA-335 para23.2.3]\n */\n export enum CallingConventions {\n\n /**\n * Used to encode the keyword 'default' in the calling convention, see ECMA para15.3.\n */\n Default = 0x0,\n\n C = 0x1,\n\n StdCall = 0x2,\n\n FastCall = 0x4,\n\n /**\n * Used to encode the keyword 'vararg' in the calling convention, see ECMA para15.3.\n */\n VarArg = 0x5,\n\n /**\n * Used to indicate that the method has one or more generic parameters.\n */\n Generic = 0x10,\n\n /**\n * Used to encode the keyword 'instance' in the calling convention, see ECMA para15.3.\n */\n HasThis = 0x20,\n\n /**\n * Used to encode the keyword 'explicit' in the calling convention, see ECMA para15.3.\n */\n ExplicitThis = 0x40,\n\n /**\n * (ECMA para23.1.16), used to encode '.managed..' in the parameter list, see ECMA para15.3.\n */\n Sentinel = 0x41,\n }\n\n}","module pe.managed.metadata {\n\n export enum ClrImageFlags {\n ILOnly = 0x00000001,\n _32BitRequired = 0x00000002,\n ILLibrary = 0x00000004,\n StrongNameSigned = 0x00000008,\n NativeEntryPoint = 0x00000010,\n TrackDebugData = 0x00010000,\n IsIbcoptimized = 0x00020000,\t// NEW\n }\n\n}","module pe.managed.metadata {\n\n export enum ClrMetadataSignature {\n Signature = 0x424a5342\n }\n\n}","module pe.managed.metadata {\n\n /**\n * [ECMA-335 para23.1.16]\n */\n export enum ElementType {\n\n /**\n * Marks end of a list.\n */\n End = 0x00,\n\n Void = 0x01,\n\n Boolean = 0x02,\n\n Char = 0x03,\n\n I1 = 0x04,\n U1 = 0x05,\n I2 = 0x06,\n U2 = 0x07,\n I4 = 0x08,\n U4 = 0x09,\n I8 = 0x0a,\n U8 = 0x0b,\n R4 = 0x0c,\n R8 = 0x0d,\n String = 0x0e,\n\n /**\n * Followed by type.\n */\n Ptr = 0x0f,\n\n /**\n * Followed by type.\n */\n ByRef = 0x10,\n\n /**\n * Followed by TypeDef or TypeRef token.\n */\n ValueType = 0x11,\n\n /**\n * Followed by TypeDef or TypeRef token.\n */\n Class = 0x12,\n\n /**\n * Generic parameter in a generic type definition, represented as number (compressed unsigned integer).\n */\n Var = 0x13,\n\n /**\n * type rank boundsCount bound1 loCount lo1\n */\n Array = 0x14,\n\n /**\n * Generic type instantiation. Followed by type typearg-count type-1 .managed.. type-n.\n */\n GenericInst = 0x15,\n\n TypedByRef = 0x16,\n\n /**\n * System.IntPtr\n */\n I = 0x18,\n\n /**\n * System.UIntPtr\n */\n U = 0x19,\n\n /**\n * Followed by full method signature.\n */\n FnPtr = 0x1b,\n\n /**\n * System.Object\n */\n Object = 0x1c,\n\n /**\n * Single-dim array with 0 lower bound\n */\n SZArray = 0x1d,\n\n /**\n * Generic parameter in a generic method definition, represented as number (compressed unsigned integer).\n */\n MVar = 0x1e,\n\n /**\n * Required modifier: followed by TypeDef or TypeRef token.\n */\n CMod_ReqD = 0x1f,\n\n /**\n * Optional modifier: followed by TypeDef or TypeRef token.\n */\n CMod_Opt = 0x20,\n\n /**\n * Implemented within the CLI.\n */\n Internal = 0x21,\n\n /**\n * Or'd with following element types.\n */\n Modifier = 0x40,\n\n /**\n * Sentinel for vararg method signature.\n */\n Sentinel = 0x01 | Modifier,\n\n /**\n * Denotes a local variable that points at a pinned object,\n */\n Pinned = 0x05 | Modifier,\n\n R4_Hfa = 0x06 | Modifier,\n R8_Hfa = 0x07 | Modifier,\n\n /**\n * Indicates an argument of type System.Type.\n */\n ArgumentType_ = 0x10 | Modifier,\n\n /**\n * Used in custom attributes to specify a boxed object (ECMA-335 para23.3).\n */\n CustomAttribute_BoxedObject_ = 0x11 | Modifier,\n\n /**\n * Reserved_ = 0x12 | Modifier,\n */\n\n /**\n * Used in custom attributes to indicate a FIELD (ECMA-335 para22.10, 23.3).\n */\n CustomAttribute_Field_ = 0x13 | Modifier,\n\n /**\n * Used in custom attributes to indicate a PROPERTY (ECMA-335 para22.10, 23.3).\n */\n CustomAttribute_Property_ = 0x14 | Modifier,\n\n /**\n * Used in custom attributes to specify an enum (ECMA-335 para23.3).\n */\n CustomAttribute_Enum_ = 0x55\n }\n\n}","module pe.managed.metadata {\n\n /**\n * [ECMA-335 para23.1.4]\n */\n export enum EventAttributes {\n\n /**\n * Event is special.\n */\n SpecialName = 0x0200,\n\n /**\n * CLI provides 'special' behavior, depending upon the name of the event.\n */\n RTSpecialName = 0x0400,\n }\n\n}","module pe.managed.metadata {\n\n /**\n * [ECMA-335 para23.1.5]\n */\n export enum FieldAttributes {\n\n /**\n * These 3 bits contain one of the following values:\n * CompilerControlled, Private,\n * FamANDAssem, Assembly,\n * Family, FamORAssem,\n * Public.\n */\n FieldAccessMask = 0x0007,\n\n /***\n * Member not referenceable.\n */\n CompilerControlled = 0x0000,\n\n /**\n * Accessible only by the parent type.\n */\n Private = 0x0001,\n\n /**\n * Accessible by sub-types only in this Assembly.\n */\n FamANDAssem = 0x0002,\n\n /**\n * Accessibly by anyone in the Assembly.\n */\n Assembly = 0x0003,\n\n /**\n * Accessible only by type and sub-types.\n */\n Family = 0x0004,\n\n /**\n * Accessibly by sub-types anywhere, plus anyone in assembly.\n */\n FamORAssem = 0x0005,\n\n /**\n * Accessibly by anyone who has visibility to this scope field contract attributes.\n */\n Public = 0x0006,\n\n\n /**\n * Defined on type, else per instance.\n */\n Static = 0x0010,\n\n /**\n * Field can only be initialized, not written to after init.\n */\n InitOnly = 0x0020,\n\n /**\n * Value is compile time constant.\n */\n Literal = 0x0040,\n\n /**\n * Reserved (to indicate this field should not be serialized when type is remoted).\n */\n NotSerialized = 0x0080,\n\n /**\n * Field is special.\n */\n SpecialName = 0x0200,\n\n\n /**\n * Interop Attributes\n */\n\n /**\n * Implementation is forwarded through PInvoke.\n */\n PInvokeImpl = 0x2000,\n\n\n /**\n * Additional flags\n */\n\n /**\n * CLI provides 'special' behavior, depending upon the name of the field.\n */\n RTSpecialName = 0x0400,\n\n /**\n * Field has marshalling information.\n */\n HasFieldMarshal = 0x1000,\n\n /**\n * Field has default.\n */\n HasDefault = 0x8000,\n\n /**\n * Field has RVA.\n */\n HasFieldRVA = 0x0100\n }\n\n}","module pe.managed.metadata {\n\n /**\n * [ECMA-335 para23.1.6]\n */\n export enum FileAttributes {\n\n /**\n * This is not a resource file.\n */\n ContainsMetaData = 0x0000,\n\n /**\n * This is a resource file or other non-metadata-containing file.\n */\n ContainsNoMetaData = 0x0001\n }\n\n\n}","module pe.managed.metadata {\n\n // [ECMA-335 para23.1.9]\n\texport enum ManifestResourceAttributes {\n\n\t\t// These 3 bits contain one of the following values:\n\t\tVisibilityMask = 0x0007,\n\n\t\t// The Resource is exported from the Assembly.\n\t\tPublic = 0x0001,\n\n\t\t// The Resource is private to the Assembly.\n\t\tPrivate = 0x0002\n\t}\n\n}","module pe.managed.metadata {\n\n /** [ECMA-335 para23.1.10] */\n\texport enum MethodAttributes {\n\n\t\t// These 3 bits contain one of the following values:\n\t\t// CompilerControlled, \n\t\t// Private, \n\t\t// FamANDAssem, \n\t\t// Assem, \n\t\t// Family, \n\t\t// FamORAssem, \n\t\t// Public\n\t\tMemberAccessMask = 0x0007,\n\n\t\t// Member not referenceable.\n\t\tCompilerControlled = 0x0000,\n\n\n\t\t// Accessible only by the parent type.\n\t\tPrivate = 0x0001,\n\n\t\t// Accessible by sub-types only in this Assembly.\n\t\tFamANDAssem = 0x0002,\n\n\t\t// Accessibly by anyone in the Assembly.\n\t\tAssem = 0x0003,\n\n\t\t// Accessible only by type and sub-types.\n\t\tFamily = 0x0004,\n\n\t\t// Accessibly by sub-types anywhere, plus anyone in assembly.\n\t\tFamORAssem = 0x0005,\n\n\t\t// Accessibly by anyone who has visibility to this scope.\n\t\tPublic = 0x0006,\n\n\n\t\t// Defined on type, else per instance.\n\t\tStatic = 0x0010,\n\n\t\t// Method cannot be overridden.\n\t\tFinal = 0x0020,\n\n\t\t// Method is virtual.\n\t\tVirtual = 0x0040,\n\n\t\t// Method hides by name+sig, else just by name.\n\t\tHideBySig = 0x0080,\n\n\n\t\t// Use this mask to retrieve vtable attributes. This bit contains one of the following values:\n\t\t// ReuseSlot, NewSlot.\n\t\tVtableLayoutMask = 0x0100,\n\n\t\t// Method reuses existing slot in vtable.\n\t\tReuseSlot = 0x0000,\n\n\t\t// Method always gets a new slot in the vtable.\n\t\tNewSlot = 0x0100,\n\n\n\t\t// Method can only be overriden if also accessible.\n\t\tStrict = 0x0200,\n\n\t\t// Method does not provide an implementation.\n\t\tAbstract = 0x0400,\n\n\t\t// Method is special.\n\t\tSpecialName = 0x0800,\n\n\n\t\t// Interop attributes\n\n\t\t// Implementation is forwarded through PInvoke.\n\t\tPInvokeImpl = 0x2000,\n\n\t\t// Reserved: shall be zero for conforming implementations.\n\t\tUnmanagedExport = 0x0008,\n\n\n\t\t// Additional flags\n\n\t\t// CLI provides 'special' behavior, depending upon the name of the method.\n\t\tRTSpecialName = 0x1000,\n\n\t\t// Method has security associated with it.\n\t\tHasSecurity = 0x4000,\n\n\t\t// Method calls another method containing security code.\n\t\tRequireSecObject = 0x8000\n\t}\n\n}","module pe.managed.metadata {\n\n export enum MethodImplAttributes {\n\n\t\t// These 2 bits contain one of the following values:\n\t\t// IL, Native, OPTIL, Runtime.\n\t\tCodeTypeMask = 0x0003,\n\n\t\t// Method impl is CIL.\n\t\tIL = 0x0000,\n\n\t\t// Method impl is native.\n\t\tNative = 0x0001,\n\n\t\t// Reserved: shall be zero in conforming implementations.\n\t\tOPTIL = 0x0002,\n\n\t\t// Method impl is provided by the runtime.\n\t\tRuntime = 0x0003,\n\n\n\t\t// Flags specifying whether the code is managed or unmanaged.\n\t\t// This bit contains one of the following values:\n\t\t// Unmanaged, Managed.\n\t\tManagedMask = 0x0004,\n\n\t\t// Method impl is unmanaged, otherwise managed.\n\t\tUnmanaged = 0x0004,\n\n\t\t// Method impl is managed.\n\t\tManaged = 0x0000,\n\n\n\t\t// Implementation info and interop\n\n\t\t// Indicates method is defined; used primarily in merge scenarios.\n\t\tForwardRef = 0x0010,\n\n\t\t// Reserved: conforming implementations can ignore.\n\t\tPreserveSig = 0x0080,\n\n\t\t// Reserved: shall be zero in conforming implementations.\n\t\tInternalCall = 0x1000,\n\n\t\t// Method is single threaded through the body.\n\t\tSynchronized = 0x0020,\n\n\t\t// Method cannot be inlined.\n\t\tNoInlining = 0x0008,\n\n\t\t// Range check value.\n\t\tMaxMethodImplVal = 0xffff,\n\n\t\t// Method will not be optimized when generating native code.\n\t\tNoOptimization = 0x0040,\n\t}\n\n}","module pe.managed.metadata {\n\n // [ECMA-335 para23.1.12]\n\texport enum MethodSemanticsAttributes {\n\n\t\t// Setter for property.\n\t\tSetter = 0x0001,\n\n\t\t// Getter for property.\n\t\tGetter = 0x0002,\n\n\t\t// Other method for property or event.\n\t\tOther = 0x0004,\n\n\t\t// AddOn method for event.\n\t\t// This refers to the required add_ method for events. (ECMA-335 para22.13)\n\t\tAddOn = 0x0008,\n\n\t\t// RemoveOn method for event.\n\t\t// This refers to the required remove_ method for events. (ECMA-335 para22.13)\n\t\tRemoveOn = 0x0010,\n\n\t\t// Fire method for event.\n\t\t// This refers to the optional raise_ method for events. (ECMA-335 para22.13)\n\t\tFire = 0x0020\n\t}\n\n}","module pe.managed.metadata {\n\n // [ECMA-335 para23.1.8]\n\texport enum PInvokeAttributes {\n\n\t\t// PInvoke is to use the member name as specified.\n\t\tNoMangle = 0x0001,\n\n\n\t\t// Character set\n\n\t\t// These 2 bits contain one of the following values:\n\t\t// CharSetNotSpec,\n\t\t// CharSetAnsi,\n\t\t// CharSetUnicode,\n\t\t// CharSetAuto.\n\t\tCharSetMask = 0x0006,\n\n\t\tCharSetNotSpec = 0x0000,\n\t\tCharSetAnsi = 0x0002,\n\t\tCharSetUnicode = 0x0004,\n\t\tCharSetAuto = 0x0006,\n\n\n\t\t// Information about target function. Not relevant for fields.\n\t\tSupportsLastError = 0x0040,\n\n\n\t\t// Calling convention\n\n\t\t// These 3 bits contain one of the following values:\n\t\t// CallConvPlatformapi,\n\t\t// CallConvCdecl,\n\t\t// CallConvStdcall,\n\t\t// CallConvThiscall,\n\t\t// CallConvFastcall.\n\t\tCallConvMask = 0x0700,\n\t\tCallConvPlatformapi = 0x0100,\n\t\tCallConvCdecl = 0x0200,\n\t\tCallConvStdcall = 0x0300,\n\t\tCallConvThiscall = 0x0400,\n\t\tCallConvFastcall = 0x0500\n\t}\n\n}","module pe.managed.metadata {\n\n// [ECMA-335 para23.1.13]\n\texport enum ParamAttributes {\n\n\t\t// Param is [In].\n\t\tIn = 0x0001,\n\n\t\t// Param is [out].\n\t\tOut = 0x0002,\n\n\t\t// Param is optional.\n\t\tOptional = 0x0010,\n\n\t\t// Param has default value.\n\t\tHasDefault = 0x1000,\n\n\t\t// Param has FieldMarshal.\n\t\tHasFieldMarshal = 0x2000,\n\n\t\t// Reserved: shall be zero in a conforming implementation.\n\t\tUnused = 0xcfe0,\n\t}\n\n}","module pe.managed.metadata {\n\n// [ECMA-335 para23.1.14]\n\texport enum PropertyAttributes {\n\n\t\t// Property is special.\n\t\tSpecialName = 0x0200,\n\n\t\t// Runtime(metadata internal APIs) should check name encoding.\n\t\tRTSpecialName = 0x0400,\n\n\t\t// Property has default.\n\t\tHasDefault = 0x1000,\n\n\t\t// Reserved: shall be zero in a conforming implementation.\n\t\tUnused = 0xe9ff\n\t}\n\n}","module pe.managed.metadata {\n\nexport enum TypeAttributes {\n\t\t// Visibility attributes\n\n\t\t// Use this mask to retrieve visibility information.\n\t\t// These 3 bits contain one of the following values:\n\t\t// NotPublic, Public,\n\t\t// NestedPublic, NestedPrivate,\n\t\t// NestedFamily, NestedAssembly,\n\t\t// NestedFamANDAssem, NestedFamORAssem.\n\t\tVisibilityMask = 0x00000007,\n\n\t\t// Class has no public scope.\n\t\tNotPublic = 0x00000000,\n\n\t\t// Class has public scope.\n\t\tPublic = 0x00000001,\n\n\t\t// Class is nested with public visibility.\n\t\tNestedPublic = 0x00000002,\n\n\t\t// Class is nested with private visibility.\n\t\tNestedPrivate = 0x00000003,\n\n\t\t// Class is nested with family visibility.\n\t\tNestedFamily = 0x00000004,\n\n\t\t// Class is nested with assembly visibility.\n\t\tNestedAssembly = 0x00000005,\n\n\t\t// Class is nested with family and assembly visibility.\n\t\tNestedFamANDAssem = 0x00000006,\n\n\t\t// Class is nested with family or assembly visibility.\n\t\tNestedFamORAssem = 0x00000007,\n\n\n\t\t// Class layout attributes\n\n\t\t// Use this mask to retrieve class layout information.\n\t\t// These 2 bits contain one of the following values:\n\t\t// AutoLayout, SequentialLayout, ExplicitLayout.\n\t\tLayoutMask = 0x00000018,\n\n\t\t// Class fields are auto-laid out.\n\t\tAutoLayout = 0x00000000,\n\n\t\t// Class fields are laid out sequentially.\n\t\tSequentialLayout = 0x00000008,\n\n\t\t// Layout is supplied explicitly.\n\t\tExplicitLayout = 0x00000010,\n\n\n\t\t// Class semantics attributes\n\n\t\t// Use this mask to retrive class semantics information.\n\t\t// This bit contains one of the following values:\n\t\t// Class, Interface.\n\t\tClassSemanticsMask = 0x00000020,\n\n\t\t// Type is a class.\n\t\tClass = 0x00000000,\n\n\t\t// Type is an interface.\n\t\tInterface = 0x00000020,\n\n\n\t\t// Special semantics in addition to class semantics\n\n\t\t// Class is abstract.\n\t\tAbstract = 0x00000080,\n\n\t\t// Class cannot be extended.\n\t\tSealed = 0x00000100,\n\n\t\t// Class name is special.\n\t\tSpecialName = 0x00000400,\n\n\n\t\t// Implementation Attributes\n\n\t\t// Class/Interface is imported.\n\t\tImport = 0x00001000,\n\n\t\t// Reserved (Class is serializable)\n\t\tSerializable = 0x00002000,\n\n\n\t\t// String formatting Attributes\n\n\t\t// Use this mask to retrieve string information for native interop.\n\t\t// These 2 bits contain one of the following values:\n\t\t// AnsiClass, UnicodeClass, AutoClass, CustomFormatClass.\n\t\tStringFormatMask = 0x00030000,\n\n\t\t// LPSTR is interpreted as ANSI.\n\t\tAnsiClass = 0x00000000,\n\n\t\t// LPSTR is interpreted as Unicode.\n\t\tUnicodeClass = 0x00010000,\n\n\t\t// LPSTR is interpreted automatically.\n\t\tAutoClass = 0x00020000,\n\n\t\t// A non-standard encoding specified by CustomStringFormatMask.\n\t\tCustomFormatClass = 0x00030000,\n\n\t\t// Use this mask to retrieve non-standard encoding information for native interop.\n\t\t// The meaning of the values of these 2 bits isunspecified.\n\t\tCustomStringFormatMask = 0x00C00000,\n\n\n\t\t// Class Initialization Attributes\n\n\t\t// Initialize the class before first static field access.\n\t\tBeforeFieldInit = 0x00100000,\n\n\n\t\t// Additional Flags\n\n\t\t// CLI provides 'special' behavior, depending upon the name of the Type\n\t\tRTSpecialName = 0x00000800,\n\n\t\t// Type has security associate with it.\n\t\tHasSecurity = 0x00040000,\n\n\t\t// This ExportedTypeEntry is a type forwarder.\n\t\tIsTypeForwarder = 0x00200000\n\t}\n\n}","module pe.headers {\n// temporarily moved to SectionHesader, due to ordering bugs\n// either in TypeScript compiler, or this shell \n}","module pe.headers {\n \n export class DosHeader {\n static intSize = 16;\n\n mz: MZSignature = MZSignature.MZ;\n\n /**\n * Bytes on last page of file.\n */\n cblp: number = 144;\n\n /**\n * Pages in file.\n */\n cp: number = 3;\n\n /**\n * Relocations.\n */\n crlc: number = 0;\n\n /**\n * Size of header in paragraphs.\n */\n cparhdr: number = 4;\n\n /**\n * Minimum extra paragraphs needed.\n */\n minalloc: number = 0;\n\n /**\n * Maximum extra paragraphs needed.\n */\n maxalloc: number = 65535;\n\n /**\n * Initial (relative) SS value.\n */\n ss: number = 0;\n\n /**\n * Initial SP value.\n */\n sp: number = 184;\n\n /**\n * Checksum.\n */\n csum: number = 0;\n\n /**\n * Initial IP value.\n */\n ip: number = 0;\n\n /**\n * Initial (relative) CS value.\n */\n cs: number = 0;\n\n /**\n * File address of relocation table.\n */\n lfarlc: number = 64;\n\n /**\n * Overlay number.\n */\n ovno: number = 0;\n\n res1: Long = new Long(0,0);\n\n /**\n * OEM identifier (for e_oeminfo).\n */\n oemid: number = 0;\n\n /**\n * OEM information: number; e_oemid specific.\n */\n oeminfo: number = 0;\n\n reserved: number[] = [0,0,0,0,0];\n\n /**\n * uint: File address of PE header.\n */\n lfanew: number = 0;\n\n toString() {\n var result =\n \"[\" +\n (this.mz === MZSignature.MZ ? \"MZ\" :\n typeof this.mz === \"number\" ? (<number>this.mz).toString(16).toUpperCase() + \"h\" :\n typeof this.mz) + \"]\" +\n\n \".lfanew=\" +\n (typeof this.lfanew === \"number\" ? this.lfanew.toString(16).toUpperCase() + \"h\" :\n typeof this.lfanew);\n\n return result;\n }\n\n read(reader: io.BufferReader) {\n this.mz = reader.readShort();\n if (this.mz != MZSignature.MZ)\n throw new Error(\"MZ signature is invalid: \" + (<number>(this.mz)).toString(16).toUpperCase() + \"h.\");\n\n this.cblp = reader.readShort();\n this.cp = reader.readShort();\n this.crlc = reader.readShort();\n this.cparhdr = reader.readShort();\n this.minalloc = reader.readShort();\n this.maxalloc = reader.readShort();\n this.ss = reader.readShort();\n this.sp = reader.readShort();\n this.csum = reader.readShort();\n this.ip = reader.readShort();\n this.cs = reader.readShort();\n this.lfarlc = reader.readShort();\n this.ovno = reader.readShort();\n\n this.res1 = reader.readLong();\n\n this.oemid = reader.readShort();\n this.oeminfo = reader.readShort();\n\n if (!this.reserved)\n this.reserved = [];\n\n for (var i = 0; i < 5; i++) {\n this.reserved[i] = reader.readInt();\n }\n\n this.reserved.length = 5;\n\n this.lfanew = reader.readInt();\n }\n\n }\n}","module pe.headers {\n\n export class OptionalHeader {\n\n static intSize32 = 6;\n static intSize64 = 10;\n\n /** Differentiates 32-bit images from 64-bit. */\n peMagic: PEMagic = PEMagic.NT32;\n\n linkerVersion: string = \"\";\n\n /**\n * The size of the code section, in bytes, or the sum of all such sections if there are multiple code sections.\n */\n sizeOfCode: number = 0;\n\n /**\n * The size of the initialized data section, in bytes, or the sum of all such sections if there are multiple initialized data sections.\n */\n sizeOfInitializedData: number = 0;\n\n /**\n * The size of the uninitialized data section, in bytes, or the sum of all such sections if there are multiple uninitialized data sections.\n */\n sizeOfUninitializedData: number = 0;\n\n /**\n * A pointer to the entry point function, relative to the image base address.\n * For executable files, this is the starting address.\n * For device drivers, this is the address of the initialization function.\n * The entry point function is optional for DLLs.\n * When no entry point is present, this member is zero.\n */\n addressOfEntryPoint: number = 0;\n\n /**\n * A pointer to the beginning of the code section, relative to the image base.\n */\n baseOfCode: number = 0x2000;\n\n /**\n * A pointer to the beginning of the data section, relative to the image base.\n */\n baseOfData: number = 0x4000;\n\n /**\n * Uint or 64-bit long.\n * The preferred address of the first byte of the image when it is loaded in memory.\n * This value is a multiple of 64K bytes.\n * The default value for DLLs is 0x10000000.\n * The default value for applications is 0x00400000,\n * except on Windows CE where it is 0x00010000.\n */\n imageBase: any = 0x4000;\n\n /**\n * The alignment of sections loaded in memory, in bytes.\n * This value must be greater than or equal to the FileAlignment member.\n * The default value is the page size for the system.\n */\n sectionAlignment: number = 0x2000;\n\n /**\n * The alignment of the raw data of sections in the image file, in bytes.\n * The value should be a power of 2 between 512 and 64K (inclusive).\n * The default is 512.\n * If the <see cref=\"SectionAlignment\"/> member is less than the system page size,\n * this member must be the same as <see cref=\"SectionAlignment\"/>.\n */\n fileAlignment: number = 0x200;\n\n /**\n * The version of the required operating system.\n */\n operatingSystemVersion: string = \"\";\n\n /**\n * The version of the image.\n */\n imageVersion: string = \"\";\n\n /**\n * The version of the subsystem.\n */\n subsystemVersion: string = \"\";\n\n /**\n * This member is reserved and must be 0.\n */\n win32VersionValue: number = 0;\n\n /**\n * The size of the image, in bytes, including all headers. Must be a multiple of <see cref=\"SectionAlignment\"/>.\n */\n sizeOfImage: number = 0;\n\n /**\n * The combined size of the MS-DOS stub, the PE header, and the section headers,\n * rounded to a multiple of the value specified in the FileAlignment member.\n */\n sizeOfHeaders: number = 0;\n\n /**\n * The image file checksum.\n * The following files are validated at load time:\n * all drivers,\n * any DLL loaded at boot time,\n * and any DLL loaded into a critical system process.\n */\n checkSum: number = 0;\n\n /**\n * The subsystem required to run this image.\n */\n subsystem: Subsystem = Subsystem.WindowsCUI;\n\n /**\n * The DLL characteristics of the image.\n */\n dllCharacteristics: DllCharacteristics = DllCharacteristics.NxCompatible;\n\n /**\n * Uint or 64 bit long.\n * The number of bytes to reserve for the stack.\n * Only the memory specified by the <see cref=\"SizeOfStackCommit\"/> member is committed at load time;\n * the rest is made available one page at a time until this reserve size is reached.\n */\n sizeOfStackReserve: any = 0x100000;\n\n /**\n * Uint or 64 bit long.\n * The number of bytes to commit for the stack.\n */\n sizeOfStackCommit: any = 0x1000;\n\n /**\n * Uint or 64 bit long.\n * The number of bytes to reserve for the local heap.\n * Only the memory specified by the <see cref=\"SizeOfHeapCommit\"/> member is committed at load time;\n * the rest is made available one page at a time until this reserve size is reached.\n */\n sizeOfHeapReserve: any = 0x100000;\n\n /**\n * Uint or 64 bit long.\n * The number of bytes to commit for the local heap.\n */\n sizeOfHeapCommit: any = 0x1000;\n\n /**\n * This member is obsolete.\n */\n loaderFlags: number = 0;\n\n /**\n * The number of directory entries in the remainder of the optional header.\n * Each entry describes a location and size.\n */\n numberOfRvaAndSizes: number = 16;\n\n dataDirectories: AddressRange[] = [];\n\n toString() {\n var result = [];\n\n var peMagicText = formatEnum(this.peMagic, PEMagic);\n if (peMagicText)\n result.push(peMagicText);\n \n var subsystemText = formatEnum(this.subsystem, Subsystem);\n if (subsystemText)\n result.push(subsystemText);\n\n var dllCharacteristicsText = formatEnum(this.dllCharacteristics, DllCharacteristics);\n if (dllCharacteristicsText)\n result.push(dllCharacteristicsText);\n\n var nonzeroDataDirectoriesText = [];\n if (this.dataDirectories) {\n for (var i = 0; i < this.dataDirectories.length; i++) {\n if (!this.dataDirectories[i] || this.dataDirectories[i].size <= 0)\n continue;\n\n var kind = formatEnum(i, DataDirectoryKind);\n nonzeroDataDirectoriesText.push(kind);\n }\n }\n\n result.push(\n \"dataDirectories[\" +\n nonzeroDataDirectoriesText.join(\",\") + \"]\");\n\n var resultText = result.join(\" \");\n\n return resultText;\n }\n\n read(reader: io.BufferReader) {\n this.peMagic = <PEMagic>reader.readShort();\n\n if (this.peMagic != PEMagic.NT32\n && this.peMagic != PEMagic.NT64)\n throw Error(\"Unsupported PE magic value \" + (<number>this.peMagic).toString(16).toUpperCase() + \"h.\");\n\n this.linkerVersion = reader.readByte() + \".\" + reader.readByte();\n\n this.sizeOfCode = reader.readInt();\n this.sizeOfInitializedData = reader.readInt();\n this.sizeOfUninitializedData = reader.readInt();\n this.addressOfEntryPoint = reader.readInt();\n this.baseOfCode = reader.readInt();\n\n if (this.peMagic == PEMagic.NT32) {\n this.baseOfData = reader.readInt();\n this.imageBase = reader.readInt();\n }\n else {\n this.imageBase = reader.readLong();\n }\n\n this.sectionAlignment = reader.readInt();\n this.fileAlignment = reader.readInt();\n this.operatingSystemVersion = reader.readShort() + \".\" + reader.readShort();\n this.imageVersion = reader.readShort() + \".\" + reader.readShort();\n this.subsystemVersion = reader.readShort() + \".\" + reader.readShort();\n this.win32VersionValue = reader.readInt();\n this.sizeOfImage = reader.readInt();\n this.sizeOfHeaders = reader.readInt();\n this.checkSum = reader.readInt();\n this.subsystem = <Subsystem>reader.readShort();\n this.dllCharacteristics = <DllCharacteristics>reader.readShort();\n\n if (this.peMagic == PEMagic.NT32) {\n this.sizeOfStackReserve = reader.readInt();\n this.sizeOfStackCommit = reader.readInt();\n this.sizeOfHeapReserve = reader.readInt();\n this.sizeOfHeapCommit = reader.readInt();\n }\n else {\n this.sizeOfStackReserve = reader.readLong();\n this.sizeOfStackCommit = reader.readLong();\n this.sizeOfHeapReserve = reader.readLong();\n this.sizeOfHeapCommit = reader.readLong();\n }\n\n this.loaderFlags = reader.readInt();\n this.numberOfRvaAndSizes = reader.readInt();\n\n if (this.dataDirectories == null\n || this.dataDirectories.length != this.numberOfRvaAndSizes)\n this.dataDirectories = <AddressRange[]>(Array(this.numberOfRvaAndSizes));\n\n for (var i = 0; i < this.numberOfRvaAndSizes; i++) {\n if (this.dataDirectories[i]) {\n this.dataDirectories[i].address = reader.readInt();\n this.dataDirectories[i].size = reader.readInt();\n }\n else {\n this.dataDirectories[i] = new AddressRange(reader.readInt(), reader.readInt());\n }\n }\n }\n\n }\n}","module pe.headers {\n\n export class PEFileHeaders {\n dosHeader: DosHeader = new DosHeader();\n dosStub: Uint8Array = <any>[];\n peHeader: PEHeader = new PEHeader();\n optionalHeader: OptionalHeader = new OptionalHeader();\n sectionHeaders: SectionHeader[] = [];\n\n toString() {\n var result =\n \"dosHeader: \" + (this.dosHeader ? this.dosHeader + \"\" : \"null\") + \" \" +\n \"dosStub: \" + (this.dosStub ? \"[\" + this.dosStub.length + \"]\" : \"null\") + \" \" +\n \"peHeader: \" + (this.peHeader ? \"[\" + this.peHeader.machine + \"]\" : \"null\") + \" \" +\n \"optionalHeader: \" + (this.optionalHeader ? \"[\" + formatEnum(this.optionalHeader.subsystem, Subsystem) + \",\" + this.optionalHeader.imageVersion + \"]\" : \"null\") + \" \" +\n \"sectionHeaders: \" + (this.sectionHeaders ? \"[\" + this.sectionHeaders.length + \"]\" : \"null\");\n return result;\n }\n\n read(reader: io.BufferReader, async?: AsyncCallback<PEFileHeaders>) {\n this._continueRead(reader, async, 0);\n }\n\n private _continueRead(reader: io.BufferReader, async: AsyncCallback<PEFileHeaders>, stage: number) {\n var dosHeaderSize: number = 64;\n var stageCount = 6;\n\n switch (stage) {\n case 0:\n if (!this.dosHeader)\n this.dosHeader = new DosHeader();\n this.dosHeader.read(reader);\n\n stage++;\n if (async && async.progress) {\n var continueLater = async.progress(stage, stageCount);\n if (continueLater) {\n continueLater(() => this._continueRead(reader, async, stage));\n return;\n }\n }\n\n case 1:\n var dosHeaderLength = this.dosHeader.lfanew - dosHeaderSize;\n if (dosHeaderLength > 0)\n this.dosStub = reader.readBytes(dosHeaderLength);\n else\n this.dosStub = null;\n\n stage++;\n if (async && async.progress) {\n var continueLater = async.progress(stage, stageCount);\n if (continueLater) {\n continueLater(() => this._continueRead(reader, async, stage));\n return;\n }\n }\n\n case 2:\n if (!this.peHeader)\n this.peHeader = new PEHeader();\n this.peHeader.read(reader);\n\n stage++;\n if (async && async.progress) {\n var continueLater = async.progress(stage, stageCount);\n if (continueLater) {\n continueLater(() => this._continueRead(reader, async, stage));\n return;\n }\n }\n\n case 3:\n if (!this.optionalHeader)\n this.optionalHeader = new OptionalHeader();\n this.optionalHeader.read(reader);\n\n stage++;\n if (async && async.progress) {\n var continueLater = async.progress(stage, stageCount);\n if (continueLater) {\n continueLater(() => this._continueRead(reader, async, stage));\n return;\n }\n }\n\n case 4:\n if (this.peHeader.numberOfSections > 0) {\n if (!this.sectionHeaders || this.sectionHeaders.length != this.peHeader.numberOfSections)\n this.sectionHeaders = Array(this.peHeader.numberOfSections);\n\n for (var i = 0; i < this.sectionHeaders.length; i++) {\n if (!this.sectionHeaders[i])\n this.sectionHeaders[i] = new SectionHeader();\n this.sectionHeaders[i].read(reader);\n }\n }\n\n if (async) {\n async(null, this);\n }\n }\n }\n }\n\n}","module pe.headers {\n\n export class PEHeader {\n static intSize = 6;\n\n pe: PESignature = PESignature.PE;\n\n /**\n * The architecture type of the computer.\n * An image file can only be run on the specified computer or a system that emulates the specified computer.\n */\n machine: Machine = Machine.I386;\n\n /**\n * UShort. Indicates the size of the section table, which immediately follows the headers.\n * Note that the Windows loader limits the number of sections to 96.\n */\n numberOfSections: number = 0;\n\n /**\n * The low 32 bits of the time stamp of the image.\n * This represents the date and time the image was created by the linker.\n * The value is represented in the number of seconds elapsed since\n * midnight (00:00:00), January 1, 1970, Universal Coordinated Time,\n * according to the system clock.\n */\n timestamp: Date = new Date(0);\n\n /**\n * UInt. The offset of the symbol table, in bytes, or zero if no COFF symbol table exists.\n */\n pointerToSymbolTable: number = 0;\n\n /**\n * UInt. The number of symbols in the symbol table.\n */\n numberOfSymbols: number = 0;\n\n /**\n * UShort. The size of the optional header, in bytes. This value should be 0 for object files.\n */\n sizeOfOptionalHeader: number = 0;\n\n /**\n * The characteristics of the image.\n */\n characteristics: ImageCharacteristics = ImageCharacteristics.Dll | ImageCharacteristics.Bit32Machine;\n\n toString() {\n var result =\n pe.formatEnum(this.machine, Machine) + \" \" +\n pe.formatEnum(this.characteristics, ImageCharacteristics) + \" \" +\n \"Sections[\" + this.numberOfSections + \"]\";\n return result;\n }\n\n read(reader: io.BufferReader) {\n this.pe = reader.readInt();\n if (this.pe != <number>PESignature.PE)\n throw new Error(\"PE signature is invalid: \" + (<number>(this.pe)).toString(16).toUpperCase() + \"h.\");\n\n this.machine = reader.readShort();\n this.numberOfSections = reader.readShort();\n\n if (!this.timestamp)\n this.timestamp = new Date(0);\n this.timestamp.setTime(reader.readInt() * 1000);\n\n this.pointerToSymbolTable = reader.readInt();\n this.numberOfSymbols = reader.readInt();\n this.sizeOfOptionalHeader = reader.readShort();\n this.characteristics = reader.readShort();\n }\n\n }\n}","module pe.headers {\n\n // TODO: move it in its own file (why TF it doesn't compile now??)\n export class AddressRange {\n constructor(public address?: number, public size?: number) {\n if (!this.address)\n this.address = 0;\n if (!this.size)\n this.size = 0;\n }\n\n mapRelative(offset: number): number {\n var result = offset - this.address;\n if (result >= 0 && result < this.size)\n return result;\n else\n return -1;\n }\n\n toString() { return this.address.toString(16).toUpperCase() + \":\" + this.size.toString(16).toUpperCase() + \"h\"; }\n }\n\n export class AddressRangeMap extends AddressRange {\n constructor(address?: number, size?: number, public virtualAddress?: number) {\n super(address, size);\n\n if (!this.virtualAddress)\n this.virtualAddress = 0;\n }\n\n toString() { return this.address.toString(16).toUpperCase() + \":\" + this.size.toString(16).toUpperCase() + \"@\" + this.virtualAddress + \"h\"; }\n }\n\n \n \n \n export class SectionHeader extends AddressRangeMap {\n\n static intSize = 16;\n\n /**\n * An 8-byte, null-padded UTF-8 string.\n * There is no terminating null character if the string is exactly eight characters long.\n * For longer names, this member contains a forward slash (/)\n * followed by an ASCII representation of a decimal number that is an offset into the string table.\n * Executable images do not use a string table\n * and do not support section names longer than eight characters.\n */\n name: string = \"\";\n\n /**\n * If virtualSize value is greater than the size member, the section is filled with zeroes.\n * This field is valid only for executable images and should be set to 0 for object files.\n */\n virtualSize: number;\n\n /**\n * A file pointer to the beginning of the relocation entries for the section.\n * If there are no relocations, this value is zero.\n */\n pointerToRelocations: number = 0;\n\n /**\n * A file pointer to the beginning of the line-number entries for the section.\n * If there are no COFF line numbers, this value is zero.\n */\n pointerToLinenumbers: number = 0;\n\n /**\n * Ushort.\n * The number of relocation entries for the section.\n * This value is zero for executable images.\n */\n numberOfRelocations: number = 0;\n\n /**\n * Ushort.\n * The number of line-number entries for the section.\n */\n numberOfLinenumbers: number = 0;\n\n /**\n * The characteristics of the image.\n */\n characteristics: SectionCharacteristics = SectionCharacteristics.ContainsCode;\n\n constructor() {\n super();\n }\n\n toString() {\n var result = this.name + \" \" + super.toString();\n return result;\n }\n\n read(reader: io.BufferReader) {\n this.name = reader.readZeroFilledAscii(8);\n\n this.virtualSize = reader.readInt();\n this.virtualAddress = reader.readInt();\n\n var sizeOfRawData = reader.readInt();\n var pointerToRawData = reader.readInt();\n \n this.size = sizeOfRawData;\n this.address = pointerToRawData;\n\n this.pointerToRelocations = reader.readInt();\n this.pointerToLinenumbers = reader.readInt();\n this.numberOfRelocations = reader.readShort();\n this.numberOfLinenumbers = reader.readShort();\n this.characteristics = <SectionCharacteristics>reader.readInt();\n }\n\n }\n\n}","module pe.io {\n\n var checkBufferReaderOverrideOnFirstCreation: boolean = false;\n\n export class BufferReader {\n public offset: number = 0;\n\n public sections: headers.AddressRangeMap[] = [];\n private _currentSectionIndex: number = 0;\n private _currentView: DataView = null;\n\n constructor(array: number[]);\n constructor(buffer: ArrayBuffer);\n constructor(view: DataView);\n constructor(view: any) {\n if (checkBufferReaderOverrideOnFirstCreation) {\n // whatever we discover, stick to it, don't repeat it again\n checkBufferReaderOverrideOnFirstCreation = false;\n\n var global = (function () { return this; })();\n if (!(\"DataView\" in global)) {\n // the environment doesn't support DataView,\n // fall back on ArrayBuffer\n io.BufferReader = <any>ArrayReader;\n return new ArrayReader(view);\n }\n }\n\n if (!view)\n return;\n\n if (\"getUint8\" in view) {\n this._currentView = <DataView>view;\n }\n else if (\"byteLength\" in view) {\n this._currentView = new DataView(<ArrayBuffer>view);\n }\n else {\n var arrb = new ArrayBuffer(view.length);\n this._currentView = new DataView(arrb);\n for (var i = 0; i < view.length; i++) {\n this._currentView.setUint8(i, view[i]);\n }\n }\n }\n\n readByte(): number {\n var v = this._getView(1);\n var result = v.getUint8(this.offset);\n this.offset++;\n return result;\n }\n\n peekByte(): number {\n var v = this._getView(1);\n var result = v.getUint8(this.offset);\n return result;\n }\n\n readShort(): number {\n var v = this._getView(2);\n var result = v.getUint16(this.offset, true);\n this.offset += 2;\n return result;\n }\n\n readInt(): number {\n var v = this._getView(4);\n var result = v.getUint32(this.offset, true);\n this.offset += 4;\n return result;\n }\n\n readLong(): Long {\n var v = this._getView(8);\n var lo = v.getUint32(this.offset, true);\n var hi = v.getUint32(this.offset + 4, true);\n this.offset += 8;\n return new Long(lo, hi);\n }\n\n readBytes(length: number): Uint8Array {\n var v = this._getView(length);\n var result = new Uint8Array(\n v.buffer,\n v.byteOffset + this.offset,\n length);\n\n this.offset += length;\n return result;\n }\n\n readZeroFilledAscii(length: number) {\n var v = this._getView(length);\n var chars = [];\n\n for (var i = 0; i < length; i++) {\n var charCode = v.getUint8(this.offset + i);\n\n if (charCode == 0)\n continue;\n\n chars.push(String.fromCharCode(charCode));\n }\n\n this.offset += length;\n\n return chars.join(\"\");\n }\n\n readAsciiZ(maxLength: number = 1024): string {\n var v = this._getView(length);\n \n var chars = [];\n\n var byteLength = 0;\n while (true) {\n var nextChar = v.getUint8(this.offset + chars.length);\n if (nextChar == 0) {\n byteLength = chars.length + 1;\n break;\n }\n\n chars.push(String.fromCharCode(nextChar));\n if (chars.length == maxLength) {\n byteLength = chars.length;\n break;\n }\n }\n\n this.offset += byteLength;\n\n return chars.join(\"\");\n }\n\n readUtf8Z(maxLength: number): string {\n\n var v = this._getView(maxLength);\n \n var buffer = [];\n var isConversionRequired = false;\n\n for (var i = 0; !maxLength || i < maxLength; i++) {\n var b = v.getUint8(this.offset + i);\n\n if (b == 0) {\n i++;\n break;\n }\n\n buffer.push(hexUtf[b]);\n if (b >= 127)\n isConversionRequired = true;\n }\n\n this.offset += i;\n\n if (isConversionRequired)\n return decodeURIComponent(buffer.join(\"\"));\n else\n return buffer.join(\"\");\n }\n\n getVirtualOffset(): number {\n var result = this._tryMapToVirtual(this.offset);\n if (result <0)\n throw new Error(\"Cannot map current position into virtual address space.\");\n return result;\n }\n\n setVirtualOffset(rva: number): void {\n if (this._currentSectionIndex >= 0\n && this._currentSectionIndex < this.sections.length) {\n var s = this.sections[this._currentSectionIndex];\n var relative = rva - s.virtualAddress;\n if (relative >= 0 && relative < s.size) {\n this.offset = relative + s.address;\n return;\n }\n }\n\n for (var i = 0; i < this.sections.length; i++) {\n var s = this.sections[i];\n var relative = rva - s.virtualAddress;\n if (relative >=0 && relative < s.size) {\n this._currentSectionIndex = i;\n this.offset = relative + s.address;\n return;\n }\n }\n\n throw new Error(\"Address 0x\" + rva.toString(16).toUpperCase() + \" is outside of virtual address space.\");\n }\n\n private _getView(numBytes: number): DataView {\n return this._currentView;\n }\n\n\n private _tryMapToVirtual(offset: number): number {\n if (this._currentSectionIndex >= 0\n && this._currentSectionIndex < this.sections.length) {\n var s = this.sections[this._currentSectionIndex];\n var relative = offset - s.address;\n if (relative >=0 && relative < s.size)\n return relative + s.virtualAddress;\n }\n\n for (var i = 0; i < this.sections.length; i++) {\n var s = this.sections[i];\n var relative = offset - s.address;\n if (relative >=0 && relative < s.size) {\n this._currentSectionIndex = i;\n return relative + s.virtualAddress;\n }\n }\n\n return -1;\n }\n }\n\n export class ArrayReader extends BufferReader {\n public offset: number = 0;\n\n public sections: headers.AddressRangeMap[] = [];\n\n constructor(private _array: number[]) {\n super(null);\n }\n\n readByte(): number {\n var result = this._array[this.offset];\n this.offset++;\n return result;\n }\n\n peekByte(): number {\n var result = this._array[this.offset];\n return result;\n }\n\n readShort(): number {\n var result =\n this._array[this.offset] +\n (this._array[this.offset + 1] << 8);\n this.offset += 2;\n return result;\n }\n\n readInt(): number {\n var result =\n this._array[this.offset] +\n (this._array[this.offset + 1] << 8) +\n (this._array[this.offset + 2] << 16) +\n (this._array[this.offset + 3] * 0x1000000);\n this.offset += 4;\n return result;\n }\n\n readLong(): Long {\n var lo = this.readInt();\n var hi = this.readInt();\n return new Long(lo, hi);\n }\n\n readBytes(length: number): Uint8Array {\n var result = this._array.slice(this.offset, this.offset + length);\n this.offset += length;\n return <any>result;\n }\n\n readZeroFilledAscii(length: number) {\n var chars = [];\n\n for (var i = 0; i < length; i++) {\n var charCode = this._array[this.offset + i];\n\n if (charCode == 0)\n continue;\n\n chars.push(String.fromCharCode(charCode));\n }\n\n this.offset += length;\n\n return chars.join(\"\");\n }\n\n readAsciiZ(maxLength: number = 1024): string {\n var chars = [];\n\n var byteLength = 0;\n while (true) {\n var nextChar = this._array[this.offset + chars.length];\n if (nextChar == 0) {\n byteLength = chars.length + 1;\n break;\n }\n\n chars.push(String.fromCharCode(nextChar));\n if (chars.length == maxLength) {\n byteLength = chars.length;\n break;\n }\n }\n\n this.offset += byteLength;\n\n return chars.join(\"\");\n }\n\n readUtf8Z(maxLength: number): string {\n var buffer = \"\";\n var isConversionRequired = false;\n\n for (var i = 0; !maxLength || i < maxLength; i++) {\n var b = this._array[this.offset + i];\n\n if (b == 0) {\n i++;\n break;\n }\n\n if (b < 127) {\n buffer += String.fromCharCode(b);\n }\n else {\n isConversionRequired = true;\n buffer += \"%\";\n buffer += b.toString(16);\n }\n }\n\n this.offset += i;\n\n if (isConversionRequired)\n return decodeURIComponent(buffer);\n else\n return buffer;\n }\n\n getVirtualOffset(): number {\n var result = this._tryMapToVirtual2(this.offset);\n if (result <0)\n throw new Error(\"Cannot map current position into virtual address space.\");\n return result;\n }\n\n setVirtualOffset(rva: number): void {\n if ((<any>this)._currentSectionIndex >= 0\n && (<any>this)._currentSectionIndex < this.sections.length) {\n var s = this.sections[(<any>this)._currentSectionIndex];\n var relative = rva - s.virtualAddress;\n if (relative >= 0 && relative < s.size) {\n this.offset = relative + s.address;\n return;\n }\n }\n\n for (var i = 0; i < this.sections.length; i++) {\n var s = this.sections[i];\n var relative = rva - s.virtualAddress;\n if (relative >=0 && relative < s.size) {\n (<any>this)._currentSectionIndex = i;\n this.offset = relative + s.address;\n return;\n }\n }\n\n throw new Error(\"Address is outside of virtual address space.\");\n }\n\n private _tryMapToVirtual2(offset: number): number {\n if ((<any>this)._currentSectionIndex >= 0\n && (<any>this)._currentSectionIndex < this.sections.length) {\n var s = this.sections[(<any>this)._currentSectionIndex];\n var relative = offset - s.address;\n if (relative >=0 && relative < s.size)\n return relative + s.virtualAddress;\n }\n\n for (var i = 0; i < this.sections.length; i++) {\n var s = this.sections[i];\n var relative = offset - s.address;\n if (relative >=0 && relative < s.size) {\n (<any>this)._currentSectionIndex = i;\n return relative + s.virtualAddress;\n }\n }\n\n return -1;\n }\n }\n\n var hexUtf = (function () {\n var buf = [];\n for (var i = 0; i < 127; i++) {\n buf.push(String.fromCharCode(i));\n }\n for (var i = 127; i < 256; i++) {\n buf.push(\"%\" + i.toString(16));\n }\n return buf;\n })();\n\n export function getFileBufferReader(\n file: File,\n onsuccess: (BufferReader) => void,\n onfailure: (Error) => void ) {\n \n var reader = new FileReader();\n \n reader.onerror = onfailure;\n reader.onloadend = () => {\n if (reader.readyState != 2) {\n onfailure(reader.error);\n return;\n }\n\n var result: BufferReader;\n\n try {\n var resultArrayBuffer: ArrayBuffer;\n resultArrayBuffer = reader.result as ArrayBuffer;\n\n result = new BufferReader(resultArrayBuffer);\n }\n catch (error) {\n onfailure(error);\n }\n\n onsuccess(result);\n };\n\n reader.readAsArrayBuffer(file);\n }\n\n declare var VBArray;\n\n export function getUrlBufferReader(\n url: string,\n onsuccess: (BufferReader) => void,\n onfailure: (Error) => void ) {\n\n var request = new XMLHttpRequest();\n request.open(\"GET\", url, true);\n request.responseType = \"arraybuffer\";\n\n var requestLoadCompleteCalled = false;\n function requestLoadComplete() {\n if (requestLoadCompleteCalled)\n return;\n\n requestLoadCompleteCalled = true;\n\n var result: BufferReader;\n\n try {\n var response: ArrayBuffer = request.response;\n if (response) {\n var resultDataView = new DataView(response);\n result = new BufferReader(resultDataView);\n }\n else {\n var responseBody: number[] = new VBArray((<any>request).responseBody).toArray();\n var result = new BufferReader(<any>responseBody);\n }\n }\n catch (error) {\n onfailure(error);\n return;\n }\n\n onsuccess(result);\n };\n\n request.onerror = onfailure;\n request.onloadend = () => requestLoadComplete;\n request.onreadystatechange = () => {\n if (request.readyState == 4) {\n requestLoadComplete();\n }\n };\n\n request.send();\n }\n\n}","module pe.managed {\n\n export class AppDomain {\n assemblies: Assembly[] = [];\n mscorlib: Assembly = new Assembly();\n\n unresolvedAssemblies: Assembly[] = [];\n\n constructor() {\n this.mscorlib.name = \"mscorlib\";\n\n var objectType = new Type(null, this.mscorlib, \"System\", \"Object\")\n var valueType = new Type(objectType, this.mscorlib, \"System\", \"ValueType\");\n var enumType = new Type(valueType, this.mscorlib, \"System\", \"Enum\");\n\n this.mscorlib.types.push(\n new Type(valueType, this.mscorlib, \"System\", \"Void\"),\n new Type(valueType, this.mscorlib, \"System\", \"Boolean\"),\n new Type(valueType, this.mscorlib, \"System\", \"Char\"),\n new Type(valueType, this.mscorlib, \"System\", \"SByte\"),\n new Type(valueType, this.mscorlib, \"System\", \"Byte\"),\n new Type(valueType, this.mscorlib, \"System\", \"Int16\"),\n new Type(valueType, this.mscorlib, \"System\", \"UInt16\"),\n new Type(valueType, this.mscorlib, \"System\", \"Int32\"),\n new Type(valueType, this.mscorlib, \"System\", \"UInt32\"),\n new Type(valueType, this.mscorlib, \"System\", \"Int64\"),\n new Type(valueType, this.mscorlib, \"System\", \"UInt64\"),\n new Type(valueType, this.mscorlib, \"System\", \"Single\"),\n new Type(valueType, this.mscorlib, \"System\", \"Double\"),\n new Type(valueType, this.mscorlib, \"System\", \"String\"),\n new Type(objectType, this.mscorlib, \"System\", \"TypedReference\"),\n new Type(valueType, this.mscorlib, \"System\", \"IntPtr\"),\n new Type(valueType, this.mscorlib, \"System\", \"UIntPtr\"),\n objectType,\n valueType,\n enumType,\n new Type(objectType, this.mscorlib, \"System\", \"Type\"))\n\n this.assemblies.push(this.mscorlib);\n }\n\n read(reader: io.BufferReader, async?: AsyncCallback<Assembly>): Assembly {\n var context = new AssemblyReading(this, reader, async);\n var result = context.read();\n\n if (result) {\n /*\n this.assemblies.push(result);\n for (var i = 0; i < context..length; i++) {\n this.unresolvedAssemblies.push(context.unresolvedAssemblies[i]);\n }*/\n }\n\n return result;\n }\n\n resolveAssembly(\n name: string,\n version: string,\n publicKeyToken: string,\n culture: string) {\n var asm: Assembly;\n for (var i = 0; i < this.assemblies.length; i++) {\n var asm = this.assemblies[i];\n if ((asm.name && name && asm.name.toLowerCase() === name.toLowerCase())\n || (!asm.name && !name)) {\n // TODO: deal with public key signature\n if (asm.isSpeculative) {\n if (version)\n \tasm.version = version;\n if (publicKeyToken)\n \tasm.publicKeyToken = publicKeyToken;\n if (culture)\n asm.culture = culture;\n }\n return asm;\n }\n }\n\n // Short-cirquit mscorlib, because we create a speculative one at init time\n if (name && name.toLowerCase() === \"mscorlib\"\n && this.assemblies[0].isSpeculative)\n return this.assemblies[0];\n\n asm = new Assembly();\n asm.name = name;\n asm.version = version;\n asm.publicKeyToken = publicKeyToken;\n asm.culture = culture;\n return asm;\n }\n }\n\n\n class AssemblyReading {\n fileHeaders: headers.PEFileHeaders = null;\n clrDirectory: metadata.ClrDirectory = null;\n clrMetadata: metadata.ClrMetadata = null;\n metadataStreams: metadata.MetadataStreams = null;\n tableStream: metadata.TableStream = null;\n\n private _stage = 0;\n\n constructor(\n public appDomain: AppDomain,\n private _reader: io.BufferReader,\n private _async: AsyncCallback<Assembly>) {\n }\n\n read(): Assembly {\n\n var stageCount = 0;\n\n switch (this._stage) {\n case 0:\n this._reader.offset = 0;\n this.readFileHeaders();\n if (this._progressContinueLater()) return;\n\n case 1:\n this.readClrDirectory();\n if (this._progressContinueLater()) return;\n\n case 2:\n this.readClrMetadata();\n if (this._progressContinueLater()) return;\n\n case 3:\n this.readMetadataStreams();\n if (this._progressContinueLater()) return;\n\n case 4:\n this.readTableStream();\n if (this._progressContinueLater()) return;\n\n case 5:\n this.populateStrings(this.tableStream.stringIndices);\n if (this._progressContinueLater()) return;\n\n case 6:\n var mscorlib = this._getMscorlibIfThisShouldBeOne();\n if (mscorlib)\n this.tableStream.tables[metadata.TableKind.Assembly][0].def = mscorlib;\n if (this._progressContinueLater()) return;\n\n case 7:\n this.completeTables();\n if (this._progressContinueLater()) return;\n\n case 8:\n var result = this._createAssemblyFromTables();\n result.fileHeaders = this.fileHeaders;\n if (this._async)\n this._async(null, result);\n else\n return result;\n }\n }\n\n private _progressContinueLater() {\n this._stage++;\n if (this._async && this._async.progress) {\n var continueLater = this._async.progress(this._stage, 9);\n if (continueLater) {\n continueLater(() => this.read());\n return true;\n }\n }\n\n return false;\n }\n\n private _createAssemblyFromTables() {\n var assemblyTable = this.tableStream.tables[metadata.TableKind.Assembly];\n var assemblyRow = assemblyTable[0];\n var assembly: Assembly = assemblyRow.def;\n\n var typeDefTable = this.tableStream.tables[metadata.TableKind.TypeDef];\n if (typeDefTable)\n assembly.types = typeDefTable.map(t => t.def);\n\n assembly.runtimeVersion = this.clrDirectory.runtimeVersion;\n assembly.imageFlags = this.clrDirectory.imageFlags;\n assembly.specificRuntimeVersion = this.clrMetadata.runtimeVersion;\n assembly.metadataVersion = this.clrMetadata.metadataVersion;\n assembly.tableStreamVersion = this.tableStream.version;\n\n var moduleTable = this.tableStream.tables[metadata.TableKind.Module];\n if (moduleTable && moduleTable.length) {\n var moduleRow: tables.Module = moduleTable[0];\n //moduleRow.\n }\n\n return assembly;\n }\n\n private _getMscorlibIfThisShouldBeOne(): Assembly {\n var stringIndices = this.tableStream.stringIndices;\n\n var assemblyTable = this.tableStream.tables[0x20]; // Assembly\n if (!assemblyTable || !assemblyTable.length)\n return null;\n\n var assemblyRow: tables.Assembly = assemblyTable[0];\n var simpleAssemblyName = stringIndices[assemblyRow.name];\n if (!simpleAssemblyName\n || simpleAssemblyName.toLowerCase() !== \"mscorlib\")\n return null;\n\n if (!this.appDomain.assemblies[0].isSpeculative)\n return null; // mscorlib is already populated, no more guessing\n\n var typeDefTable: tables.TypeDef[] = this.tableStream.tables[0x02]; // 0x02\n if (!typeDefTable)\n return null;\n\n var containsSystemObject = false;\n var containsSystemString = false;\n\n for (var i = 0; i < typeDefTable.length; i++) {\n var typeDefRow = typeDefTable[i];\n\n var name = stringIndices[typeDefRow.name];\n var namespace = stringIndices[typeDefRow.namespace];\n\n if (namespace !== \"System\")\n continue;\n\n if (name === \"Object\")\n containsSystemObject = true;\n else if (name === \"String\")\n containsSystemString = true;\n }\n\n if (containsSystemObject && containsSystemString)\n return this.appDomain.assemblies[0];\n else\n return null;\n }\n\n private _readBlobHex(blobIndex: number): string {\n var saveOffset = this._reader.offset;\n\n this._reader.setVirtualOffset(this.metadataStreams.blobs.address);\n\n this._reader.setVirtualOffset(this.metadataStreams.blobs.address + blobIndex);\n var length = this._readBlobSize();\n\n var result = \"\";\n for (var i = 0; i < length; i++) {\n var hex = this._reader.readByte().toString(16);\n if (hex.length == 1)\n result += \"0\";\n result += hex;\n }\n\n this._reader.offset = saveOffset;\n\n return result.toUpperCase();\n }\n\n private _readBlobBytes(blobIndex: number): number[] {\n var saveOffset = this._reader.offset;\n\n this._reader.setVirtualOffset(this.metadataStreams.blobs.address);\n\n this._reader.setVirtualOffset(this.metadataStreams.blobs.address + blobIndex);\n var length = this._readBlobSize();\n\n var result: number[] = [];\n for (var i = 0; i < length; i++) {\n var b = this._reader.readByte();\n result.push(b);\n }\n\n this._reader.offset = saveOffset;\n\n return result;\n }\n\n private _readBlobSize(): number {\n var length;\n var b0 = this._reader.readByte();\n if (b0 < 0x80) {\n length = b0;\n }\n else {\n var b1 = this._reader.readByte();\n\n if ((b0 & 0xC0) == 0x80) {\n length = ((b0 & 0x3F) << 8) + b1;\n }\n else {\n var b2 = this._reader.readByte();\n var b3 = this._reader.readByte();\n length = ((b0 & 0x3F) << 24) + (b1 << 16) + (b2 << 8) + b3;\n }\n }\n\n return length;\n }\n\n readFileHeaders() {\n this.fileHeaders = new headers.PEFileHeaders();\n this.fileHeaders.read(this._reader);\n\n this._reader.sections = this.fileHeaders.sectionHeaders;\n }\n\n readClrDirectory() {\n var clrDataDirectory = this.fileHeaders.optionalHeader.dataDirectories[headers.DataDirectoryKind.Clr];\n\n this._reader.setVirtualOffset(clrDataDirectory.address);\n this.clrDirectory = new metadata.ClrDirectory();\n this.clrDirectory.read(this._reader);\n }\n\n readClrMetadata() {\n this._reader.setVirtualOffset(this.clrDirectory.metadataDir.address);\n\n this.clrMetadata = new metadata.ClrMetadata();\n this.clrMetadata.read(this._reader);\n }\n\n readMetadataStreams() {\n this.metadataStreams = new metadata.MetadataStreams();\n this.metadataStreams.read(\n this.clrDirectory.metadataDir.address,\n this.clrMetadata.streamCount,\n this._reader);\n }\n\n readTableStream() {\n this.tableStream = new metadata.TableStream();\n this.tableStream.read(\n this._reader,\n this.metadataStreams.strings.size,\n this.metadataStreams.guids.length,\n this.metadataStreams.blobs.size);\n }\n\n populateStrings(stringIndices: string[]) {\n var saveOffset = this._reader.offset;\n\n stringIndices[0] = null;\n for (var i in stringIndices) {\n if (<any>i > 0) {\n var iNum = Number(i);\n this._reader.setVirtualOffset(this.metadataStreams.strings.address + iNum);\n stringIndices[iNum] = this._reader.readUtf8Z(1024 * 1024 * 1024);\n }\n }\n }\n\n completeTables() {\n\n var completionReader = new metadata.TableCompletionReader(\n this.appDomain,\n this.tableStream, this.metadataStreams,\n this.tableStream.codedIndexReaders,\n blobIndex => this._readBlobBytes(blobIndex));\n\n for (var iTab = 0; iTab < this.tableStream.tables.length; iTab++) {\n var table = this.tableStream.tables[iTab];\n if (!table || !table.length || !table[0].precomplete) continue;\n\n for (var i = 0; i < table.length; i++) {\n var row = table[i];\n var nextRow = i + 1 < table.length ? table[i + 1] : null;\n\n row.precomplete(completionReader, nextRow);\n }\n\n }\n\n\n for (var iTab = 0; iTab < this.tableStream.tables.length; iTab++) {\n var table = this.tableStream.tables[iTab];\n if (!table || !table.length || !table[0].complete) continue;\n\n for (var i = 0; i < table.length; i++) {\n var row = table[i];\n var nextRow = i + 1 < table.length ? table[i + 1] : null;\n\n row.complete(completionReader, nextRow);\n }\n\n }\n }\n }\n\n}","module pe.managed {\n\n export class Assembly {\n\n isSpeculative: boolean = true;\n\n fileHeaders = new headers.PEFileHeaders();\n\n name: string = \"\";\n version: string = null;\n publicKey: number[] = null;\n publicKeyToken: string = null;\n culture: string = null;\n attributes: metadata.AssemblyFlags = 0;\n\n runtimeVersion: string = \"\";\n specificRuntimeVersion: string = \"\";\n imageFlags: metadata.ClrImageFlags = 0;\n metadataVersion: string = \"\";\n tableStreamVersion: string = \"\";\n generation: number = 0;\n moduleName: string = \"\";\n mvid: string = \"\";\n encId: string = \"\";\n encBaseId: string = \"\";\n\n types: Type[] = [];\n customAttributes: any[] = [];\n\n toString() {\n return this.name + \", Version=\" + this.version + \", Culture=\" + (this.culture ? this.culture : \"neutral\") + \", PublicKeyToken=\" + (this.publicKeyToken && this.publicKeyToken.length ? this.publicKeyToken : \"null\");\n }\n }\n\n}","module pe.managed {\n\n export class EventInfo {\n owner: Type = null;\n name: string = null;\n eventType: Type = null;\n\n toString() {\n return (this.eventType ? this.name : this.name + ':' + this.eventType) + ' { add; remove }';\n }\n}\n\n}","module pe.managed {\n\n export class FieldInfo {\n attributes: metadata.FieldAttributes = 0;\n name: string = \"\";\n fieldType: Type = null;\n \n fieldOffset: number = null;\n\n customAttributes: any[] = null;\n\n toString() {\n return this.fieldType ? this.name : this.name + ':' + this.fieldType;\n }\n }\n\n}","module pe.managed {\n\n export class MethodInfo {\n\n owner: Type = null;\n \n name: string = '';\n attributes: metadata.MethodAttributes = 0;\n parameters: ParameterInfo[] = [];\n\n customAttributes: any[] = null;\n\n toString() {\n return this.name + '(' + this.parameters.join(', ') + ')';\n }\n }\n\n}","module pe.managed {\n\n export class ParameterInfo {\n\n owner: MethodInfo = null;\n name: string = null;\n attributes: metadata.ParamAttributes = 0;\n customAttributes: any[] = null;\n\n parameterType: Type = null;\n\n toString() {\n return this.name;\n }\n }\n\n}","module pe.managed {\n\n export class PropertyInfo {\n owner: Type = null;\n name: string = null;\n propertyType: Type = null;\n attributes: metadata.PropertyAttributes = 0;\n\n customAttributes: any[] = null;\n }\n\n}","module pe.managed {\n\n export class Type {\n\n isSpeculative = true;\n\n attributes: metadata.TypeAttributes = 0;\n fields: FieldInfo[] = [];\n methods: MethodInfo[] = [];\n properties: PropertyInfo[] = [];\n events: EventInfo[] = [];\n\n genericPrototype: Type = null;\n genericArguments: Type[] = [];\n\n interfaces: Type[] = [];\n netedTypes: Type[] = [];\n nestingParent: Type = null;\n\n layout: { packingSize: number; classSize: number; } = null;\n\n customAttributes: any[] = null;\n\n constructor(\n public baseType?: Type,\n public assembly?: Assembly,\n public namespace?: string,\n public name?: string) {\n }\n\n getBaseType() { return this.baseType; }\n getAssembly() { return this.assembly; }\n getFullName() {\n if (this.namespace && this.namespace.length)\n return this.namespace + \".\" + this.name;\n else\n return this.name;\n }\n\n toString() {\n if (this.genericArguments.length) {\n var fullName = this.getFullName();\n var qpos = fullName.indexOf('`');\n if (qpos >= 0)\n fullName = fullName.substring(0, qpos);\n fullName += '<' + this.genericArguments.join(',') + '>';\n return fullName;\n }\n else {\n return this.getFullName();\n }\n }\n }\n\n}","module pe.managed.metadata {\n\n export class ClrDirectory {\n\n private static _clrHeaderSize = 72;\n\n cb: number = 0;\n runtimeVersion: string = \"\";\n imageFlags: metadata.ClrImageFlags = 0;\n metadataDir: headers.AddressRange = null;\n entryPointToken: number = 0;\n resourcesDir: headers.AddressRange = null;\n strongNameSignatureDir: headers.AddressRange = null;\n codeManagerTableDir: headers.AddressRange = null;\n vtableFixupsDir: headers.AddressRange = null;\n exportAddressTableJumpsDir: headers.AddressRange = null;\n managedNativeHeaderDir: headers.AddressRange = null;\n\n read(readerAtClrDataDirectory: io.BufferReader) {\n // shift to CLR directory\n var clrDirReader = readerAtClrDataDirectory;\n\n // CLR header\n this.cb = clrDirReader.readInt();\n\n if (this.cb < ClrDirectory._clrHeaderSize)\n throw new Error(\n \"Unexpectedly short CLR header structure \" + this.cb + \" reported by Cb field \" +\n \"(expected at least \" + ClrDirectory._clrHeaderSize + \").\");\n\n this.runtimeVersion = clrDirReader.readShort() + \".\" + clrDirReader.readShort();\n\n this.metadataDir = new headers.AddressRange(\n clrDirReader.readInt(),\n clrDirReader.readInt());\n\n this.imageFlags = clrDirReader.readInt();\n\n // need to convert to meaningful value before sticking into ModuleDefinition\n this.entryPointToken = clrDirReader.readInt();\n\n this.resourcesDir = new headers.AddressRange(\n clrDirReader.readInt(),\n clrDirReader.readInt());\n\n this.strongNameSignatureDir = new headers.AddressRange(\n clrDirReader.readInt(),\n clrDirReader.readInt());\n\n this.codeManagerTableDir = new headers.AddressRange(\n clrDirReader.readInt(),\n clrDirReader.readInt());\n\n this.vtableFixupsDir = new headers.AddressRange(\n clrDirReader.readInt(),\n clrDirReader.readInt());\n\n this.exportAddressTableJumpsDir = new headers.AddressRange(\n clrDirReader.readInt(),\n clrDirReader.readInt());\n\n this.managedNativeHeaderDir = new headers.AddressRange(\n clrDirReader.readInt(),\n clrDirReader.readInt());\n }\n }\n\n}","module pe.managed.metadata {\n\n export class ClrMetadata {\n\n mdSignature: metadata.ClrMetadataSignature = metadata.ClrMetadataSignature.Signature;\n metadataVersion: string = \"\";\n runtimeVersion: string = \"\";\n mdReserved: number = 0;\n mdFlags: number = 0;\n streamCount: number = 0;\n\n read(clrDirReader: io.BufferReader) {\n this.mdSignature = clrDirReader.readInt();\n if (this.mdSignature != metadata.ClrMetadataSignature.Signature)\n throw new Error(\"Invalid CLR metadata signature field \" + (<number>this.mdSignature).toString(16) + \"h (expected \" + (<number>metadata.ClrMetadataSignature.Signature).toString(16).toUpperCase() + \"h).\");\n\n this.metadataVersion = clrDirReader.readShort() + \".\" + clrDirReader.readShort();\n\n this.mdReserved = clrDirReader.readInt();\n\n var metadataStringVersionLength = clrDirReader.readInt();\n this.runtimeVersion = clrDirReader.readZeroFilledAscii(metadataStringVersionLength);\n\n this.mdFlags = clrDirReader.readShort();\n\n this.streamCount = clrDirReader.readShort();\n }\n }\n\n}","module pe.managed.metadata {\n\n export class CodedIndexReader {\n tableKindBitCount: number;\n rowIndexBitCount: number;\n isShortForm: boolean;\n\n constructor(public tables: any[][], public tableKinds: number[]) {\n this.tableKindBitCount = calcRequredBitCount(tableKinds.length - 1);\n\n var maxTableLength = 0;\n for (var i = 0; i < tableKinds.length; i++) {\n var t = tables[tableKinds[i]];\n var tableLength = t ? t.length : 0;\n if (tableLength > maxTableLength)\n maxTableLength = tableLength;\n }\n\n this.rowIndexBitCount = calcRequredBitCount(maxTableLength);\n\n this.isShortForm = this.tableKindBitCount + this.rowIndexBitCount <= 16;\n }\n\n readCodedIndex(reader: io.BufferReader): number {\n return this.isShortForm ? reader.readShort() : reader.readInt();\n }\n\n lookup(codedIndex: number): any {\n var rowIndex = codedIndex >> this.tableKindBitCount;\n if (rowIndex === 0)\n return null;\n\n var tableKindIndex = codedIndex - (rowIndex << this.tableKindBitCount);\n var tableKind = this.tableKinds[tableKindIndex];\n\n var table: any[] = this.tables[tableKind];\n if (!table)\n return null; // TODO: why?\n\n var row = table[rowIndex - 1];\n if (!row)\n return null; // TODO: why??\n\n var result = row.def;\n\n return result;\n }\n }\n\n}","module pe.managed.metadata {\n\n export class CodedIndexReaders {\n\n resolutionScope = new CodedIndexReader(this._tables, [\n TableKind.Module,\n TableKind.ModuleRef,\n TableKind.AssemblyRef,\n TableKind.TypeRef\n ]);\n\n typeDefOrRef = new CodedIndexReader(this._tables, [\n TableKind.TypeDef,\n TableKind.TypeRef,\n TableKind.TypeSpec\n ]);\n\n hasConstant = new CodedIndexReader(this._tables, [\n TableKind.Field,\n TableKind.Param,\n TableKind.Property\n ]);\n\n hasCustomAttribute = new CodedIndexReader(this._tables, [\n TableKind.MethodDef,\n TableKind.Field,\n TableKind.TypeRef,\n TableKind.TypeDef,\n TableKind.Param,\n TableKind.InterfaceImpl,\n TableKind.MemberRef,\n TableKind.Module,\n 0xFF, // none\n TableKind.Property,\n TableKind.Event,\n TableKind.StandAloneSig,\n TableKind.ModuleRef,\n TableKind.TypeSpec,\n TableKind.Assembly,\n TableKind.AssemblyRef,\n TableKind.File,\n TableKind.ExportedType,\n TableKind.ManifestResource,\n TableKind.GenericParam,\n TableKind.GenericParamConstraint,\n TableKind.MethodSpec\n ]);\n\n customAttributeType = new CodedIndexReader(this._tables, [\n 0xFF,\n 0xFF,\n TableKind.MethodDef,\n TableKind.MemberRef,\n 0xFF\n ]);\n\n hasDeclSecurity = new CodedIndexReader(this._tables, [\n TableKind.TypeDef,\n TableKind.MethodDef,\n TableKind.Assembly\n ]);\n\n implementation = new CodedIndexReader(this._tables, [\n TableKind.File,\n TableKind.AssemblyRef,\n TableKind.ExportedType\n ]);\n\n hasFieldMarshal = new CodedIndexReader(this._tables, [\n TableKind.Field,\n TableKind.Param\n ]);\n\n typeOrMethodDef = new CodedIndexReader(this._tables, [\n TableKind.TypeDef,\n TableKind.MethodDef\n ]);\n\n memberForwarded = new CodedIndexReader(this._tables, [\n TableKind.Field,\n TableKind.MethodDef\n ]);\n\n memberRefParent = new CodedIndexReader(this._tables, [\n TableKind.TypeDef,\n TableKind.TypeRef,\n TableKind.ModuleRef,\n TableKind.MethodDef,\n TableKind.TypeSpec\n ]);\n\n methodDefOrRef = new CodedIndexReader(this._tables, [\n TableKind.MethodDef,\n TableKind.MemberRef\n ]);\n\n hasSemantics = new CodedIndexReader(this._tables, [\n TableKind.Event,\n TableKind.Property\n ]);\n\n\n constructor(private _tables: any[][]) { \n }\n\n }\n \n}","module pe.managed.metadata {\n\n export class MetadataStreams {\n guids: string[] = [];\n strings: headers.AddressRange = null;\n blobs: headers.AddressRange = null;\n tables: headers.AddressRange = null;\n\n read(metadataBaseAddress: number, streamCount: number, reader: io.BufferReader) {\n\n var guidRange: headers.AddressRange;\n\n for (var i = 0; i < streamCount; i++) {\n var range = new headers.AddressRange(\n reader.readInt(),\n reader.readInt());\n\n range.address += metadataBaseAddress;\n\n var name = this._readAlignedNameString(reader);\n\n\n switch (name) {\n case \"#GUID\":\n guidRange = range;\n continue;\n\n case \"#Strings\":\n this.strings = range;\n continue;\n\n case \"#Blob\":\n this.blobs = range;\n continue;\n\n\n case \"#~\":\n case \"#-\":\n this.tables = range;\n continue;\n }\n\n (<any>this)[name] = range;\n }\n\n if (guidRange) {\n var saveOffset = reader.offset;\n reader.setVirtualOffset(guidRange.address);\n\n this.guids = Array(guidRange.size / 16);\n for (var i = 0; i < this.guids.length; i++) {\n var guid = this._readGuidForStream(reader);\n this.guids[i] = guid;\n }\n\n reader.offset = saveOffset;\n }\n }\n\n private _readAlignedNameString(reader: io.BufferReader) {\n var result = \"\";\n while (true) {\n var b = reader.readByte();\n if (b == 0)\n break;\n\n result += String.fromCharCode(b);\n }\n\n var skipCount = -1 + ((result.length + 4) & ~3) - result.length;\n for (var i = 0; i < skipCount; i++) {\n reader.readByte();\n }\n\n return result;\n }\n\n private _readGuidForStream(reader: io.BufferReader) {\n var guid = \"{\";\n for (var i = 0; i < 4; i++) {\n var hex = reader.readInt().toString(16);\n guid +=\n \"00000000\".substring(0, 8 - hex.length) + hex;\n }\n guid += \"}\";\n return guid;\n }\n }\n\n}","module pe.managed.metadata {\n\n /** ECMA-335 II.23.2 */\n export class SignatureReader {\n\n constructor(private _tables: any[][]) { \n }\n\n /** ECMA-335 II.23.2.1 */\n readMethodDefSig(reader: io.BufferReader, def: managed.MethodInfo) {\n \n var callingConvention = <SignatureReader.CallingConvention>reader.readByte();\n var genParamCount = 0;\n if (callingConvention & SignatureReader.CallingConvention.Generic)\n genParamCount = this._readCompressed(reader);\n\n var paramCount = this._readCompressed(reader);\n\n var returnType = this.readRefType(reader);\n\n var params = [];\n for (var i = 0; i < paramCount; i++) {\n var p = this.readParam(reader);\n params.push(p);\n }\n\n }\n\n /** ECMA-335 II.23.2.2 */\n readMethodRefSig(reader: io.BufferReader) {\n \n var callingConvention = <SignatureReader.CallingConvention>reader.readByte();\n var genParamCount = 0;\n if (callingConvention & SignatureReader.CallingConvention.Generic)\n genParamCount = this._readCompressed(reader);\n\n var paramCount = this._readCompressed(reader);\n\n var returnType = this.readRefType(reader);\n \n var params = [];\n var varargs = [];\n for (var i = 0; i < paramCount; i++) {\n var isvarargs = varargs.length > 0;\n\n if (!isvarargs) {\n var expectSentinel = reader.peekByte();\n if (expectSentinel === SignatureReader.CallingConvention.Sentinel) {\n reader.readByte();\n isvarargs = true;\n }\n }\n\n var p = this.readParam(reader);\n if (isvarargs)\n varargs.push(p);\n else\n params.push(p);\n }\n \n }\n\n /** ECMA-335 II.23.2.3 */\n readStandAloneMethodSig(reader: io.BufferReader, def: any) {\n\n var callingConvention = <SignatureReader.CallingConvention>reader.readByte();\n\n var paramCount = this._readCompressed(reader);\n\n var returnType = this.readRefType(reader);\n\n var params = [];\n var varargs = [];\n for (var i = 0; i < paramCount; i++) {\n var isvarargs = varargs.length > 0;\n\n if (!isvarargs) { \n var expectSentinel = reader.peekByte();\n if (expectSentinel === SignatureReader.CallingConvention.Sentinel) {\n reader.readByte();\n isvarargs = true;\n }\n }\n \n var p = this.readParam(reader);\n if (isvarargs)\n varargs.push(p);\n else\n params.push(p);\n }\n \n \n }\n\n /** ECMA-335 II.23.2.4 */\n readFieldSig(reader: io.BufferReader, def: managed.FieldInfo) {\n\n var callingConvention = <SignatureReader.CallingConvention>reader.readByte();\n if (callingConvention !== SignatureReader.CallingConvention.Field)\n throw new Error('Expected CallingConvention.Field, encountered ' + formatEnum(callingConvention, SignatureReader.CallingConvention) + '.');\n\n var customMod = this.readCustomMod(reader);\n\n var type = this.readType(reader);\n\n def.fieldType = type;\n }\n\n /** ECMA-335 II.23.2.5 */\n readPropertySig(reader: io.BufferReader, def: managed.PropertyInfo) {\n\n var callingConvention = <SignatureReader.CallingConvention>reader.readByte();\n if (callingConvention !== SignatureReader.CallingConvention.Property)\n throw new Error('Expected CallingConvention.Property, encountered ' + formatEnum(callingConvention, SignatureReader.CallingConvention) + '.');\n\n var paramCount = this._readCompressed(reader);\n\n while (true) {\n var customMod = this.readCustomMod(reader);\n if (customMod)\n { /*def.customMod... */ }\n else\n break;\n }\n\n var type = this.readType(reader);\n\n var params = [];\n for (var i = 0; i < paramCount; i++) {\n var p = this.readParam(reader);\n params.push(p);\n }\n\n def.propertyType = type;\n // TODO: def. parameters...\n }\n\n /** ECMA-335 II.23.2.5 */\n readLocalVarSig(reader: io.BufferReader) {\n\n var callingConvention = <SignatureReader.CallingConvention>reader.readByte();\n if (callingConvention !== SignatureReader.CallingConvention.Local)\n throw new Error('Expected CallingConvention.Local, encountered ' + formatEnum(callingConvention, SignatureReader.CallingConvention) + '.');\n\n var count = this._readCompressed(reader);\n\n var locals = [];\n for (var i = 0; i < count; i++) {\n\n var peekNext = reader.peekByte();\n if (peekNext === ElementType.TypedByRef) {\n reader.readByte();\n var typedByRef = null; // fetch well-known type for TypedReference\n locals.push();\n }\n\n var customMods = [];\n var constraints = [];\n\n while (true) {\n\n var customMod = this.readCustomMod(reader);\n if (customMod) {\n customMods.push(customMod);\n var eitherFound = true;\n }\n\n var constraint = this.readConstraint(reader);\n if (constraint) {\n constraints.push(constraint);\n eitherFound = true;\n }\n\n if (eitherFound) break;\n }\n\n var isByRef = false;\n peekNext = reader.peekByte();\n if (peekNext === ElementType.ByRef) {\n isByRef = true;\n reader.readByte();\n }\n\n var type = this.readType(reader);\n }\n }\n\n readRefType(reader: io.BufferReader): Type {\n return null;\n }\n\n readConstraint(reader: io.BufferReader): any { \n }\n \n readParam(reader: io.BufferReader) {\n }\n\n readCustomMod(reader: io.BufferReader): any {\n }\n\n readType(reader: io.BufferReader): Type {\n return null;\n }\n\n private _readCompressed(reader: io.BufferReader): number { \n var b0 = reader.readByte();\n if (!(b0 & 0x80)) return b0;\n\n var b1 = reader.readByte();\n if (!(b0 & 0x40))\n return ((b0 & 0x7F) << 8) | b1;\n\n var b2 = reader.readByte();\n var b3 = reader.readByte();\n\n return ((b0 & 0x3F) << 24) |\n (b1 << 16) |\n (b2 << 8) |\n b3;\n }\n \n private _readCompressedSigned(reader: io.BufferReader): number {\n // TODO: implement it correctly (ECMA-335 p.257)\n return this._readCompressed(reader);\n }\n }\n\n export module SignatureReader {\n\n /** ECMA-335 II.23.2.3 */\n export enum CallingConvention {\n\n Default = 0x0,\n\n /** This is a vararg signature too! */\n C = 0x1,\n\n StdCall = 0x2,\n\n ThisCall = 0x3,\n\n FastCall = 0x4,\n\n VarArg = 0x5,\n\n Field = 0x06,\n\n Property = 0x08,\n\n Local = 0x07,\n\n Generic = 0x10,\n\n HasThis = 0x20,\n\n ExplicitThis = 0x40,\n\n /** ECMA-335 II.23.1.16 and II.15.3 */\n Sentinel = 0x41\n\n }\n\n\n }\n \n}","module pe.managed.metadata {\n\n export class TableCompletionReader {\n constructor(\n private _appDomain: AppDomain,\n private _tableStream: TableStream,\n private _metadataStreams: MetadataStreams,\n private _codedIndexReaders: CodedIndexReaders,\n public readPublicKey: (blobIndex: number) => number[]) {\n }\n\n readString(index: number): string {\n return this._tableStream.stringIndices[index];\n }\n\n readGuid(index: number): string {\n return this._metadataStreams.guids[index];\n }\n\n copyFieldRange(fields: FieldInfo[], start: number, end?: number, owner?: Type) {\n this._copyDefRange(fields, TableKind.Field, start, end, owner);\n }\n\n copyMethodRange(methods: MethodInfo[], start: number, end?: number, owner?: Type) {\n this._copyDefRange(methods, TableKind.MethodDef, start, end, owner);\n }\n\n copyParamRange(parameters: ParameterInfo[], start: number, end: number, owner?: MethodInfo) {\n this._copyDefRange(parameters, TableKind.Param, start, end, owner);\n }\n\n private _copyDefRange(defs: any[], tableKind: TableKind, start: number, end?: number, owner?: any) {\n var table = this._tableStream.tables[tableKind];\n\n if (!end && typeof end === \"undefined\")\n end = table.length + 1;\n\n var setOwner = typeof owner !== 'undefined';\n for (var i = start - 1; i < end - 1; i++) {\n var row = table[i];\n if (setOwner)\n row.def.owner = owner;\n defs.push(row.def);\n }\n }\n\n\n lookupTable(tableKind: TableKind, tableIndex: number) {\n if (tableIndex == 0)\n return null;\n\n var table = this._tableStream.tables[tableKind];\n if (!table)\n return null;\n else\n return table[tableIndex - 1];\n }\n\n lookupResolutionScope(codedIndex: number): any { return this._codedIndexReaders.resolutionScope.lookup(codedIndex); }\n lookupTypeDefOrRef(codedIndex: number): Type { return this._codedIndexReaders.typeDefOrRef.lookup(codedIndex); }\n lookupHasConstant(codedIndex: number): any { return this._codedIndexReaders.hasConstant.lookup(codedIndex); }\n lookupHasCustomAttribute(codedIndex: number): any { return this._codedIndexReaders.hasCustomAttribute.lookup(codedIndex); }\n lookupCustomAttributeType(codedIndex: number): any { return this._codedIndexReaders.customAttributeType.lookup(codedIndex); }\n lookupHasDeclSecurity(codedIndex: number): any { return this._codedIndexReaders.hasDeclSecurity.lookup(codedIndex); }\n lookupImplementation(codedIndex: number): any { return this._codedIndexReaders.implementation.lookup(codedIndex); }\n lookupHasFieldMarshal(codedIndex: number): any { return this._codedIndexReaders.hasFieldMarshal.lookup(codedIndex); }\n lookupTypeOrMethodDef(codedIndex: number): any { return this._codedIndexReaders.typeOrMethodDef.lookup(codedIndex); }\n lookupMemberForwarded(codedIndex: number): any { return this._codedIndexReaders.memberForwarded.lookup(codedIndex); }\n lookupMemberRefParent(codedIndex: number): any { return this._codedIndexReaders.memberRefParent.lookup(codedIndex); }\n lookupMethodDefOrRef(codedIndex: number): any { return this._codedIndexReaders.methodDefOrRef.lookup(codedIndex); }\n lookupHasSemantics(codedIndex: number): any { return this._codedIndexReaders.hasSemantics.lookup(codedIndex); }\n\n resolveAssemblyRef(\n name: string,\n version: string,\n publicKeyOrToken: string,\n culture: string): managed.Assembly {\n\n return this._appDomain.resolveAssembly(name, version, publicKeyOrToken, culture);\n\n }\n\n resolveTypeRef(scope: any, namespace: string, name: string): managed.Type {\n\n if (!(scope instanceof managed.Assembly)) { // no multimodule assembly handling yet\n var type = new managed.Type();\n type.namespace = namespace;\n type.name = name;\n return type;\n }\n\n\n var asm = <managed.Assembly>scope;\n\n for (var i = 0; asm.types.length; i++) {\n var t = asm.types[i];\n if (t.name === name && t.namespace === namespace)\n return t;\n }\n\n var type = new managed.Type();\n type.namespace = namespace;\n type.name = name;\n\n if (asm.isSpeculative) { // if actual assembly has no such type, don't inject\n asm.types.push(type);\n }\n\n return type;\n }\n\n readFieldSignature(field: FieldInfo, blobIndex: number) {\n }\n }\n\n}","module pe.managed.metadata {\n\n\n export enum TableKind {\n\n\t\t// The rows in the Module table result from .module directives in the Assembly.\n\t\tModule = 0x00,\n\n\t\t// Contains ResolutionScope, TypeName and TypeNamespace columns.\n\t\tTypeRef = 0x01,\n\n\t\t// The first row of the TypeDef table represents the pseudo class that acts as parent for functions and variables \n\t\t// defined at module scope.\n\t\t// If a type is generic, its parameters are defined in the GenericParam table (para22.20). Entries in the \n\t\t// GenericParam table reference entries in the TypeDef table; there is no reference from the TypeDef table to the \n\t\t// GenericParam table.\n\t\tTypeDef = 0x02,\n\n\t\t// Each row in the Field table results from a top-level .field directive, or a .field directive inside a \n\t\t// Type. \n\t\tField = 0x04,\n\n\t\t// Conceptually, every row in the MethodDef table is owned by one, and only one, row in the TypeDef table.\n\t\t// The rows in the MethodDef table result from .method directives (para15). The RVA column is computed when \n\t\t// the image for the PE file is emitted and points to the COR_ILMETHOD structure for the body of the method.\n\t\tMethodDef = 0x06,\n\n\t\t// Conceptually, every row in the Param table is owned by one, and only one, row in the MethodDef table.\n\t\t// The rows in the Param table result from the parameters in a method declaration (para15.4), or from a .param\n\t\t// attribute attached to a method.\n\t\tParam = 0x08,\n\n\t\t// Combines two sorts of references, to Methods and to Fields of a class, known as 'MethodRef' and 'FieldRef', respectively.\n\t\t// An entry is made into the MemberRef table whenever a reference is made in the CIL code to a method or field \n\t\t// which is defined in another module or assembly. (Also, an entry is made for a call to a method with a VARARG\n\t\t// signature, even when it is defined in the same module as the call site.) \n\t\tMemberRef = 0x0A,\n\n\t\t// Used to store compile-time, constant values for fields, parameters, and properties.\n\t\tConstant = 0x0B,\n\n\t\t// Stores data that can be used to instantiate a Custom Attribute (more precisely, an \n\t\t// object of the specified Custom Attribute class) at runtime.\n\t\t// A row in the CustomAttribute table for a parent is created by the .custom attribute, which gives the value of \n\t\t// the Type column and optionally that of the Value column.\n\t\tCustomAttribute = 0x0C,\n\n\t\t// The FieldMarshal table 'links' an existing row in the Field or Param table, to information \n\t\t// in the Blob heap that defines how that field or parameter (which, as usual, covers the method return, as \n\t\t// parameter number 0) shall be marshalled when calling to or from unmanaged code via PInvoke dispatch.\n\t\t// A row in the FieldMarshal table is created if the .field directive for the parent field has specified a marshal attribute.\n\t\tFieldMarshal = 0x0D,\n\n\t\t// The rows of the DeclSecurity table are filled by attaching a .permission or .permissionset directive \n\t\t// that specifies the Action and PermissionSet on a parent assembly or parent type or method.\n\t\tDeclSecurity = 0x0E,\n\n\t\t// Used to define how the fields of a class or value type shall be laid out by the CLI.\n\t\t// (Normally, the CLI is free to reorder and/or insert gaps between the fields defined for a class or value type.)\n\t\tClassLayout = 0x0F,\n\n\t\t// Records the interfaces a type implements explicitly. Conceptually, each row in the \n\t\t// InterfaceImpl table indicates that Class implements Interface.\n\t\tInterfaceImpl = 0x09,\n\n\t\t// A row in the FieldLayout table is created if the .field directive for the parent field has specified a field offset.\n\t\tFieldLayout = 0x10,\n\n\t\t// Signatures are stored in the metadata Blob heap. In most cases, they are indexed by a column in some table -\n\t\t// Field.Signature, Method.Signature, MemberRef.Signature, etc. However, there are two cases that require a \n\t\t// metadata token for a signature that is not indexed by any metadata table. The StandAloneSig table fulfils this \n\t\t// need. It has just one column, which points to a Signature in the Blob heap.\n\t\tStandAloneSig = 0x11,\n\n\t\t// The EventMap and Event tables result from putting the .event directive on a class.\n\t\tEventMap = 0x12,\n\n\t\t// The EventMap and Event tables result from putting the .event directive on a class.\n\t\tEvent = 0x14,\n\n\t\t// The PropertyMap and Property tables result from putting the .property directive on a class.\n\t\tPropertyMap = 0x15,\n\n\t\t// Does a little more than group together existing rows from other tables.\n\t\tProperty = 0x17,\n\n\t\t// The rows of the MethodSemantics table are filled by .property and .event directives.\n\t\tMethodSemantics = 0x18,\n\n\t\t// s let a compiler override the default inheritance rules provided by the CLI. Their original use \n\t\t// was to allow a class C, that inherited method M from both interfaces I and J, to provide implementations for \n\t\t// both methods (rather than have only one slot for M in its vtable). However, MethodImpls can be used for other \n\t\t// reasons too, limited only by the compiler writer's ingenuity within the constraints defined in the Validation rules.\n\t\t// ILAsm uses the .override directive to specify the rows of the MethodImpl table.\n\t\tMethodImpl = 0x19,\n\n\t\t// The rows in the ModuleRef table result from .module extern directives in the Assembly.\n\t\tModuleRef = 0x1A,\n\n\t\t// Contains just one column, which indexes the specification of a Type, stored in the Blob heap. \n\t\t// This provides a metadata token for that Type (rather than simply an index into the Blob heap). This is required, \n\t\t// typically, for array operations, such as creating, or calling methods on the array class.\n\t\t// Note that TypeSpec tokens can be used with any of the CIL instructions that take a TypeDef or TypeRef token; \n\t\t// specifically, castclass, cpobj, initobj, isinst, ldelema, ldobj, mkrefany, newarr, refanyval, sizeof, stobj, \n\t\t// box, and unbox.\n\t\tTypeSpec = 0x1B,\n\n\t\t// Holds information about unmanaged methods that can be reached from managed code, \n\t\t// using PInvoke dispatch. \n\t\t// A row is entered in the ImplMap table for each parent Method (para15.5) that is defined with a .pinvokeimpl\n\t\t// interoperation attribute specifying the MappingFlags, ImportName, and ImportScope.\n\t\tImplMap = 0x1C,\n\n\t\t// Conceptually, each row in the FieldRVA table is an extension to exactly one row in the Field table, and records \n\t\t// the RVA (Relative Virtual Address) within the image file at which this field's initial value is stored.\n\t\t// A row in the FieldRVA table is created for each static parent field that has specified the optional data\n\t\t// label. The RVA column is the relative virtual address of the data in the PE file.\n\t\tFieldRVA = 0x1D,\n\n\t\t// ECMA-335 para22.2.\n\t\tAssembly = 0x20,\n\n\t\t// ECMA-335 para22.4 Shall be ignored by the CLI.\n\t\tAssemblyProcessor = 0x21,\n\n\t\t// ECMA-335 para22.3 Shall be ignored by the CLI.\n\t\tAssemblyOS = 0x22,\n\n\t\t// The table is defined by the .assembly extern directive (para6.3). Its columns are filled using directives \n\t\t// similar to those of the Assembly table except for the PublicKeyOrToken column, which is defined using the \n\t\t// .publickeytoken directive.\n\t\tAssemblyRef = 0x23,\n\n\t\t// ECMA-335 para22.7 Shall be ignored by the CLI.\n\t\tAssemblyRefProcessor = 0x24,\n\n\t\t// ECMA-335 para22.6 Shall be ignored by the CLI.\n\t\tAssemblyRefOS = 0x25,\n\n\t\t// The rows of the File table result from .file directives in an Assembly.\n\t\tFile = 0x26,\n\n\t\t// Holds a row for each type:\n\t\t// a. Defined within other modules of this Assembly; that is exported out of this Assembly. In essence, it \n\t\t// stores TypeDef row numbers of all types that are marked public in other modules that this Assembly \n\t\t// comprises. \n\t\t// The actual target row in a TypeDef table is given by the combination of TypeDefId (in effect, row \n\t\t// number) and Implementation (in effect, the module that holds the target TypeDef table). Note that this \n\t\t// is the only occurrence in metadata of foreign tokens; that is, token values that have a meaning in \n\t\t// another module. (A regular token value is an index into a table in the current module); OR\n\t\t// b. Originally defined in this Assembly but now moved to another Assembly. Flags must have \n\t\t// IsTypeForwarder set and Implementation is an AssemblyRef indicating the Assembly the type may \n\t\t// now be found in.\n\t\tExportedType = 0x27,\n\n\t\t// The rows in the table result from .mresource directives on the Assembly.\n\t\tManifestResource = 0x28,\n\n\t\t// NestedClass is defined as lexically 'inside' the text of its enclosing Type.\n\t\tNestedClass = 0x29,\n\n\t\t// Stores the generic parameters used in generic type definitions and generic method \n\t\t// definitions. These generic parameters can be constrained (i.e., generic arguments shall extend some class \n\t\t// and/or implement certain interfaces) or unconstrained. (Such constraints are stored in the \n\t\t// GenericParamConstraint table.)\n\t\t// Conceptually, each row in the GenericParam table is owned by one, and only one, row in either the TypeDef or \n\t\t// MethodDef tables.\n\t\tGenericParam = 0x2A,\n\n\t\t// Records the signature of an instantiated generic method.\n\t\t// Each unique instantiation of a generic method (i.e., a combination of Method and Instantiation) shall be \n\t\t// represented by a single row in the table.\n\t\tMethodSpec = 0x2B,\n\n\t\t// Records the constraints for each generic parameter. Each generic parameter\n\t\t// can be constrained to derive from zero or one class. Each generic parameter can be constrained to implement \n\t\t// zero or more interfaces.\n\t\t// Conceptually, each row in the GenericParamConstraint table is 'owned' by a row in the GenericParam table.\n\t\tGenericParamConstraint = 0x2C,\n\t}\n}","module pe.managed.metadata {\n\n export class TableReader {\n\n stringIndices: string[] = [];\n\n\n constructor(\n private _reader: io.BufferReader,\n private _tables: any[][],\n stringCount: number,\n guidCount: number,\n blobCount: number,\n private _codedIndexReaders: CodedIndexReaders) {\n this.readStringIndex = this._getDirectReader(stringCount);\n this.readGuid = this._getDirectReader(guidCount);\n this.readBlobIndex = this._getDirectReader(blobCount);\n\n this.readGenericParamTableIndex = this._getTableIndexReader(TableKind.GenericParam);\n this.readParamTableIndex = this._getTableIndexReader(TableKind.Param);\n this.readFieldTableIndex = this._getTableIndexReader(TableKind.Field);\n this.readMethodDefTableIndex = this._getTableIndexReader(TableKind.MethodDef);\n this.readTypeDefTableIndex = this._getTableIndexReader(TableKind.TypeDef);\n this.readEventTableIndex = this._getTableIndexReader(TableKind.Event);\n this.readPropertyTableIndex = this._getTableIndexReader(TableKind.Property);\n this.readModuleRefTableIndex = this._getTableIndexReader(TableKind.ModuleRef);\n this.readAssemblyTableIndex = this._getTableIndexReader(TableKind.Assembly);\n }\n\n private readStringIndex: () => number;\n\n readString() {\n var index = this.readStringIndex();\n this.stringIndices[index] = \"\";\n\n return index;\n }\n\n private _getDirectReader(spaceSize: number): any {\n return spaceSize > 65535 ? this.readInt : this.readShort;\n }\n\n private _getTableIndexReader(tableKind: number) {\n var table = this._tables[tableKind];\n return this._getDirectReader(table ? table.length : 0);\n }\n\n private _getCodedIndexReader(tables: number[]) {\n var maxTableLength = 0;\n for (var i = 0; i < tables.length; i++) {\n var tableIndex = tables[i];\n var table = this._tables[tableIndex];\n maxTableLength = Math.max(maxTableLength, table ? table.length : 0);\n }\n\n var tableKindBitCount = calcRequredBitCount(tables.length - 1);\n var tableIndexBitCount = calcRequredBitCount(maxTableLength);\n\n var totalBitCount = tableKindBitCount + tableIndexBitCount;\n return totalBitCount <= 16 ?\n this.readShort :\n this.readInt;\n }\n\n readByte(): number { return this._reader.readByte(); }\n readShort(): number { return this._reader.readShort(); }\n readInt(): number { return this._reader.readInt(); }\n\n readGuid: () => number;\n\n readResolutionScope() { return this._codedIndexReaders.resolutionScope.readCodedIndex(this._reader); }\n readTypeDefOrRef() { return this._codedIndexReaders.typeDefOrRef.readCodedIndex(this._reader); }\n readHasConstant() { return this._codedIndexReaders.hasConstant.readCodedIndex(this._reader); }\n readHasCustomAttribute() { return this._codedIndexReaders.hasCustomAttribute.readCodedIndex(this._reader); }\n readCustomAttributeType() { return this._codedIndexReaders.customAttributeType.readCodedIndex(this._reader); }\n readHasDeclSecurity() { return this._codedIndexReaders.hasDeclSecurity.readCodedIndex(this._reader); }\n readImplementation() { return this._codedIndexReaders.implementation.readCodedIndex(this._reader); }\n readHasFieldMarshal() { return this._codedIndexReaders.hasFieldMarshal.readCodedIndex(this._reader); }\n readTypeOrMethodDef() { return this._codedIndexReaders.typeOrMethodDef.readCodedIndex(this._reader); }\n readMemberForwarded() { return this._codedIndexReaders.memberForwarded.readCodedIndex(this._reader); }\n readMemberRefParent() { return this._codedIndexReaders.memberRefParent.readCodedIndex(this._reader); }\n readMethodDefOrRef() { return this._codedIndexReaders.methodDefOrRef.readCodedIndex(this._reader); }\n readHasSemantics() { return this._codedIndexReaders.hasSemantics.readCodedIndex(this._reader); }\n\n readBlobIndex: () => number;\n\n readGenericParamTableIndex: () => number;\n readParamTableIndex: () => number;\n readFieldTableIndex: () => number;\n readMethodDefTableIndex: () => number;\n readTypeDefTableIndex: () => number;\n readEventTableIndex: () => number;\n readPropertyTableIndex: () => number;\n readModuleRefTableIndex: () => number;\n readAssemblyTableIndex: () => number;\n }\n\n}","module pe.managed.metadata {\n\n export class TableStream {\n reserved0: number = 0;\n version: string = \"\";\n\n // byte\n heapSizes: number = 0;\n\n reserved1: number = 0;\n\n tables: any[][] = [];\n stringIndices: string[] = [];\n\n codedIndexReaders: CodedIndexReaders = null;\n\n read(reader: io.BufferReader, stringCount: number, guidCount: number, blobCount: number) {\n this.reserved0 = reader.readInt();\n\n // Note those are bytes, not shorts!\n this.version = reader.readByte() + \".\" + reader.readByte();\n\n this.heapSizes = reader.readByte();\n this.reserved1 = reader.readByte();\n\n var valid = reader.readLong();\n var sorted = reader.readLong();\n\n var tableCounts = this._readTableRowCounts(valid, reader);\n\n this._populateTableRows(tableCounts);\n\n this.codedIndexReaders = new CodedIndexReaders(this.tables);\n\n var tableReader = new TableReader(reader, this.tables, stringCount, guidCount, blobCount, this.codedIndexReaders);\n this._readTableRows(tableCounts, tableReader);\n\n this.stringIndices = tableReader.stringIndices;\n }\n\n private _readTableRowCounts(valid: Long, tableReader: io.BufferReader) {\n var tableCounts: number[] = [];\n\n var bits = valid.lo;\n for (var tableIndex = 0; tableIndex < 32; tableIndex++) {\n if (bits & 1) {\n var rowCount = tableReader.readInt();\n tableCounts[tableIndex] = rowCount;\n }\n bits = bits >> 1;\n }\n\n bits = valid.hi;\n for (var i = 0; i < 32; i++) {\n var tableIndex = i + 32;\n if (bits & 1) {\n var rowCount = tableReader.readInt();\n tableCounts[tableIndex] = rowCount;\n }\n bits = bits >> 1;\n }\n\n return tableCounts;\n }\n\n private _populateTableObjects(table: any[], Ctor: any, count: number) {\n for (var i = 0; i < count; i++) {\n table.push(new Ctor());\n }\n }\n\n private _populateTableRows(tableCounts: number[]) {\n for (var i = 0; i < tableCounts.length; i++) {\n var table = [];\n this.tables[i] = table;\n var tableName = TableKind[i];\n var TableType = tables[tableName];\n\n if (typeof (TableType) === \"undefined\") {\n if (tableCounts[i])\n throw new Error(\"Table 0x\" + i.toString(16).toUpperCase() + \" has \" + tableCounts[i] + \" rows but no definition.\");\n continue;\n }\n\n this._populateTableObjects(table, TableType, tableCounts[i]);\n }\n }\n\n private _readTableRows(tableCounts: number[], reader: TableReader) {\n for (var i = 0; i < tableCounts.length; i++) {\n var table = this.tables[i];\n var tableName = TableKind[i];\n var TableType = tables[tableName];\n\n for (var iRow = 0; iRow < tableCounts[i]; iRow++) {\n table[iRow].read(reader);\n }\n }\n }\n }\n\n}","module pe.managed.metadata {\n\n export function calcRequredBitCount(maxValue) {\n var bitMask = maxValue;\n var result = 0;\n\n while (bitMask != 0) {\n result++;\n bitMask >>= 1;\n }\n\n return result;\n }\n\n}","declare var jsSHA: any;\n\nmodule pe.managed.tables {\n\n /** ECMA-335 II.22.2 */\n export class Assembly {\n\n def: managed.Assembly = null;\n\n hashAlgId: metadata.AssemblyHashAlgorithm = 0;\n majorVersion: number = 0;\n minorVersion: number = 0;\n buildNumber: number = 0;\n revisionNumber: number = 0;\n flags: metadata.AssemblyFlags = 0;\n publicKey: number = 0;\n name: number = 0;\n culture: number = 0;\n\n read(reader: metadata.TableReader) {\n this.hashAlgId = reader.readInt();\n this.majorVersion = reader.readShort();\n this.minorVersion = reader.readShort();\n this.buildNumber = reader.readShort();\n this.revisionNumber = reader.readShort();\n this.flags = reader.readInt();\n this.publicKey = reader.readBlobIndex();\n this.name = reader.readString();\n this.culture = reader.readString();\n }\n\n precomplete(reader: metadata.TableCompletionReader) {\n var name = reader.readString(this.name);\n var culture = reader.readString(this.culture);\n var version = this.majorVersion + '.' + this.minorVersion + '.' + this.buildNumber + '.' + this.revisionNumber;\n var pk = reader.readPublicKey(this.publicKey);\n var pktoken = pk && pk.length ? this._hashPublicKey(pk) : null;\n\n this.def = reader.resolveAssemblyRef(name, version, pktoken, culture);\n this.def.isSpeculative = false;\n this.def.name = name;\n this.def.version = version;\n this.def.publicKey = pk;\n this.def.publicKeyToken = pktoken;\n }\n\n \tprivate _hashPublicKey(pk: number[]): string {\n var algo: string;\n\n switch (this.hashAlgId) {\n case pe.managed.metadata.AssemblyHashAlgorithm.MD5:\n if (typeof console!=='undefined' && console && typeof console.error==='function')\n console.error('Assembly hashing using MD5 is not currently supported');\n break;\n\n case pe.managed.metadata.AssemblyHashAlgorithm.SHA1:\n algo = 'SHA-1';\n break;\n\n case pe.managed.metadata.AssemblyHashAlgorithm.SHA384:\n algo = 'SHA-384';\n break;\n\n case pe.managed.metadata.AssemblyHashAlgorithm.SHA512:\n algo = 'SHA-512';\n break;\n\n case pe.managed.metadata.AssemblyHashAlgorithm.None:\n break;\n\n default:\n throw new Error('Assembly hashing using unknown '+this.hashAlgId+' algorithm is not supported.');\n\n }\n\n if (algo) {\n var bytes = '';\n for (var i = 0; i < pk.length; i++) {\n bytes += String.fromCharCode(pk[i]);\n }\n var shaObj = new jsSHA(algo, 'BYTES');\n shaObj.update(bytes);\n var hash = shaObj.getHash('BYTES');\n\n var result = \"\";\n // reverse and take no more than 8 bytes for the token\n for (var i = 0; i < hash.length && i < 8; i++) {\n var hex = hash.charCodeAt(hash.length - i - 1).toString(16);\n if (hex.length == 1)\n result += \"0\";\n result += hex;\n }\n\n return result;\n }\n else {\n \thash = pk;\n var result = \"\";\n for (var i = 0; i < hash.length; i++) {\n var hex = hash[i].toString(16);\n if (hex.length == 1)\n result += \"0\";\n result += hex;\n }\n\n return result;\n }\n }\n }\n\n}","module pe.managed.tables {\n\n /** ECMA-335 II.22.3 */\n export class AssemblyOS {\n TableKind = 0x22;\n\n osPlatformId: number = 0;\n osMajorVersion: number = 0;\n osMinorVersion: number = 0;\n\n read(reader: metadata.TableReader) {\n this.osPlatformId = reader.readInt();\n this.osMajorVersion = reader.readShort();\n this.osMinorVersion = reader.readShort();\n }\n }\n\n}","module pe.managed.tables {\n\n /** ECMA-335 II.22.4 */\n export class AssemblyProcessor {\n TableKind = 0x21;\n\n processor: number = 0;\n\n reader(reader: metadata.TableReader) {\n this.processor = reader.readInt();\n }\n }\n\n}","module pe.managed.tables {\n\n /** ECMA-335 II.22.5 */\n export class AssemblyRef {\n\n def: managed.Assembly = null;\n\n majorVersion: number = 0;\n minorVersion: number = 0;\n buildNumber: number = 0;\n revisionNumber: number = 0;\n flags: metadata.AssemblyFlags = 0;\n publicKeyOrToken: number = 0;\n name: number = 0;\n culture: number = 0;\n hashValue: number = 0;\n \n read(reader: metadata.TableReader) {\n this.majorVersion = reader.readShort();\n this.minorVersion = reader.readShort();\n this.buildNumber = reader.readShort();\n this.revisionNumber = reader.readShort();\n this.flags = reader.readInt();\n this.publicKeyOrToken = reader.readBlobIndex();\n this.name = reader.readString();\n this.culture = reader.readString();\n this.hashValue = reader.readBlobIndex();\n }\n \n precomplete(reader: metadata.TableCompletionReader) {\n var name = reader.readString(this.name);\n var culture = reader.readString(this.culture);\n var version = this.majorVersion + '.' + this.minorVersion + '.' + this.buildNumber + '.' + this.revisionNumber;\n var pk = null; // reader.readPublicKey(this.publicKey);\n\n this.def = reader.resolveAssemblyRef(name, version, pk, culture);\n }\n\n }\n\n}","module pe.managed.tables {\n\n /** ECMA-335 II.2.6 */\n export class AssemblyRefOs {\n TableKind = 0x25;\n\n osPlatformId: number = 0;\n osMajorVersion: number = 0;\n osMinorVersion: number = 0;\n assemblyRef: number = 0;\n\n read(reader: metadata.TableReader) {\n this.osPlatformId = reader.readInt();\n this.osMajorVersion = reader.readInt();\n this.osMinorVersion = reader.readInt();\n this.assemblyRef = reader.readAssemblyTableIndex();\n }\n }\n\n}","module pe.managed.tables {\n\n /** ECMA-335 II.22.7 */\n export class AssemblyRefProcessor {\n TableKind = 0x24;\n\n processor: number;\n\n read(reader: metadata.TableReader) {\n this.processor = reader.readInt();\n }\n }\n\n}","module pe.managed.tables {\n\n /** ECMA-335 II.22.8 */\n export class ClassLayout {\n TableKind = 0x0F;\n\n packingSize: number = 0;\n classSize: number = 0;\n parent: number = 0;\n\n read(reader: metadata.TableReader) {\n this.packingSize = reader.readShort();\n this.classSize = reader.readInt();\n this.parent = reader.readTypeDefTableIndex();\n }\n \n complete(reader: metadata.TableCompletionReader) {\n var typeDef = <TypeDef>reader.lookupTable(metadata.TableKind.TypeDef, this.parent);\n if (typeDef)\n typeDef.def.layout = { packingSize: this.packingSize, classSize: this.classSize };\n }\n\n }\n\n}","module pe.managed.tables {\n\n /** ECMA-335 II.22.9 */\n export class Constant {\n TableKind = 0x0B;\n\n type: number = 0;\n parent: number = 0;\n value: number = 0;\n\n read(reader: metadata.TableReader) {\n this.type = reader.readByte();\n var padding = reader.readByte();\n this.parent = reader.readHasConstant();\n this.value = reader.readBlobIndex();\n }\n \n complete(reader: metadata.TableCompletionReader) {\n var parentDef = reader.lookupHasConstant(this.parent);\n // TODO: apply constant to parentDef\n }\n\n }\n\n}","module pe.managed.tables {\n\n /** ECMA-335 II.22.10 */\n export class CustomAttribute {\n TableKind = 0x0C;\n\n parent: number = 0;\n type: number = 0;\n value: number = 0;\n\n read(reader: metadata.TableReader) {\n this.parent = reader.readHasCustomAttribute();\n this.type = reader.readCustomAttributeType();\n this.value = reader.readBlobIndex();\n }\n\n static fire = true;\n complete(reader: metadata.TableCompletionReader) {\n var attrParent = reader.lookupHasCustomAttribute(this.parent);\n var attrCtor = reader.lookupCustomAttributeType(this.type);\n\n if (attrParent && attrCtor) {\n if (!attrParent.customAttributes)\n attrParent.customAttributes = [];\n \n // TODO: create full attribute descriptor rather than just constructor\n attrParent.customAttributes.push(attrCtor);\n }\n }\n\n }\n\n}","module pe.managed.tables {\n\n /** ECMA-335 II.22.11 */\n export class DeclSecurity {\n\n action: number = 0;\n parent: number = 0;\n permissionSet: number = 0;\n\n read(reader: metadata.TableReader) {\n this.action = reader.readShort();\n this.parent = reader.readHasDeclSecurity();\n this.permissionSet = reader.readBlobIndex();\n }\n\n complete(reader: metadata.TableCompletionReader) {\n var declSecurityParent = reader.lookupHasCustomAttribute(this.parent);\n if (declSecurityParent) {\n var declSecurityParentDef = declSecurityParent.def;\n }\n }\n }\n\n}","module pe.managed.tables {\n\n /** ECMA-335 II.22.13 */\n export class Event {\n\n def = new EventInfo();\n\n eventFlags: metadata.EventAttributes = 0;\n name: number = 0;\n eventType: number = 0;\n\n read(reader: metadata.TableReader) {\n this.eventFlags = reader.readShort();\n this.name = reader.readString();\n this.eventType = reader.readTypeDefOrRef();\n }\n \n complete(reader: metadata.TableCompletionReader) {\n var type = reader.lookupTypeDefOrRef(this.eventType);\n this.def.eventType = type;\n }\n\n }\n\n}","module pe.managed.tables {\n\n /** ECMA-335 II.22.12 */\n export class EventMap {\n\n parent: number = 0;\n eventList: number = 0;\n\n read(reader: metadata.TableReader) {\n this.parent = reader.readTypeDefTableIndex();\n this.eventList = reader.readEventTableIndex();\n }\n\n complete(reader: metadata.TableCompletionReader) {\n var type = <TypeDef>reader.lookupTable(metadata.TableKind.TypeDef, this.parent);\n var event = <Event>reader.lookupTable(metadata.TableKind.Event, this.eventList);\n\n if (type && event)\n type.def.events.push(event.def);\n }\n }\n\n}","module pe.managed.tables {\n\n /** ECMA-335 II.22.14 */\n export class ExportedType {\n\n flags: metadata.TypeAttributes = 0;\n typeDefId: number = 0;\n typeName: number = 0;\n typeNamespace: number = 0;\n implementation: number = 0;\n\n read(reader: metadata.TableReader) {\n this.flags = reader.readInt();\n this.typeDefId = reader.readInt();\n this.typeName = reader.readString();\n this.typeNamespace = reader.readString();\n this.implementation = reader.readImplementation();\n }\n \n complete(reader: metadata.TableCompletionReader) {\n var impl = reader.lookupImplementation(this.implementation);\n // TODO: do something?\n }\n \n }\n\n}","module pe.managed.tables {\n\n /** ECMA-335 II.22.15 */\n export class Field {\n\n def = new managed.FieldInfo();\n\n name: number = 0;\n signature: number = 0;\n\n read(reader: metadata.TableReader) {\n this.def.attributes = reader.readShort();\n this.name = reader.readString();\n this.signature = reader.readBlobIndex();\n }\n\n complete(reader: metadata.TableCompletionReader) {\n this.def.name = reader.readString(this.name);\n reader.readFieldSignature(this.def, this.signature);\n }\n }\n\n}","module pe.managed.tables {\n\n /** ECMA-335 II.22.8 */\n export class FieldLayout {\n TableKind = 0x10;\n\n offset: number = 0;\n field: number = 0;\n\n read(reader: metadata.TableReader) {\n this.offset = reader.readInt();\n this.field = reader.readFieldTableIndex();\n }\n\n complete(reader: metadata.TableCompletionReader) {\n var field = reader.lookupTable(metadata.TableKind.Field, this.field);\n if (field)\n field.fieldOffset = this.offset;\n }\n }\n\n}","module pe.managed.tables {\n\n /** ECMA-335 II.22.17 */\n export class FieldMarshal {\n TableKind = 0x0D;\n\n parent: number = 0;\n nativeType: number = 0;\n\n read(reader: metadata.TableReader) {\n this.parent = reader.readHasFieldMarshal();\n this.nativeType = reader.readBlobIndex();\n }\n \n complete(reader: metadata.TableCompletionReader) {\n var parent = reader.lookupHasFieldMarshal(this.parent);\n // TODO: do some matching?\n }\n }\n\n}","module pe.managed.tables {\n\n /** ECMA-335 II.22.18 */\n export class FieldRVA {\n TableKind = 0x1D;\n\n rva: number = 0;\n field: number = 0;\n\n read(reader: metadata.TableReader) {\n this.rva = reader.readInt();\n this.field = reader.readFieldTableIndex();\n }\n \n complete(reader: metadata.TableCompletionReader) {\n var field = reader.lookupTable(metadata.TableKind.Field, this.field);\n // TODO: rva to what?\n }\n }\n\n}","module pe.managed.tables {\n\n /** ECMA-335 II.22.19 */\n export class File {\n TableKind = 0x26;\n\n flags: metadata.FileAttributes = 0;\n name: number = 0;\n hashValue: number = 0;\n\n read(reader: metadata.TableReader) {\n this.flags = reader.readInt();\n this.name = reader.readString();\n this.hashValue = reader.readBlobIndex();\n }\n }\n\n}","module pe.managed.tables {\n\n /** ECMA-335 II.22.20 */\n export class GenericParam {\n TableKind = 0x2A;\n\n def = new Type();\n \n number_: number = 0;\n owner: number = 0;\n name: number = 0;\n\n read(reader: metadata.TableReader) {\n this.number_ = reader.readShort();\n this.def.attributes = reader.readShort();\n this.owner = reader.readTypeOrMethodDef();\n this.name = reader.readString();\n }\n \n complete(reader: metadata.TableCompletionReader) {\n this.def.genericPrototype = reader.lookupTypeDefOrRef(this.owner);\n this.def.name = reader.readString(this.name);\n\n if (this.def.genericPrototype && (<Type>this.def.genericPrototype).genericArguments) {\n (<Type>this.def.genericPrototype).genericArguments[this.number_] = this.def;\n }\n }\n }\n\n}","module pe.managed.tables {\n\n /** ECMA-335 II.22.21 */\n export class GenericParamConstraint {\n\n owner: number = 0;\n constraint: number = 0;\n\n read(reader: metadata.TableReader) {\n this.owner = reader.readGenericParamTableIndex();\n this.constraint = reader.readTypeDefOrRef();\n }\n\n complete(reader: metadata.TableCompletionReader) {\n var genericParam = reader.lookupTable(metadata.TableKind.GenericParam, this.owner);\n var constrType = reader.lookupTypeDefOrRef(this.constraint);\n // TODO: store constraint there\n }\n }\n\n}","module pe.managed.tables {\n\n /** ECMA-335 II.22.22 */\n export class ImplMap {\n TableKind = 0x1C;\n\n mappingFlags: metadata.PInvokeAttributes = 0;\n memberForwarded: number = 0;\n importName: number = 0;\n importScope: number = 0;\n\n read(reader: metadata.TableReader) {\n this.mappingFlags = reader.readShort();\n this.memberForwarded = reader.readMemberForwarded();\n this.importName = reader.readString();\n this.importScope = reader.readModuleRefTableIndex();\n }\n \n complete(reader: metadata.TableCompletionReader) {\n var forwarded = reader.lookupMemberForwarded(this.memberForwarded);\n var moduleRef = reader.lookupTable(metadata.TableKind.ModuleRef, this.importScope);\n // TODO: resolve dllimport\n }\n }\n\n}","module pe.managed.tables {\n\n /** ECMA-335 II.22.33 */\n export class InterfaceImpl {\n\n class_: number = 0;\n interface_: number = 0;\n\n read(reader: metadata.TableReader) {\n this.class_ = reader.readTypeDefTableIndex();\n this.interface_ = reader.readTypeDefOrRef();\n }\n\n complete(reader: metadata.TableCompletionReader) {\n var class_ = reader.lookupTable(metadata.TableKind.TypeDef, this.class_);\n var interface_ = reader.lookupTypeDefOrRef(this.interface_);\n\n if (class_ && interface_ && class_.def) {\n var type = <Type>class_.def;\n type.interfaces.push(interface_);\n }\n }\n }\n\n}","module pe.managed.tables {\n\n /** ECMA-335 II.22.24 */\n export class ManifestResource {\n\n offset: number = 0;\n flags: metadata.ManifestResourceAttributes = 0;\n name: number = 0;\n implementation: number = 0;\n\n read(reader: metadata.TableReader) {\n this.offset = reader.readInt();\n this.flags = reader.readInt();\n this.name = reader.readString();\n this.implementation = reader.readImplementation();\n }\n \n complete(reader: metadata.TableCompletionReader) {\n var implementation = reader.lookupImplementation(this.implementation);\n // TODO: store resources somehwere??\n }\n\n }\n\n}","module pe.managed.tables {\n\n /** ECMA-335 II.22.25 */\n export class MemberRef {\n TableKind = 0x0A;\n\n def: MethodInfo = null;\n\n class_: number = 0;\n name: number = 0;\n signature: number = 0;\n\n read(reader: metadata.TableReader) {\n this.class_ = reader.readMemberRefParent();\n this.name = reader.readString();\n this.signature = reader.readBlobIndex();\n }\n \n complete(reader: metadata.TableCompletionReader) {\n var name = reader.readString(this.name);\n var class_ = reader.lookupImplementation(this.class_);\n // TODO: assign the signatutre or what??\n }\n \n }\n\n}","module pe.managed.tables {\n\n /** ECMA-335 II.22.26 */\n export class MethodDef {\n\n def = new MethodInfo();\n\n rva: number = 0;\n implAttributes: metadata.MethodImplAttributes = 0;\n attributes: metadata.MethodAttributes = 0;\n name: number = 0;\n signature: number = 0;\n paramList: number = 0;\n\n read(reader: metadata.TableReader) {\n this.rva = reader.readInt();\n this.implAttributes = reader.readShort();\n this.attributes = reader.readShort();\n this.name = reader.readString();\n this.signature = reader.readBlobIndex();\n this.paramList = reader.readParamTableIndex();\n }\n\n complete(reader: metadata.TableCompletionReader, nextMethodDef?: MethodDef) {\n this.def.attributes = this.attributes;\n this.def.name = reader.readString(this.name);\n\n var nextParamList: number;\n if (nextMethodDef)\n nextParamList = nextMethodDef.paramList;\n reader.copyParamRange(this.def.parameters, this.paramList, nextParamList, this.def);\n\n }\n }\n\n}","module pe.managed.tables {\n\n /** ECMA-335 II.22.27 */\n export class MethodImpl {\n TableKind = 0x19;\n\n class_: number = 0;\n methodBody: number = 0;\n methodDeclaration: number = 0;\n\n read(reader: metadata.TableReader) {\n this.class_ = reader.readTypeDefTableIndex();\n this.methodBody = reader.readMethodDefOrRef();\n this.methodDeclaration = reader.readMethodDefOrRef();\n }\n \n complete(reader: metadata.TableCompletionReader) {\n var class_ = reader.lookupTable(metadata.TableKind.TypeDef, this.class_);\n var methodBody = reader.lookupMethodDefOrRef(this.methodBody);\n var methodDeclaration = reader.lookupMethodDefOrRef(this.methodDeclaration);\n\n if (class_ && class_.def) {\n var type = <Type>class_.def;\n // TODO: store that 'impl' stuff somewhere in the class?\n }\n }\n \n }\n\n}","module pe.managed.tables {\n\n /** ECMA-335 II.22.28 */\n export class MethodSemantics {\n TableKind = 0x18;\n\n semantics: metadata.MethodSemanticsAttributes = 0;\n method: number = 0;\n association: number = 0;\n\n read(reader: metadata.TableReader) {\n this.semantics = reader.readShort();\n this.method = reader.readMethodDefTableIndex();\n this.association = reader.readHasSemantics();\n }\n \n complete(reader: metadata.TableCompletionReader) {\n var method = <MethodDef>reader.lookupTable(metadata.TableKind.MethodDef, this.method);\n var associatio = reader.lookupHasSemantics(this.association);\n\n if (method && method.def) {\n // TODO: store that 'impl' stuff somewhere in the class?\n }\n }\n\n }\n\n}","module pe.managed.tables {\n\n /** ECMA-335 II.22.29 */\n export class MethodSpec {\n\n method: number = 0;\n instantiation: number = 0;\n\n read(reader: metadata.TableReader) {\n this.method = reader.readMethodDefOrRef();\n this.instantiation = reader.readBlobIndex();\n }\n \n complete(reader: metadata.TableCompletionReader) {\n var method = reader.lookupMethodDefOrRef(this.method);\n\n // TODO: store that 'impl' stuff somewhere in the class?\n }\n\n }\n\n}","module pe.managed.tables {\n\n /** ECMA-335 II.22.30 */\n export class Module {\n\n def = { generation: 0, moduleName: '', mvid: '', encId: '', encBaseId: '' };\n\n name: number = 0;\n mvid: number = 0;\n encId: number = 0;\n encBaseId: number = 0;\n\n read(reader: metadata.TableReader) {\n this.def.generation = reader.readShort();\n this.name = reader.readString();\n this.mvid = reader.readGuid();\n this.encId = reader.readGuid();\n this.encBaseId = reader.readGuid();\n }\n\n complete(reader: metadata.TableCompletionReader) {\n this.def.moduleName = reader.readString(this.name);\n this.def.mvid = reader.readGuid(this.mvid);\n this.def.encId = reader.readGuid(this.encId);\n this.def.encBaseId = reader.readGuid(this.encBaseId);\n }\n }\n\n}","module pe.managed.tables {\n\n /** ECMA-335 II.22.31 */\n export class ModuleRef {\n\n name: number = 0;\n\n read(reader: metadata.TableReader) {\n this.name = reader.readString();\n }\n \n complete(reader: metadata.TableCompletionReader) {\n var name = reader.readString(this.name);\n }\n\n }\n\n}","module pe.managed.tables {\n\n /** ECMA-335 II.22.32 */\n export class NestedClass {\n\n nestedClass: number = 0;\n enclosingClass: number = 0;\n\n read(reader: metadata.TableReader) {\n this.nestedClass = reader.readTypeDefTableIndex();\n this.enclosingClass = reader.readTypeDefTableIndex();\n }\n \n complete(reader: metadata.TableCompletionReader) {\n var nestedClass = <TypeDef>reader.lookupTable(metadata.TableKind.TypeDef, this.nestedClass);\n var enclosingClass = <TypeDef>reader.lookupTable(metadata.TableKind.TypeDef, this.enclosingClass);\n\n if (nestedClass.def && enclosingClass.def) {\n nestedClass.def.nestingParent = enclosingClass.def;\n enclosingClass.def.netedTypes.push(nestedClass.def);\n }\n }\n\n }\n\n}","module pe.managed.tables {\n\n /** ECMA-335 II.22.33 */\n export class Param {\n\n def = new managed.ParameterInfo();\n\n sequence: number = 0;\n name: number = 0;\n\n read(reader: metadata.TableReader) {\n this.def.attributes = reader.readShort();\n this.sequence = reader.readShort();\n this.name = reader.readString();\n }\n\n complete(reader: metadata.TableCompletionReader) {\n this.def.name = reader.readString(this.name);\n }\n }\n\n}","module pe.managed.tables {\n\n /** ECMA-335 II.22.34 */\n export class Property {\n\n def = new managed.PropertyInfo();\n\n name: number = 0;\n type: number = 0;\n\n read(reader: metadata.TableReader) {\n this.def.attributes = reader.readShort();\n this.name = reader.readString();\n this.type = reader.readBlobIndex();\n }\n\n complete(reader: metadata.TableCompletionReader) {\n this.def.name = reader.readString(this.name);\n //this.def.propertyType = reader.\n }\n }\n\n}","module pe.managed.tables {\n\n /** ECMA-335 II.22.35 */\n export class PropertyMap {\n\n parent: number = 0;\n propertyList: number = 0;\n\n read(reader: metadata.TableReader) {\n this.parent = reader.readTypeDefTableIndex();\n this.propertyList = reader.readPropertyTableIndex();\n }\n \n complete(reader: metadata.TableCompletionReader) {\n var parent = <TypeDef>reader.lookupTable(metadata.TableKind.TypeDef, this.parent);\n var property = <Property>reader.lookupTable(metadata.TableKind.Property, this.propertyList);\n \n // TODO: now what?\n }\n\n }\n\n}","module pe.managed.tables {\n\n /** ECMA-335 II.22.36 */\n export class StandAloneSig {\n\n signature: number = 0;\n\n read(reader: metadata.TableReader) {\n this.signature = reader.readBlobIndex();\n }\n }\n\n}","module pe.managed.tables {\n\n /** ECMA-335 II.22.37 */\n export class TypeDef {\n\n def = new managed.Type();\n\n name: number = 0;\n namespace: number = 0;\n extends_: number = 0;\n fieldList: number = 0;\n methodList: number = 0;\n\n constructor() {\n this.def.isSpeculative = false;\n }\n\n read(reader: metadata.TableReader) {\n this.def.attributes = reader.readInt();\n this.name = reader.readString();\n this.namespace = reader.readString();\n this.extends_ = reader.readTypeDefOrRef();\n\n this.fieldList = reader.readFieldTableIndex();\n this.methodList = reader.readMethodDefTableIndex();\n }\n\n complete(reader: metadata.TableCompletionReader, nextTypeDef?: TypeDef) {\n\n this.def.name = reader.readString(this.name);\n this.def.namespace = reader.readString(this.namespace);\n this.def.baseType = reader.lookupTypeDefOrRef(this.extends_);\n \n var nextFieldList: number;\n if (nextTypeDef)\n nextFieldList = nextTypeDef.fieldList;\n reader.copyFieldRange(this.def.fields, this.fieldList, nextFieldList, this.def);\n\n var nextMethodList: number;\n if (nextTypeDef)\n nextMethodList = nextTypeDef.methodList;\n reader.copyMethodRange(this.def.methods, this.methodList, nextMethodList, this.def);\n }\n }\n\n}","module pe.managed.tables {\n\n /** ECMA-335 II.22.38 */\n export class TypeRef {\n\n def: Type = null;\n\n resolutionScope: number = 0;\n name: number = 0;\n namespace: number = 0;\n\n read(reader: metadata.TableReader) {\n this.resolutionScope = reader.readResolutionScope();\n this.name = reader.readString();\n this.namespace = reader.readString();\n }\n\n precomplete(reader: metadata.TableCompletionReader) {\n var scope = reader.lookupResolutionScope(this.resolutionScope);\n var name = reader.readString(this.name);\n var namespace = reader.readString(this.namespace);\n\n this.def = reader.resolveTypeRef(scope, namespace, name);\n }\n\n }\n\n}","module pe.managed.tables {\n\n /** ECMA-335 II.22.39 */\n export class TypeSpec {\n\n def = new managed.Type();\n\n signature: number = 0;\n\n read(reader: metadata.TableReader) {\n this.signature = reader.readBlobIndex();\n\n // TODO: populate correctly\n var fakeType = new managed.Type();\n fakeType.name = 'fake*' + this.signature + '*';\n this.def.genericPrototype = fakeType;\n }\n \n complete(reader: metadata.TableCompletionReader) {\n }\n\n }\n\n}","module pe.unmanaged {\n\n export class DllExport {\n\n name: string;\n\n\n ordinal: number;\n\n /**\n * The address of the exported symbol when loaded into memory, relative to the image base.\n * For example, the address of an exported function.\n */\n exportRva: number;\n\n /**\n * Null-terminated ASCII string in the export section.\n * This string must be within the range that is given by the export table data directory entry.\n * This string gives the DLL name and the name of the export (for example, \"MYDLL.expfunc\")\n * or the DLL name and the ordinal number of the export (for example, \"MYDLL.#27\").\n */\n forwarder: string;\n\n static readExports(reader: io.BufferReader, range: headers.AddressRange): DllExports {\n var result: DllExports = <any>[];\n\n result.flags = reader.readInt();\n if (!result.timestamp)\n result.timestamp = new Date(0);\n\n result.timestamp.setTime(reader.readInt() * 1000);\n\n var majorVersion = reader.readShort();\n var minorVersion = reader.readShort();\n result.version = majorVersion + \".\" + minorVersion;\n\n // need to read string from that RVA later\n var nameRva = reader.readInt();\n\n result.ordinalBase = reader.readInt();\n\n // The number of entries in the export address table.\n var addressTableEntries = reader.readInt();\n\n // The number of entries in the name pointer table. This is also the number of entries in the ordinal table.\n var numberOfNamePointers = reader.readInt();\n\n // The address of the export address table, relative to the image base.\n var exportAddressTableRva = reader.readInt();\n\n // The address of the export name pointer table, relative to the image base.\n // The table size is given by the Number of Name Pointers field.\n var namePointerRva = reader.readInt();\n\n // The address of the ordinal table, relative to the image base.\n var ordinalTableRva = reader.readInt();\n\n if (nameRva == 0) {\n result.dllName = null;\n }\n else {\n var saveOffset = reader.offset;\n reader.setVirtualOffset(nameRva);\n result.dllName = reader.readAsciiZ();\n reader.offset = saveOffset;\n }\n\n result.length = addressTableEntries;\n\n for (var i = 0; i < addressTableEntries; i++) {\n var exportEntry = new DllExport();\n exportEntry.readExportEntry(reader, range);\n exportEntry.ordinal = i + result.ordinalBase;\n result[i] = exportEntry;\n }\n\n if (numberOfNamePointers != 0\n && namePointerRva != 0\n && ordinalTableRva != 0) {\n\n saveOffset = reader.offset;\n for (var i = 0; i < numberOfNamePointers; i++) {\n reader.setVirtualOffset(ordinalTableRva + 2 * i);\n var ordinal = reader.readShort();\n\n reader.setVirtualOffset(namePointerRva + 4 * i);\n var functionNameRva = reader.readInt();\n\n var functionName: string;\n if (functionNameRva == 0) {\n functionName = null;\n }\n else {\n reader.setVirtualOffset(functionNameRva);\n functionName = reader.readAsciiZ();\n }\n\n result[ordinal].name = functionName;\n }\n reader.offset = saveOffset;\n }\n\n return result;\n }\n\n private readExportEntry(reader: io.BufferReader, range: headers.AddressRange) {\n var exportOrForwarderRva = reader.readInt();\n\n if (range.mapRelative(exportOrForwarderRva) >= 0) {\n this.exportRva = 0;\n\n var forwarderRva = reader.readInt();\n if (forwarderRva == 0) {\n this.forwarder = null;\n }\n else {\n var saveOffset = reader.offset;\n reader.setVirtualOffset(forwarderRva);\n this.forwarder = reader.readAsciiZ();\n reader.offset = saveOffset;\n }\n }\n else {\n this.exportRva = reader.readInt();\n this.forwarder = null;\n }\n\n this.name = null;\n }\n }\n}","module pe.unmanaged {\n\n export interface DllExports {\n length: number;\n [i: number]: DllExport;\n\n /** Reserved, must be 0. */\n flags: number;\n\n /** The time and date that the export data was created. */\n timestamp: Date;\n\n /** The version number. The major and minor version numbers can be set by the user. */\n version: string;\n\n /** The ASCII string that contains the name of the DLL. This address is relative to the image base. */\n dllName;\n\n /**\n * The starting ordinal number for exports in this image.\n * This field specifies the starting ordinal number for the export address table.\n * It is usually set to 1.\n */\n ordinalBase;\n }\n}","module pe.unmanaged {\n\n\n export class DllImport {\n name: string = \"\";\n ordinal: number = 0;\n dllName: string = \"\";\n timeDateStamp: Date = new Date(0);\n\n static read(reader: io.BufferReader, result?: DllImport[]): DllImport[] {\n if (!result)\n result = [];\n\n var readLength = 0;\n while (true) {\n\n var originalFirstThunk = reader.readInt();\n var timeDateStamp = new Date(0);\n timeDateStamp.setTime(reader.readInt());\n\n var forwarderChain = reader.readInt();\n var nameRva = reader.readInt();\n var firstThunk = reader.readInt();\n\n var thunkAddressPosition = originalFirstThunk == 0 ? firstThunk : originalFirstThunk;\n if (thunkAddressPosition == 0)\n break;\n\n var saveOffset = reader.offset;\n\n var libraryName;\n if (nameRva === 0) {\n libraryName = null;\n }\n else {\n reader.setVirtualOffset(nameRva);\n libraryName = reader.readAsciiZ();\n }\n\n reader.setVirtualOffset(thunkAddressPosition);\n\n while (true) {\n var newEntry = result[readLength];\n if (!newEntry) {\n newEntry = new DllImport();\n result[readLength] = newEntry;\n }\n\n if (!newEntry.readEntry(reader))\n break;\n\n newEntry.dllName = libraryName;\n newEntry.timeDateStamp = timeDateStamp;\n readLength++;\n }\n\n reader.offset = saveOffset;\n }\n\n result.length = readLength;\n\n return result;\n }\n\n private readEntry(reader: io.BufferReader): boolean {\n var importPosition = reader.readInt();\n if (importPosition == 0)\n return false;\n\n if (importPosition & (1 << 31)) {\n this.ordinal = importPosition & 0x7FFFFFFF;\n this.name = null;\n }\n else {\n var saveOffset = reader.offset;\n reader.setVirtualOffset(importPosition);\n\n var hint = reader.readShort();\n var fname = reader.readAsciiZ();\n\n this.ordinal = hint;\n this.name = fname;\n\n reader.offset = saveOffset;\n }\n\n return true;\n }\n }\n}","module pe.unmanaged {\n\n export class ResourceDataEntry {\n name: string = \"\";\n integerId: number = 0;\n dataRva: number = 0;\n size: number = 0;\n codepage: number = 0;\n reserved: number = 0;\n\n toString() {\n return (this.name ? this.name + \" \" : \"\") + this.integerId;\n }\n }\n\n}","module pe.unmanaged {\n\n export class ResourceDirectory {\n\n /** Resource flags. This field is reserved for future use. It is currently set to zero. */\n characteristics: number = 0;\n\n /** The time that the resource data was created by the resource compiler. */\n timestamp: Date = new Date(0);\n\n /** The version number, set by the user. */\n version: string = \"\";\n\n subdirectories: ResourceDirectoryEntry[] = [];\n dataEntries: ResourceDataEntry[] = [];\n\n toString() {\n return \"subdirectories[\" + (this.subdirectories ? <any>this.subdirectories.length : \"null\") + \"] \" +\n \"dataEntries[\" + (this.dataEntries ? <any>this.dataEntries.length : \"null\") + \"]\";\n }\n\n read(reader: io.BufferReader) {\n var baseVirtualOffset = reader.getVirtualOffset();\n this.readCore(reader, baseVirtualOffset);\n }\n\n private readCore(reader: io.BufferReader, baseVirtualOffset: number) {\n this.characteristics = reader.readInt();\n\n if (!this.timestamp)\n this.timestamp = new Date(0);\n this.timestamp.setTime(reader.readInt() * 1000);\n\n this.version = reader.readShort() + \".\" + reader.readShort();\n var nameEntryCount = reader.readShort();\n var idEntryCount = reader.readShort();\n\n var dataEntryCount = 0;\n var directoryEntryCount = 0;\n\n for (var i = 0; i < nameEntryCount + idEntryCount; i++) {\n var idOrNameRva = reader.readInt();\n var contentRva = reader.readInt();\n\n var saveOffset = reader.offset;\n\n var name: string;\n var id: number;\n\n var highBit = 0x80000000;\n\n if (idOrNameRva < highBit) {\n id = idOrNameRva;\n name = null;\n }\n else {\n id = 0;\n reader.setVirtualOffset(baseVirtualOffset + idOrNameRva - highBit);\n name = this.readName(reader);\n }\n\n if (contentRva < highBit) { // high bit is not set\n reader.setVirtualOffset(baseVirtualOffset + contentRva);\n\n var dataEntry = this.dataEntries[dataEntryCount];\n if (!dataEntry)\n this.dataEntries[dataEntryCount] = dataEntry = new ResourceDataEntry();\n\n dataEntry.name = name;\n dataEntry.integerId = id;\n\n dataEntry.dataRva = reader.readInt();\n dataEntry.size = reader.readInt();\n dataEntry.codepage = reader.readInt();\n dataEntry.reserved = reader.readInt();\n\n dataEntryCount++;\n }\n else {\n contentRva = contentRva - highBit; // clear hight bit\n reader.setVirtualOffset(baseVirtualOffset + contentRva);\n\n var directoryEntry = this.subdirectories[directoryEntryCount];\n if (!directoryEntry)\n this.subdirectories[directoryEntryCount] = directoryEntry = new ResourceDirectoryEntry();\n\n directoryEntry.name = name;\n directoryEntry.integerId = id;\n\n directoryEntry.directory = new ResourceDirectory();\n directoryEntry.directory.readCore(reader, baseVirtualOffset);\n\n directoryEntryCount++;\n }\n }\n\n this.dataEntries.length = dataEntryCount;\n this.subdirectories.length = directoryEntryCount;\n }\n\n readName(reader: io.BufferReader): string {\n\n var length = reader.readShort();\n var result = \"\";\n\n for (var i = 0; i < length; i++) {\n result += String.fromCharCode(reader.readShort());\n }\n\n return result;\n }\n }\n\n}","module pe.unmanaged {\n\n export class ResourceDirectoryEntry {\n name: string = \"\";\n integerId: number = 0;\n\n directory: ResourceDirectory = new ResourceDirectory();\n\n toString() {\n return (this.name ? this.name + \" \" : \"\") + this.integerId +\n (this.directory ? \n \"[\" +\n (this.directory.dataEntries ? this.directory.dataEntries.length : 0) +\n (this.directory.subdirectories ? this.directory.subdirectories.length : 0) +\n \"]\" :\n \"[null]\");\n }\n }\n\n}"]}