diff --git a/include/SDL3/SDL_render.h b/include/SDL3/SDL_render.h index 8baaf143d3..579cea3dac 100644 --- a/include/SDL3/SDL_render.h +++ b/include/SDL3/SDL_render.h @@ -803,9 +803,19 @@ extern SDL_DECLSPEC SDL_Texture * SDLCALL SDL_CreateTextureFromSurface(SDL_Rende * With the vulkan renderer: * * - `SDL_PROP_TEXTURE_CREATE_VULKAN_TEXTURE_NUMBER`: the VkImage associated - * with the texture, if you want to wrap an existing texture. + * with the texture, if you want to wrap an existing texture. For NV12 style + * textures this is the single two plane VkImage holding both the Y and UV + * planes, and for YUV style textures it is the VkImage holding the Y plane. + * - `SDL_PROP_TEXTURE_CREATE_VULKAN_TEXTURE_U_NUMBER`: the VkImage associated + * with the U plane of a YUV texture, if you want to wrap an existing + * texture. + * - `SDL_PROP_TEXTURE_CREATE_VULKAN_TEXTURE_V_NUMBER`: the VkImage associated + * with the V plane of a YUV texture, if you want to wrap an existing + * texture. * - `SDL_PROP_TEXTURE_CREATE_VULKAN_LAYOUT_NUMBER`: the VkImageLayout for the * VkImage, defaults to VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL. + * - `SDL_PROP_TEXTURE_CREATE_VULKAN_USAGE_NUMBER`: additional VK_IMAGE_USAGE bits that should be used when creating the texture. + * VkImage, defaults to VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL. * - `SDL_PROP_TEXTURE_CREATE_VULKAN_ANDROID_HARDWARE_BUFFER_POINTER`: the AHardwareBuffer to sample from, if you want to use an existing Android hardware buffer as the texture. You must use SDL_PIXELFORMAT_EXTERNAL_OES for the texture format. * You can't directly update the texture or use it as a render target. If the Android buffer contents change, you must recreate the texture to pick up the changes. * The texture holds a reference to the buffer, so you can release your own reference once the texture has been created. @@ -871,7 +881,10 @@ extern SDL_DECLSPEC SDL_Texture * SDLCALL SDL_CreateTextureWithProperties(SDL_Re #define SDL_PROP_TEXTURE_CREATE_OPENGLES2_TEXTURE_U_NUMBER "SDL.texture.create.opengles2.texture_u" #define SDL_PROP_TEXTURE_CREATE_OPENGLES2_TEXTURE_V_NUMBER "SDL.texture.create.opengles2.texture_v" #define SDL_PROP_TEXTURE_CREATE_VULKAN_TEXTURE_NUMBER "SDL.texture.create.vulkan.texture" +#define SDL_PROP_TEXTURE_CREATE_VULKAN_TEXTURE_U_NUMBER "SDL.texture.create.vulkan.texture_u" +#define SDL_PROP_TEXTURE_CREATE_VULKAN_TEXTURE_V_NUMBER "SDL.texture.create.vulkan.texture_v" #define SDL_PROP_TEXTURE_CREATE_VULKAN_LAYOUT_NUMBER "SDL.texture.create.vulkan.layout" +#define SDL_PROP_TEXTURE_CREATE_VULKAN_USAGE_NUMBER "SDL.texture.create.vulkan.usage" #define SDL_PROP_TEXTURE_CREATE_VULKAN_ANDROID_HARDWARE_BUFFER_POINTER "SDL.texture.create.vulkan.android_hardware_buffer" #define SDL_PROP_TEXTURE_CREATE_GPU_TEXTURE_POINTER "SDL.texture.create.gpu.texture" #define SDL_PROP_TEXTURE_CREATE_GPU_TEXTURE_UV_POINTER "SDL.texture.create.gpu.texture_uv" @@ -935,7 +948,13 @@ extern SDL_DECLSPEC SDL_Texture * SDLCALL SDL_CreateTextureWithProperties(SDL_Re * With the vulkan renderer: * * - `SDL_PROP_TEXTURE_VULKAN_TEXTURE_NUMBER`: the VkImage associated with the - * texture + * texture. For NV12 style textures this is the single two plane VkImage + * holding both the Y and UV planes, and for YUV style textures it is the + * VkImage holding the Y plane. + * - `SDL_PROP_TEXTURE_VULKAN_TEXTURE_U_NUMBER`: the VkImage associated with + * the U plane of a YUV texture + * - `SDL_PROP_TEXTURE_VULKAN_TEXTURE_V_NUMBER`: the VkImage associated with + * the V plane of a YUV texture * * With the opengl renderer: * @@ -1018,6 +1037,8 @@ extern SDL_DECLSPEC SDL_PropertiesID SDLCALL SDL_GetTextureProperties(SDL_Textur #define SDL_PROP_TEXTURE_OPENGLES2_TEXTURE_V_NUMBER "SDL.texture.opengles2.texture_v" #define SDL_PROP_TEXTURE_OPENGLES2_TEXTURE_TARGET_NUMBER "SDL.texture.opengles2.target" #define SDL_PROP_TEXTURE_VULKAN_TEXTURE_NUMBER "SDL.texture.vulkan.texture" +#define SDL_PROP_TEXTURE_VULKAN_TEXTURE_U_NUMBER "SDL.texture.vulkan.texture_u" +#define SDL_PROP_TEXTURE_VULKAN_TEXTURE_V_NUMBER "SDL.texture.vulkan.texture_v" #define SDL_PROP_TEXTURE_GPU_TEXTURE_POINTER "SDL.texture.gpu.texture" #define SDL_PROP_TEXTURE_GPU_TEXTURE_UV_POINTER "SDL.texture.gpu.texture_uv" #define SDL_PROP_TEXTURE_GPU_TEXTURE_U_POINTER "SDL.texture.gpu.texture_u" diff --git a/src/render/SDL_render.c b/src/render/SDL_render.c index 54dadec545..059eaf5f6d 100644 --- a/src/render/SDL_render.c +++ b/src/render/SDL_render.c @@ -1523,6 +1523,10 @@ SDL_Texture *SDL_CreateTextureWithProperties(SDL_Renderer *renderer, SDL_Propert SDL_SetError("Palettized textures can't be render targets"); return NULL; } + CHECK_PARAM(SDL_ISPIXELFORMAT_FOURCC(format) && access == SDL_TEXTUREACCESS_TARGET) { + SDL_SetError("%s textures can't be render targets", SDL_GetPixelFormatName(format)); + return NULL; + } CHECK_PARAM(w <= 0 || h <= 0) { SDL_SetError("Texture dimensions can't be 0"); return NULL; diff --git a/src/render/vulkan/SDL_render_vulkan.c b/src/render/vulkan/SDL_render_vulkan.c index 392a31d45c..39abd1ca49 100644 --- a/src/render/vulkan/SDL_render_vulkan.c +++ b/src/render/vulkan/SDL_render_vulkan.c @@ -28,6 +28,7 @@ #define SDL_VULKAN_CONSTANT_BUFFER_DEFAULT_SIZE 65536 #define SDL_VULKAN_NUM_UPLOAD_BUFFERS 32 #define SDL_VULKAN_MAX_DESCRIPTOR_SETS 4096 +#define SDL_VULKAN_NUM_TEXTURE_BINDINGS 3 #define SDL_VULKAN_VALIDATION_LAYER_NAME "VK_LAYER_KHRONOS_validation" @@ -202,6 +203,9 @@ static const float TEXTURETYPE_RGB_PIXELART = 2; static const float TEXTURETYPE_PALETTE_NEAREST = 3; static const float TEXTURETYPE_PALETTE_LINEAR = 4; static const float TEXTURETYPE_PALETTE_PIXELART = 5; +static const float TEXTURETYPE_NV12 = 6; +static const float TEXTURETYPE_NV21 = 7; +static const float TEXTURETYPE_YUV = 8; static const float INPUTTYPE_UNSPECIFIED = 0; static const float INPUTTYPE_SRGB = 1; @@ -225,6 +229,8 @@ typedef struct float tonemap_factor1; float tonemap_factor2; float sdr_white_point; + + float YCbCr_matrix[16]; } VULKAN_PixelShaderConstants; // Per-vertex data @@ -263,7 +269,6 @@ typedef struct { bool allocatedImage; VkImage image; - VkImageView imageView; VkDeviceMemory deviceMemory; VkImageLayout imageLayout; VkFormat format; @@ -273,6 +278,7 @@ typedef struct typedef struct { VULKAN_Image image; + VkImageView imageView; } VULKAN_PaletteData; // YUV conversion data @@ -307,19 +313,23 @@ typedef struct VULKAN_YUVPipeline // Per-texture data typedef struct { - VULKAN_Image mainImage; + int numImages; + VULKAN_Image images[SDL_VULKAN_NUM_TEXTURE_BINDINGS]; + int numImageViews; + VkImageView imageViews[SDL_VULKAN_NUM_TEXTURE_BINDINGS]; VkRenderPass mainRenderpasses[VULKAN_RENDERPASS_COUNT]; VkFramebuffer mainFramebuffer; VULKAN_Buffer stagingBuffer; - SDL_Rect lockedRect; int width; int height; + const float *YCbCr_matrix; - bool yuv; + // YCbCr conversion support VULKAN_YUVPipeline *yuvPipeline; Uint8 *pixels; int pitch; + SDL_Rect lockedRect; } VULKAN_TextureData; // Pipeline State Object data @@ -485,6 +495,38 @@ static SDL_PixelFormat VULKAN_VkFormatToSDLPixelFormat(VkFormat vkFormat) return SDL_PIXELFORMAT_UNKNOWN; } +static int VULKAN_GetFormatImageCount(SDL_PixelFormat format) +{ + switch (format) { + case SDL_PIXELFORMAT_YV12: + case SDL_PIXELFORMAT_IYUV: + case SDL_PIXELFORMAT_I444: + case SDL_PIXELFORMAT_I0FL: + case SDL_PIXELFORMAT_I4FL: + return 3; + default: + return 1; + } +} + +static int VULKAN_GetFormatImageViewCount(SDL_PixelFormat format) +{ + switch (format) { + case SDL_PIXELFORMAT_NV12: + case SDL_PIXELFORMAT_NV21: + case SDL_PIXELFORMAT_P010: + return 2; + case SDL_PIXELFORMAT_YV12: + case SDL_PIXELFORMAT_IYUV: + case SDL_PIXELFORMAT_I444: + case SDL_PIXELFORMAT_I0FL: + case SDL_PIXELFORMAT_I4FL: + return 3; + default: + return 1; + } +} + static int VULKAN_VkFormatGetNumPlanes(VkFormat vkFormat) { switch (vkFormat) { @@ -536,18 +578,16 @@ static VkFormat SDLPixelFormatToVkTextureFormat(SDL_PixelFormat format, Uint32 o return VK_FORMAT_B8G8R8G8_422_UNORM; case SDL_PIXELFORMAT_YV12: case SDL_PIXELFORMAT_IYUV: - return VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM; case SDL_PIXELFORMAT_I444: - return VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM; + return VK_FORMAT_R8_UNORM; case SDL_PIXELFORMAT_NV12: case SDL_PIXELFORMAT_NV21: return VK_FORMAT_G8_B8R8_2PLANE_420_UNORM; case SDL_PIXELFORMAT_P010: return VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16; case SDL_PIXELFORMAT_I0FL: - return VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM; case SDL_PIXELFORMAT_I4FL: - return VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM; + return VK_FORMAT_R16_UNORM; default: for (int i = 0; i < SDL_arraysize(vk_format_map); i++) { if (vk_format_map[i].sdl == format) { @@ -563,6 +603,63 @@ static VkFormat SDLPixelFormatToVkTextureFormat(SDL_PixelFormat format, Uint32 o } } +static VkFormat VULKAN_GetVkImageFormat(SDL_PixelFormat format, Uint32 output_colorspace) +{ + switch (format) { + case SDL_PIXELFORMAT_INDEX8: + return VK_FORMAT_R8_UNORM; + case SDL_PIXELFORMAT_YUY2: + return VK_FORMAT_G8B8G8R8_422_UNORM; + case SDL_PIXELFORMAT_UYVY: + return VK_FORMAT_B8G8R8G8_422_UNORM; + case SDL_PIXELFORMAT_YV12: + case SDL_PIXELFORMAT_IYUV: + case SDL_PIXELFORMAT_I444: + return VK_FORMAT_R8_UNORM; + case SDL_PIXELFORMAT_NV12: + case SDL_PIXELFORMAT_NV21: + return VK_FORMAT_G8_B8R8_2PLANE_420_UNORM; + case SDL_PIXELFORMAT_P010: + return VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16; + case SDL_PIXELFORMAT_I0FL: + case SDL_PIXELFORMAT_I4FL: + return VK_FORMAT_R16_UNORM; + default: + for (int i = 0; i < SDL_arraysize(vk_format_map); i++) { + if (vk_format_map[i].sdl == format) { + if (output_colorspace == SDL_COLORSPACE_SRGB_LINEAR || + output_colorspace == SDL_COLORSPACE_HDR10) { + return vk_format_map[i].srgb; + } else { + return vk_format_map[i].unorm; + } + } + } + return VK_FORMAT_UNDEFINED; + } +} + +static VkFormat VULKAN_GetVkImageViewFormat(SDL_PixelFormat format, int plane, Uint32 output_colorspace) +{ + switch (format) { + case SDL_PIXELFORMAT_NV12: + case SDL_PIXELFORMAT_NV21: + if (plane == 0) { + return VK_FORMAT_R8_UNORM; + } else { + return VK_FORMAT_R8G8_UNORM; + } + case SDL_PIXELFORMAT_P010: + if (plane == 0) { + return VK_FORMAT_R8_UNORM; + } else { + return VK_FORMAT_R16G16_UNORM; + } + default: + return VULKAN_GetVkImageFormat(format, output_colorspace); + } +} + static void VULKAN_DestroyTexture(SDL_Renderer *renderer, SDL_Texture *texture); static void VULKAN_DestroyBuffer(VULKAN_RenderData *rendererData, VULKAN_Buffer *vulkanBuffer); static void VULKAN_DestroyImage(VULKAN_RenderData *rendererData, VULKAN_Image *vulkanImage); @@ -574,7 +671,9 @@ static bool VULKAN_FindMemoryTypeIndex(VULKAN_RenderData *rendererData, uint32_t static VkResult VULKAN_CreateWindowSizeDependentResources(SDL_Renderer *renderer); static VkDescriptorPool VULKAN_AllocateDescriptorPool(VULKAN_RenderData *rendererData); static VkResult VULKAN_CreateDescriptorSetAndPipelineLayout(VULKAN_RenderData *rendererData, VkSampler samplerYcbcr, VkDescriptorSetLayout *descriptorSetLayoutOut, VkPipelineLayout *pipelineLayoutOut); +#ifdef SDL_PLATFORM_ANDROID static VULKAN_YUVPipeline *VULKAN_GetYUVPipeline(VULKAN_RenderData *rendererData, const VULKAN_YUVPipelineCreateInfo *createInfo); +#endif static void VULKAN_CleanupYUVPipeline(VULKAN_RenderData *rendererData, VULKAN_YUVPipeline *pipeline); static VkSurfaceTransformFlagBitsKHR VULKAN_GetRotationForCurrentRenderTarget(VULKAN_RenderData *rendererData); static bool VULKAN_IsDisplayRotated90Degrees(VkSurfaceTransformFlagBitsKHR rotation); @@ -854,10 +953,6 @@ static VkResult VULKAN_AllocateBuffer(VULKAN_RenderData *rendererData, VkDeviceS static void VULKAN_DestroyImage(VULKAN_RenderData *rendererData, VULKAN_Image *vulkanImage) { - if (vulkanImage->imageView != VK_NULL_HANDLE) { - vkDestroyImageView(rendererData->device, vulkanImage->imageView, NULL); - vulkanImage->imageView = VK_NULL_HANDLE; - } if (vulkanImage->image != VK_NULL_HANDLE) { if (vulkanImage->allocatedImage) { vkDestroyImage(rendererData->device, vulkanImage->image, NULL); @@ -871,17 +966,15 @@ static void VULKAN_DestroyImage(VULKAN_RenderData *rendererData, VULKAN_Image *v } vulkanImage->deviceMemory = VK_NULL_HANDLE; } - SDL_zerop(vulkanImage); } -static VkResult VULKAN_AllocateImage(VULKAN_RenderData *rendererData, SDL_PropertiesID create_props, uint32_t width, uint32_t height, VkFormat format, VkImageUsageFlags imageUsage, VkComponentMapping swizzle, VkSamplerYcbcrConversionKHR samplerYcbcrConversion, VULKAN_ExternalBufferInfo *external, VULKAN_Image *imageOut) +static VkResult VULKAN_AllocateImage(VULKAN_RenderData *rendererData, SDL_PropertiesID create_props, const char *property, uint32_t width, uint32_t height, VkFormat format, VkImageUsageFlags imageUsage, VkSamplerYcbcrConversionKHR samplerYcbcrConversion, VULKAN_ExternalBufferInfo *external, VULKAN_Image *imageOut) { VkResult result; - VkSamplerYcbcrConversionInfoKHR samplerYcbcrConversionInfo = { 0 }; SDL_zerop(imageOut); imageOut->format = format; - imageOut->image = (VkImage)SDL_GetNumberProperty(create_props, SDL_PROP_TEXTURE_CREATE_VULKAN_TEXTURE_NUMBER, 0); + imageOut->image = (VkImage)SDL_GetNumberProperty(create_props, property, 0); if (imageOut->image == VK_NULL_HANDLE) { imageOut->allocatedImage = VK_TRUE; @@ -903,6 +996,11 @@ static VkResult VULKAN_AllocateImage(VULKAN_RenderData *rendererData, SDL_Proper imageCreateInfo.queueFamilyIndexCount = 0; imageCreateInfo.initialLayout = VK_IMAGE_LAYOUT_UNDEFINED; + if (VULKAN_VkFormatGetNumPlanes(format) > 0) { + // We'll take image views with a different format + imageCreateInfo.flags |= VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT; + } + #ifdef SDL_PLATFORM_ANDROID VkExternalMemoryImageCreateInfoKHR externalMemoryImageCreateInfo = { 0 }; if (external) { @@ -913,12 +1011,6 @@ static VkResult VULKAN_AllocateImage(VULKAN_RenderData *rendererData, SDL_Proper } #endif - // Allow writing to planar YUV textures from application code - if (VULKAN_VkFormatGetNumPlanes(format) > 1 && !external) { - imageCreateInfo.flags |= (VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT | VK_IMAGE_CREATE_EXTENDED_USAGE_BIT); - imageCreateInfo.usage |= VK_IMAGE_USAGE_STORAGE_BIT; - } - result = vkCreateImage(rendererData->device, &imageCreateInfo, NULL, &imageOut->image); if (result != VK_SUCCESS) { VULKAN_DestroyImage(rendererData, imageOut); @@ -1006,13 +1098,28 @@ static VkResult VULKAN_AllocateImage(VULKAN_RenderData *rendererData, SDL_Proper } } + return VK_SUCCESS; +} + +static VkResult VULKAN_AllocateImageView(VULKAN_RenderData *rendererData, VkImage image, int plane, VkFormat format, VkImageUsageFlags imageUsage, VkComponentMapping swizzle, VkSamplerYcbcrConversionKHR samplerYcbcrConversion, VkImageView *imageViewOut) +{ + VkResult result; + VkSamplerYcbcrConversionInfoKHR samplerYcbcrConversionInfo = { 0 }; + VkImageAspectFlags aspectMask; + + if (plane < 0) { + aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; + } else { + aspectMask = (VkImageAspectFlags)(VK_IMAGE_ASPECT_PLANE_0_BIT << plane); + } + VkImageViewCreateInfo imageViewCreateInfo = { 0 }; imageViewCreateInfo.sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO; - imageViewCreateInfo.image = imageOut->image; + imageViewCreateInfo.image = image; imageViewCreateInfo.viewType = VK_IMAGE_VIEW_TYPE_2D; imageViewCreateInfo.format = format; imageViewCreateInfo.components = swizzle; - imageViewCreateInfo.subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; + imageViewCreateInfo.subresourceRange.aspectMask = aspectMask; imageViewCreateInfo.subresourceRange.baseMipLevel = 0; imageViewCreateInfo.subresourceRange.levelCount = 1; imageViewCreateInfo.subresourceRange.baseArrayLayer = 0; @@ -1023,24 +1130,24 @@ static VkResult VULKAN_AllocateImage(VULKAN_RenderData *rendererData, SDL_Proper imageViewUsageCreateInfo.usage = imageUsage; imageViewCreateInfo.pNext = &imageViewUsageCreateInfo; - // If it's a YCbCr image, we need to pass the conversion info to the VkImageView (and the VkSampler) + // If it's a YCbCr image, we need to pass the conversion info to the VkImageView if (samplerYcbcrConversion != VK_NULL_HANDLE) { samplerYcbcrConversionInfo.sType = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO_KHR; samplerYcbcrConversionInfo.conversion = samplerYcbcrConversion; imageViewUsageCreateInfo.pNext = &samplerYcbcrConversionInfo; } - result = vkCreateImageView(rendererData->device, &imageViewCreateInfo, NULL, &imageOut->imageView); + result = vkCreateImageView(rendererData->device, &imageViewCreateInfo, NULL, imageViewOut); if (result != VK_SUCCESS) { - VULKAN_DestroyImage(rendererData, imageOut); SET_ERROR_CODE("vkCreateImageView()", result); return result; } - return result; + return VK_SUCCESS; } + static void VULKAN_RecordExternalImageBarrier(VULKAN_RenderData *rendererData, VkAccessFlags sourceAccessMask, VkAccessFlags destAccessMask, VkPipelineStageFlags srcStageFlags, VkPipelineStageFlags dstStageFlags, VkImageLayout destLayout, VkImage image, VkImageLayout *imageLayout) { @@ -2863,7 +2970,12 @@ static bool VULKAN_CreatePalette(SDL_Renderer *renderer, SDL_TexturePalette *pal VkFormat format = SDLPixelFormatToVkTextureFormat(SDL_PIXELFORMAT_RGBA32, renderer->output_colorspace); VkImageUsageFlags usage = VK_IMAGE_USAGE_SAMPLED_BIT | VK_IMAGE_USAGE_TRANSFER_SRC_BIT | VK_IMAGE_USAGE_TRANSFER_DST_BIT; VkComponentMapping imageViewSwizzle = data->identitySwizzle; - VkResult result = VULKAN_AllocateImage(data, 0, 256, 1, format, usage, imageViewSwizzle, VK_NULL_HANDLE, NULL, &palettedata->image); + VkResult result = VULKAN_AllocateImage(data, 0, NULL, 256, 1, format, usage, VK_NULL_HANDLE, NULL, &palettedata->image); + if (result != VK_SUCCESS) { + SET_ERROR_CODE("VULKAN_AllocateImage()", result); + return false; + } + result = VULKAN_AllocateImageView(data, palettedata->image.image, -1, format, usage, imageViewSwizzle, VK_NULL_HANDLE, &palettedata->imageView); if (result != VK_SUCCESS) { SET_ERROR_CODE("VULKAN_AllocateImage()", result); return false; @@ -2894,6 +3006,11 @@ static void VULKAN_DestroyPalette(SDL_Renderer *renderer, SDL_TexturePalette *pa VULKAN_WaitForGPU(data); VULKAN_DestroyImage(data, &palettedata->image); + + if (palettedata->imageView != VK_NULL_HANDLE) { + vkDestroyImageView(data->device, palettedata->imageView, NULL); + palettedata->imageView = VK_NULL_HANDLE; + } SDL_free(palettedata); } @@ -2926,9 +3043,13 @@ static bool VULKAN_CreateTexture(SDL_Renderer *renderer, SDL_Texture *texture, S VULKAN_RenderData *rendererData = (VULKAN_RenderData *)renderer->internal; VULKAN_TextureData *textureData; VkResult result; - VkFormat textureFormat = SDLPixelFormatToVkTextureFormat(texture->format, renderer->output_colorspace); + int numImages = VULKAN_GetFormatImageCount(texture->format); + int numImageViews = VULKAN_GetFormatImageViewCount(texture->format); + VkFormat textureFormat = VULKAN_GetVkImageFormat(texture->format, renderer->output_colorspace); uint32_t width = texture->w; uint32_t height = texture->h; + uint32_t chromaWidth = width; + uint32_t chromaHeight = height; VkComponentMapping imageViewSwizzle = rendererData->identitySwizzle; VULKAN_ExternalBufferInfo externalBufferInfo; VULKAN_ExternalBufferInfo *external = NULL; @@ -2937,10 +3058,6 @@ static bool VULKAN_CreateTexture(SDL_Renderer *renderer, SDL_Texture *texture, S return SDL_SetError("Device lost and couldn't be recovered"); } - if (textureFormat == VK_FORMAT_UNDEFINED && texture->format != SDL_PIXELFORMAT_EXTERNAL_OES) { - return SDL_SetError("%s, An unsupported SDL pixel format (0x%x) was specified", SDL_FUNCTION, texture->format); - } - textureData = (VULKAN_TextureData *)SDL_calloc(1, sizeof(*textureData)); if (!textureData) { return false; @@ -2951,10 +3068,6 @@ static bool VULKAN_CreateTexture(SDL_Renderer *renderer, SDL_Texture *texture, S SDL_zero(externalBufferInfo); external = &externalBufferInfo; - if (texture->access == SDL_TEXTUREACCESS_TARGET) { - return SDL_SetError("SDL_PIXELFORMAT_EXTERNAL_OES textures can't be render targets"); - } - #ifdef SDL_PLATFORM_ANDROID external->buffer = (struct AHardwareBuffer *)SDL_GetPointerProperty(create_props, SDL_PROP_TEXTURE_CREATE_VULKAN_ANDROID_HARDWARE_BUFFER_POINTER, NULL); if (!external->buffer) { @@ -3061,132 +3174,97 @@ static bool VULKAN_CreateTexture(SDL_Renderer *renderer, SDL_Texture *texture, S if (!textureData->yuvPipeline) { return false; } - - textureData->yuv = true; } #endif // SDL_PLATFORM_ANDROID - } else if (texture->format == SDL_PIXELFORMAT_YV12 || - texture->format == SDL_PIXELFORMAT_IYUV || - texture->format == SDL_PIXELFORMAT_I444 || - texture->format == SDL_PIXELFORMAT_NV12 || - texture->format == SDL_PIXELFORMAT_NV21 || - texture->format == SDL_PIXELFORMAT_P010 || - texture->format == SDL_PIXELFORMAT_I0FL || - texture->format == SDL_PIXELFORMAT_I4FL) { - const uint32_t YUV_SD_THRESHOLD = 576; - - VULKAN_YUVPipelineCreateInfo createInfo; - SDL_zero(createInfo); // Must zero padding bytes for cache - createInfo.filter = VK_FILTER_LINEAR; - - VkSamplerYcbcrConversionCreateInfoKHR *samplerYcbcrConversionCreateInfo = &createInfo.samplerYcbcrConversionCreateInfo; - samplerYcbcrConversionCreateInfo->sType = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO_KHR; - - if (texture->format != SDL_PIXELFORMAT_I444 && - texture->format != SDL_PIXELFORMAT_I4FL) { + } else if (SDL_ISPIXELFORMAT_FOURCC(texture->format)) { + if (texture->format == SDL_PIXELFORMAT_YV12 || + texture->format == SDL_PIXELFORMAT_IYUV || + texture->format == SDL_PIXELFORMAT_NV12 || + texture->format == SDL_PIXELFORMAT_NV21 || + texture->format == SDL_PIXELFORMAT_P010 || + texture->format == SDL_PIXELFORMAT_I0FL) { // Pad width/height to multiple of 2 width = (width + 1) & ~1; height = (height + 1) & ~1; } - - // Create samplerYcbcrConversion which will be used on the VkImageView and VkSampler - samplerYcbcrConversionCreateInfo->format = textureFormat; - switch (SDL_COLORSPACEMATRIX(texture->colorspace)) { - case SDL_MATRIX_COEFFICIENTS_BT470BG: - case SDL_MATRIX_COEFFICIENTS_BT601: - samplerYcbcrConversionCreateInfo->ycbcrModel = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601_KHR; - break; - case SDL_MATRIX_COEFFICIENTS_BT709: - samplerYcbcrConversionCreateInfo->ycbcrModel = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709_KHR; - break; - case SDL_MATRIX_COEFFICIENTS_BT2020_NCL: - samplerYcbcrConversionCreateInfo->ycbcrModel = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020_KHR; - break; - case SDL_MATRIX_COEFFICIENTS_UNSPECIFIED: - if (texture->format == SDL_PIXELFORMAT_P010) { - samplerYcbcrConversionCreateInfo->ycbcrModel = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020_KHR; - } else if (height > YUV_SD_THRESHOLD) { - samplerYcbcrConversionCreateInfo->ycbcrModel = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709_KHR; - } else { - samplerYcbcrConversionCreateInfo->ycbcrModel = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601_KHR; - } - break; - default: - return SDL_SetError("Unsupported Ycbcr colorspace: %d", SDL_COLORSPACEMATRIX(texture->colorspace)); - } - samplerYcbcrConversionCreateInfo->components.r = VK_COMPONENT_SWIZZLE_IDENTITY; - samplerYcbcrConversionCreateInfo->components.g = VK_COMPONENT_SWIZZLE_IDENTITY; - samplerYcbcrConversionCreateInfo->components.b = VK_COMPONENT_SWIZZLE_IDENTITY; - samplerYcbcrConversionCreateInfo->components.a = VK_COMPONENT_SWIZZLE_IDENTITY; if (texture->format == SDL_PIXELFORMAT_YV12 || - texture->format == SDL_PIXELFORMAT_NV21) { - samplerYcbcrConversionCreateInfo->components.r = VK_COMPONENT_SWIZZLE_B; - samplerYcbcrConversionCreateInfo->components.b = VK_COMPONENT_SWIZZLE_R; + texture->format == SDL_PIXELFORMAT_IYUV || + texture->format == SDL_PIXELFORMAT_I0FL) { + // YUV 4:2:0 formats + chromaWidth = (width / 2); + chromaHeight = (height / 2); } - switch (SDL_COLORSPACERANGE(texture->colorspace)) { - case SDL_COLOR_RANGE_LIMITED: - samplerYcbcrConversionCreateInfo->ycbcrRange = VK_SAMPLER_YCBCR_RANGE_ITU_NARROW_KHR; + int bits_per_pixel; + switch (texture->format) { + case SDL_PIXELFORMAT_I0FL: + case SDL_PIXELFORMAT_I4FL: + bits_per_pixel = 16; + break; + case SDL_PIXELFORMAT_P010: + bits_per_pixel = 10; break; - case SDL_COLOR_RANGE_FULL: default: - samplerYcbcrConversionCreateInfo->ycbcrRange = VK_SAMPLER_YCBCR_RANGE_ITU_FULL_KHR; + bits_per_pixel = 8; break; } - - switch (SDL_COLORSPACECHROMA(texture->colorspace)) { - case SDL_CHROMA_LOCATION_LEFT: - samplerYcbcrConversionCreateInfo->xChromaOffset = VK_CHROMA_LOCATION_COSITED_EVEN_KHR; - samplerYcbcrConversionCreateInfo->yChromaOffset = VK_CHROMA_LOCATION_MIDPOINT_KHR; - break; - case SDL_CHROMA_LOCATION_TOPLEFT: - samplerYcbcrConversionCreateInfo->xChromaOffset = VK_CHROMA_LOCATION_COSITED_EVEN_KHR; - samplerYcbcrConversionCreateInfo->yChromaOffset = VK_CHROMA_LOCATION_COSITED_EVEN_KHR; - break; - case SDL_CHROMA_LOCATION_NONE: - case SDL_CHROMA_LOCATION_CENTER: - default: - samplerYcbcrConversionCreateInfo->xChromaOffset = VK_CHROMA_LOCATION_MIDPOINT_KHR; - samplerYcbcrConversionCreateInfo->yChromaOffset = VK_CHROMA_LOCATION_MIDPOINT_KHR; - break; + textureData->YCbCr_matrix = SDL_GetYCbCRtoRGBConversionMatrix(texture->colorspace, texture->w, texture->h, bits_per_pixel); + if (!textureData->YCbCr_matrix) { + return SDL_SetError("Unsupported YUV colorspace"); } - samplerYcbcrConversionCreateInfo->chromaFilter = VK_FILTER_LINEAR; - - textureData->yuvPipeline = VULKAN_GetYUVPipeline(rendererData, &createInfo); - if (!textureData->yuvPipeline) { - return false; - } - - textureData->yuv = true; } textureData->width = width; textureData->height = height; - VkImageUsageFlags usage = VK_IMAGE_USAGE_SAMPLED_BIT; - if (!external) { - usage |= (VK_IMAGE_USAGE_TRANSFER_SRC_BIT | VK_IMAGE_USAGE_TRANSFER_DST_BIT); - } + VkImageUsageFlags usage = (VK_IMAGE_USAGE_SAMPLED_BIT | VK_IMAGE_USAGE_TRANSFER_DST_BIT); if (texture->access == SDL_TEXTUREACCESS_TARGET) { - usage |= VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT; + usage |= (VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_TRANSFER_SRC_BIT); } + usage |= (VkImageUsageFlags)SDL_GetNumberProperty(create_props, SDL_PROP_TEXTURE_CREATE_VULKAN_USAGE_NUMBER, 0); + + static const char *imageCreateProperties[] = { + SDL_PROP_TEXTURE_CREATE_VULKAN_TEXTURE_NUMBER, + SDL_PROP_TEXTURE_CREATE_VULKAN_TEXTURE_U_NUMBER, + SDL_PROP_TEXTURE_CREATE_VULKAN_TEXTURE_V_NUMBER + }; + SDL_COMPILE_TIME_ASSERT(imageCreateProperties, SDL_arraysize(imageCreateProperties) == SDL_VULKAN_NUM_TEXTURE_BINDINGS); VkSamplerYcbcrConversionKHR samplerYcbcrConversion = (textureData->yuvPipeline ? textureData->yuvPipeline->samplerYcbcrConversion : VK_NULL_HANDLE); - result = VULKAN_AllocateImage(rendererData, create_props, width, height, textureFormat, usage, imageViewSwizzle, samplerYcbcrConversion, external, &textureData->mainImage); - if (result != VK_SUCCESS) { - SET_ERROR_CODE("VULKAN_AllocateImage()", result); - return false; + for (int i = 0; i < numImages; ++i) { + uint32_t imageWidth = (i == 0 ? width : chromaWidth); + uint32_t imageHeight = (i == 0 ? height : chromaHeight); + result = VULKAN_AllocateImage(rendererData, create_props, imageCreateProperties[i], imageWidth, imageHeight, textureFormat, usage, samplerYcbcrConversion, external, &textureData->images[i]); + if (result != VK_SUCCESS) { + SET_ERROR_CODE("VULKAN_AllocateImage()", result); + return false; + } + ++textureData->numImages; } - SDL_PropertiesID props = SDL_GetTextureProperties(texture); - SDL_SetNumberProperty(props, SDL_PROP_TEXTURE_VULKAN_TEXTURE_NUMBER, (Sint64)textureData->mainImage.image); + bool usePlaneViews = (numImageViews > numImages); + int imageIndex = 0; + for (int i = 0; i < numImageViews; ++i) { + VkFormat imageViewFormat = VULKAN_GetVkImageViewFormat(texture->format, i, renderer->output_colorspace); + int imagePlane = usePlaneViews ? i : -1; + result = VULKAN_AllocateImageView(rendererData, textureData->images[imageIndex].image, imagePlane, imageViewFormat, usage, imageViewSwizzle, samplerYcbcrConversion, &textureData->imageViews[i]); + if (result != VK_SUCCESS) { + SET_ERROR_CODE("VULKAN_AllocateImageView()", result); + return false; + } + ++textureData->numImageViews; + + if (imageIndex < (numImages - 1)) { + ++imageIndex; + } + } if (texture->access == SDL_TEXTUREACCESS_TARGET) { result = VULKAN_CreateFramebuffersAndRenderPasses(renderer, texture->w, texture->h, textureFormat, - 1, - &textureData->mainImage.imageView, + textureData->numImageViews, + textureData->imageViews, &textureData->mainFramebuffer, textureData->mainRenderpasses); if (result != VK_SUCCESS) { @@ -3194,6 +3272,19 @@ static bool VULKAN_CreateTexture(SDL_Renderer *renderer, SDL_Texture *texture, S return false; } } + + static const char *imageProperties[] = { + SDL_PROP_TEXTURE_VULKAN_TEXTURE_NUMBER, + SDL_PROP_TEXTURE_VULKAN_TEXTURE_U_NUMBER, + SDL_PROP_TEXTURE_VULKAN_TEXTURE_V_NUMBER + }; + SDL_COMPILE_TIME_ASSERT(imageProperties, SDL_arraysize(imageProperties) == SDL_VULKAN_NUM_TEXTURE_BINDINGS); + + SDL_PropertiesID props = SDL_GetTextureProperties(texture); + for (int i = 0; i < numImages; ++i) { + SDL_SetNumberProperty(props, imageProperties[i], (Sint64)textureData->images[i].image); + } + return true; } @@ -3212,7 +3303,15 @@ static void VULKAN_DestroyTexture(SDL_Renderer *renderer, VULKAN_IssueBatch(rendererData); VULKAN_WaitForGPU(rendererData); - VULKAN_DestroyImage(rendererData, &textureData->mainImage); + for (int i = 0; i < textureData->numImageViews; ++i) { + if (textureData->imageViews[i] != VK_NULL_HANDLE) { + vkDestroyImageView(rendererData->device, textureData->imageViews[i], NULL); + textureData->imageViews[i] = VK_NULL_HANDLE; + } + } + for (int i = 0; i < textureData->numImages; ++i) { + VULKAN_DestroyImage(rendererData, &textureData->images[i]); + } VULKAN_DestroyBuffer(rendererData, &textureData->stagingBuffer); if (textureData->mainFramebuffer != VK_NULL_HANDLE) { @@ -3348,10 +3447,9 @@ static bool VULKAN_UpdateTexture(SDL_Renderer *renderer, SDL_Texture *texture, return SDL_Unsupported(); } - Uint32 numPlanes = VULKAN_VkFormatGetNumPlanes(textureData->mainImage.format); - if (numPlanes == 2) { + if (textureData->numImageViews == 2) { // NV12/NV21 data - int UVbpp = (int)VULKAN_GetBytesPerPixel(textureData->mainImage.format, 1); + int UVbpp = (int)VULKAN_GetBytesPerPixel(textureData->images[0].format, 1); int Ypitch = srcPitch; int UVpitch = (srcPitch + (UVbpp - 1)) & ~(UVbpp - 1); const Uint8 *plane0 = (const Uint8 *)srcPixels; @@ -3359,7 +3457,7 @@ static bool VULKAN_UpdateTexture(SDL_Renderer *renderer, SDL_Texture *texture, return VULKAN_UpdateTextureNV(renderer, texture, rect, plane0, Ypitch, plane1, UVpitch); - } else if (numPlanes == 3) { + } else if (textureData->numImageViews == 3) { // YUV data if (texture->format == SDL_PIXELFORMAT_I444 || texture->format == SDL_PIXELFORMAT_I4FL) { const Uint8 *plane0 = (const Uint8 *)srcPixels; @@ -3381,7 +3479,7 @@ static bool VULKAN_UpdateTexture(SDL_Renderer *renderer, SDL_Texture *texture, } } } - if (!VULKAN_UpdateTextureInternal(rendererData, textureData->mainImage.image, textureData->mainImage.format, 0, rect->x, rect->y, rect->w, rect->h, srcPixels, srcPitch, &textureData->mainImage.imageLayout)) { + if (!VULKAN_UpdateTextureInternal(rendererData, textureData->images[0].image, textureData->images[0].format, 0, rect->x, rect->y, rect->w, rect->h, srcPixels, srcPitch, &textureData->images[0].imageLayout)) { return false; } return true; @@ -3404,28 +3502,28 @@ static bool VULKAN_UpdateTextureYUV(SDL_Renderer *renderer, SDL_Texture *texture return SDL_Unsupported(); } - if (!VULKAN_UpdateTextureInternal(rendererData, textureData->mainImage.image, textureData->mainImage.format, 0, rect->x, rect->y, rect->w, rect->h, Yplane, Ypitch, &textureData->mainImage.imageLayout)) { + if (!VULKAN_UpdateTextureInternal(rendererData, textureData->images[0].image, textureData->images[0].format, 0, rect->x, rect->y, rect->w, rect->h, Yplane, Ypitch, &textureData->images[0].imageLayout)) { return false; } if (texture->format == SDL_PIXELFORMAT_I444 || texture->format == SDL_PIXELFORMAT_I4FL) { - if (!VULKAN_UpdateTextureInternal(rendererData, textureData->mainImage.image, textureData->mainImage.format, 1, rect->x, rect->y, rect->w, rect->h, Uplane, Upitch, &textureData->mainImage.imageLayout)) { + if (!VULKAN_UpdateTextureInternal(rendererData, textureData->images[1].image, textureData->images[1].format, 0, rect->x, rect->y, rect->w, rect->h, Uplane, Upitch, &textureData->images[1].imageLayout)) { return false; } - if (!VULKAN_UpdateTextureInternal(rendererData, textureData->mainImage.image, textureData->mainImage.format, 2, rect->x, rect->y, rect->w, rect->h, Vplane, Vpitch, &textureData->mainImage.imageLayout)) { + if (!VULKAN_UpdateTextureInternal(rendererData, textureData->images[2].image, textureData->images[2].format, 0, rect->x, rect->y, rect->w, rect->h, Vplane, Vpitch, &textureData->images[2].imageLayout)) { return false; } } else if (texture->format == SDL_PIXELFORMAT_YV12) { - if (!VULKAN_UpdateTextureInternal(rendererData, textureData->mainImage.image, textureData->mainImage.format, 1, rect->x / 2, rect->y / 2, (rect->w + 1) / 2, (rect->h + 1) / 2, Vplane, Vpitch, &textureData->mainImage.imageLayout)) { + if (!VULKAN_UpdateTextureInternal(rendererData, textureData->images[2].image, textureData->images[2].format, 1, rect->x / 2, rect->y / 2, (rect->w + 1) / 2, (rect->h + 1) / 2, Vplane, Vpitch, &textureData->images[2].imageLayout)) { return false; } - if (!VULKAN_UpdateTextureInternal(rendererData, textureData->mainImage.image, textureData->mainImage.format, 2, rect->x / 2, rect->y / 2, (rect->w + 1) / 2, (rect->h + 1) / 2, Uplane, Upitch, &textureData->mainImage.imageLayout)) { + if (!VULKAN_UpdateTextureInternal(rendererData, textureData->images[1].image, textureData->images[1].format, 2, rect->x / 2, rect->y / 2, (rect->w + 1) / 2, (rect->h + 1) / 2, Uplane, Upitch, &textureData->images[1].imageLayout)) { return false; } } else { - if (!VULKAN_UpdateTextureInternal(rendererData, textureData->mainImage.image, textureData->mainImage.format, 1, rect->x / 2, rect->y / 2, (rect->w + 1) / 2, (rect->h + 1) / 2, Uplane, Upitch, &textureData->mainImage.imageLayout)) { + if (!VULKAN_UpdateTextureInternal(rendererData, textureData->images[1].image, textureData->images[1].format, 1, rect->x / 2, rect->y / 2, (rect->w + 1) / 2, (rect->h + 1) / 2, Uplane, Upitch, &textureData->images[1].imageLayout)) { return false; } - if (!VULKAN_UpdateTextureInternal(rendererData, textureData->mainImage.image, textureData->mainImage.format, 2, rect->x / 2, rect->y / 2, (rect->w + 1) / 2, (rect->h + 1) / 2, Vplane, Vpitch, &textureData->mainImage.imageLayout)) { + if (!VULKAN_UpdateTextureInternal(rendererData, textureData->images[2].image, textureData->images[2].format, 2, rect->x / 2, rect->y / 2, (rect->w + 1) / 2, (rect->h + 1) / 2, Vplane, Vpitch, &textureData->images[2].imageLayout)) { return false; } } @@ -3448,11 +3546,11 @@ static bool VULKAN_UpdateTextureNV(SDL_Renderer *renderer, SDL_Texture *texture, return SDL_Unsupported(); } - if (!VULKAN_UpdateTextureInternal(rendererData, textureData->mainImage.image, textureData->mainImage.format, 0, rect->x, rect->y, rect->w, rect->h, Yplane, Ypitch, &textureData->mainImage.imageLayout)) { + if (!VULKAN_UpdateTextureInternal(rendererData, textureData->images[0].image, textureData->images[0].format, 0, rect->x, rect->y, rect->w, rect->h, Yplane, Ypitch, &textureData->images[0].imageLayout)) { return false; } - if (!VULKAN_UpdateTextureInternal(rendererData, textureData->mainImage.image, textureData->mainImage.format, 1, rect->x / 2, rect->y / 2, (rect->w + 1) / 2, (rect->h + 1) / 2, UVplane, UVpitch, &textureData->mainImage.imageLayout)) { + if (!VULKAN_UpdateTextureInternal(rendererData, textureData->images[0].image, textureData->images[0].format, 1, rect->x / 2, rect->y / 2, (rect->w + 1) / 2, (rect->h + 1) / 2, UVplane, UVpitch, &textureData->images[0].imageLayout)) { return false; } return true; @@ -3477,7 +3575,7 @@ static bool VULKAN_LockTexture(SDL_Renderer *renderer, SDL_Texture *texture, return SDL_Unsupported(); } - if (textureData->yuv) { + if (textureData->numImageViews > 1) { // It's more efficient to upload directly... if (!textureData->pixels) { size_t size, calculated_pitch; @@ -3498,7 +3596,7 @@ static bool VULKAN_LockTexture(SDL_Renderer *renderer, SDL_Texture *texture, return true; } - VkDeviceSize pixelSize = VULKAN_GetBytesPerPixel(textureData->mainImage.format, 0); + VkDeviceSize pixelSize = VULKAN_GetBytesPerPixel(textureData->images[0].format, 0); VkDeviceSize length = rect->w * pixelSize; VkDeviceSize stagingBufferSize = length * rect->h; rc = VULKAN_AllocateBuffer(rendererData, @@ -3539,7 +3637,7 @@ static void VULKAN_UnlockTexture(SDL_Renderer *renderer, SDL_Texture *texture) return; } - if (textureData->yuv) { + if (textureData->numImageViews > 1) { const SDL_Rect *rect = &textureData->lockedRect; const Uint8 *pixels = textureData->pixels + rect->y * textureData->pitch + rect->x * SDL_BYTESPERPIXEL(texture->format); @@ -3556,8 +3654,8 @@ static void VULKAN_UnlockTexture(SDL_Renderer *renderer, SDL_Texture *texture) VK_PIPELINE_STAGE_TRANSFER_BIT | VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT | VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT, VK_PIPELINE_STAGE_TRANSFER_BIT, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, - textureData->mainImage.image, - &textureData->mainImage.imageLayout); + textureData->images[0].image, + &textureData->images[0].imageLayout); VkBufferImageCopy region; region.bufferOffset = 0; @@ -3573,7 +3671,7 @@ static void VULKAN_UnlockTexture(SDL_Renderer *renderer, SDL_Texture *texture) region.imageExtent.width = textureData->lockedRect.w; region.imageExtent.height = textureData->lockedRect.h; region.imageExtent.depth = 1; - vkCmdCopyBufferToImage(rendererData->currentCommandBuffer, textureData->stagingBuffer.buffer, textureData->mainImage.image, textureData->mainImage.imageLayout, 1, ®ion); + vkCmdCopyBufferToImage(rendererData->currentCommandBuffer, textureData->stagingBuffer.buffer, textureData->images[0].image, textureData->images[0].imageLayout, 1, ®ion); // Transition the texture to be shader accessible VULKAN_RecordPipelineImageBarrier(rendererData, @@ -3582,8 +3680,8 @@ static void VULKAN_UnlockTexture(SDL_Renderer *renderer, SDL_Texture *texture) VK_PIPELINE_STAGE_TRANSFER_BIT, VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, - textureData->mainImage.image, - &textureData->mainImage.imageLayout); + textureData->images[0].image, + &textureData->images[0].imageLayout); // Execute the command list before releasing the staging buffer VULKAN_IssueBatch(rendererData); @@ -3601,7 +3699,7 @@ static bool VULKAN_SetRenderTarget(SDL_Renderer *renderer, SDL_Texture *texture) if (texture) { textureData = (VULKAN_TextureData *)texture->internal; - if (textureData->mainImage.imageView == VK_NULL_HANDLE) { + if (textureData->imageViews[0] == VK_NULL_HANDLE) { return SDL_SetError("specified texture is not a render target"); } @@ -3612,8 +3710,8 @@ static bool VULKAN_SetRenderTarget(SDL_Renderer *renderer, SDL_Texture *texture) VK_PIPELINE_STAGE_TRANSFER_BIT | VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT | VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT, VK_PIPELINE_STAGE_TRANSFER_BIT | VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT | VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT, VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, - rendererData->textureRenderTarget->mainImage.image, - &rendererData->textureRenderTarget->mainImage.imageLayout); + rendererData->textureRenderTarget->images[0].image, + &rendererData->textureRenderTarget->images[0].imageLayout); } else { if (rendererData->textureRenderTarget) { VULKAN_RecordPipelineImageBarrier(rendererData, @@ -3622,8 +3720,8 @@ static bool VULKAN_SetRenderTarget(SDL_Renderer *renderer, SDL_Texture *texture) VK_PIPELINE_STAGE_TRANSFER_BIT | VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT | VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT, VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, - rendererData->textureRenderTarget->mainImage.image, - &rendererData->textureRenderTarget->mainImage.imageLayout); + rendererData->textureRenderTarget->images[0].image, + &rendererData->textureRenderTarget->images[0].imageLayout); } rendererData->textureRenderTarget = NULL; } @@ -3892,33 +3990,11 @@ static void VULKAN_SetupShaderConstants(SDL_Renderer *renderer, const SDL_Render constants->color_scale = cmd->data.draw.color_scale; if (texture) { - switch (texture->format) { - case SDL_PIXELFORMAT_YV12: - case SDL_PIXELFORMAT_IYUV: - case SDL_PIXELFORMAT_I444: - case SDL_PIXELFORMAT_NV12: - case SDL_PIXELFORMAT_NV21: - constants->input_type = INPUTTYPE_SRGB; - break; - case SDL_PIXELFORMAT_P010: - case SDL_PIXELFORMAT_I0FL: - case SDL_PIXELFORMAT_I4FL: - constants->input_type = INPUTTYPE_HDR10; - break; - default: - if (texture->colorspace == SDL_COLORSPACE_SRGB_LINEAR) { - constants->input_type = INPUTTYPE_SCRGB; - } else if (SDL_COLORSPACEPRIMARIES(texture->colorspace) == SDL_COLOR_PRIMARIES_BT2020 && - SDL_COLORSPACETRANSFER(texture->colorspace) == SDL_TRANSFER_CHARACTERISTICS_PQ) { - constants->input_type = INPUTTYPE_HDR10; - } else { - // The sampler will convert from sRGB to linear on load if working in linear colorspace - constants->input_type = INPUTTYPE_UNSPECIFIED; - } - break; - } + VULKAN_TextureData *textureData = (VULKAN_TextureData *)texture->internal; - if (texture->format == SDL_PIXELFORMAT_INDEX8) { + + switch (texture->format) { + case SDL_PIXELFORMAT_INDEX8: switch (cmd->data.draw.texture_scale_mode) { case SDL_SCALEMODE_NEAREST: constants->texture_type = TEXTURETYPE_PALETTE_NEAREST; @@ -3933,12 +4009,46 @@ static void VULKAN_SetupShaderConstants(SDL_Renderer *renderer, const SDL_Render SDL_assert(!"Unknown scale mode"); break; } - } else { + break; + case SDL_PIXELFORMAT_YV12: + case SDL_PIXELFORMAT_IYUV: + case SDL_PIXELFORMAT_I444: + constants->texture_type = TEXTURETYPE_YUV; + constants->input_type = INPUTTYPE_SRGB; + break; + case SDL_PIXELFORMAT_NV12: + constants->texture_type = TEXTURETYPE_NV12; + constants->input_type = INPUTTYPE_SRGB; + break; + case SDL_PIXELFORMAT_NV21: + constants->texture_type = TEXTURETYPE_NV21; + constants->input_type = INPUTTYPE_SRGB; + break; + case SDL_PIXELFORMAT_P010: + constants->texture_type = TEXTURETYPE_NV12; + constants->input_type = INPUTTYPE_HDR10; + break; + case SDL_PIXELFORMAT_I0FL: + case SDL_PIXELFORMAT_I4FL: + constants->texture_type = TEXTURETYPE_YUV; + constants->input_type = INPUTTYPE_HDR10; + break; + default: if (cmd->data.draw.texture_scale_mode == SDL_SCALEMODE_PIXELART) { constants->texture_type = TEXTURETYPE_RGB_PIXELART; } else { constants->texture_type = TEXTURETYPE_RGB; } + if (texture->colorspace == SDL_COLORSPACE_SRGB_LINEAR) { + constants->input_type = INPUTTYPE_SCRGB; + } else if (SDL_COLORSPACEPRIMARIES(texture->colorspace) == SDL_COLOR_PRIMARIES_BT2020 && + SDL_COLORSPACETRANSFER(texture->colorspace) == SDL_TRANSFER_CHARACTERISTICS_PQ) { + constants->input_type = INPUTTYPE_HDR10; + } else { + // The sampler will convert from sRGB to linear on load if working in linear colorspace + constants->input_type = INPUTTYPE_UNSPECIFIED; + } + break; } if (constants->texture_type == TEXTURETYPE_PALETTE_LINEAR || @@ -3963,6 +4073,10 @@ static void VULKAN_SetupShaderConstants(SDL_Renderer *renderer, const SDL_Render constants->tonemap_factor1 = (output_headroom / (texture->HDR_headroom * texture->HDR_headroom)); constants->tonemap_factor2 = (1.0f / output_headroom); } + + if (textureData->YCbCr_matrix) { + SDL_memcpy(constants->YCbCr_matrix, textureData->YCbCr_matrix, sizeof(constants->YCbCr_matrix)); + } } } @@ -3981,7 +4095,7 @@ static bool PQShaderScalesInput(const VULKAN_PixelShaderConstants *shader_consta return false; } -static VULKAN_Shader SelectShader(SDL_Renderer *renderer, const VULKAN_PixelShaderConstants *shader_constants, bool yuv) +static VULKAN_Shader SelectShader(SDL_Renderer *renderer, const VULKAN_PixelShaderConstants *shader_constants) { if (shader_constants) { if (renderer->current_colorspace == SDL_COLORSPACE_HDR10) { @@ -3998,18 +4112,10 @@ static VULKAN_Shader SelectShader(SDL_Renderer *renderer, const VULKAN_PixelShad if (shader_constants->texture_type == TEXTURETYPE_RGB && shader_constants->input_type == INPUTTYPE_UNSPECIFIED && shader_constants->tonemap_method == TONEMAP_NONE) { - if (yuv) { - return SHADER_RGB_YUV; - } else { - return SHADER_RGB; - } + return SHADER_RGB; } - if (yuv) { - return SHADER_ADVANCED_YUV; - } else { - return SHADER_ADVANCED; - } + return SHADER_ADVANCED; } else { if (renderer->current_colorspace == SDL_COLORSPACE_HDR10) { return SHADER_SOLID_PQ; @@ -4027,7 +4133,7 @@ static VkDescriptorPool VULKAN_AllocateDescriptorPool(VULKAN_RenderData *rendere descriptorPoolSizes[0].descriptorCount = SDL_VULKAN_MAX_DESCRIPTOR_SETS; descriptorPoolSizes[0].type = VK_DESCRIPTOR_TYPE_SAMPLER; - descriptorPoolSizes[1].descriptorCount = SDL_VULKAN_MAX_DESCRIPTOR_SETS; + descriptorPoolSizes[1].descriptorCount = SDL_VULKAN_NUM_TEXTURE_BINDINGS * SDL_VULKAN_MAX_DESCRIPTOR_SETS; descriptorPoolSizes[1].type = VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER; descriptorPoolSizes[2].descriptorCount = SDL_VULKAN_MAX_DESCRIPTOR_SETS; @@ -4056,7 +4162,7 @@ static VkResult VULKAN_CreateDescriptorSetAndPipelineLayout(VULKAN_RenderData *r VkDescriptorSetLayoutCreateInfo descriptorSetLayoutCreateInfo = { 0 }; descriptorSetLayoutCreateInfo.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO; descriptorSetLayoutCreateInfo.flags = 0; - VkDescriptorSetLayoutBinding layoutBindings[3]; + VkDescriptorSetLayoutBinding layoutBindings[1 + SDL_VULKAN_NUM_TEXTURE_BINDINGS]; // PixelShaderConstants layoutBindings[0].binding = 0; layoutBindings[0].descriptorCount = 1; @@ -4064,21 +4170,16 @@ static VkResult VULKAN_CreateDescriptorSetAndPipelineLayout(VULKAN_RenderData *r layoutBindings[0].stageFlags = VK_SHADER_STAGE_FRAGMENT_BIT; layoutBindings[0].pImmutableSamplers = NULL; - // Combined image/sampler - layoutBindings[1].binding = 1; - layoutBindings[1].descriptorCount = 1; - layoutBindings[1].descriptorType = VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER; - layoutBindings[1].stageFlags = VK_SHADER_STAGE_FRAGMENT_BIT; - layoutBindings[1].pImmutableSamplers = (samplerYcbcr != VK_NULL_HANDLE) ? &samplerYcbcr : NULL; + for (uint32_t i = 1; i < SDL_arraysize(layoutBindings); ++i) + { + layoutBindings[i].binding = i; + layoutBindings[i].descriptorCount = 1; + layoutBindings[i].descriptorType = VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER; + layoutBindings[i].stageFlags = VK_SHADER_STAGE_FRAGMENT_BIT; + layoutBindings[i].pImmutableSamplers = (samplerYcbcr != VK_NULL_HANDLE) ? &samplerYcbcr : NULL; + } - // Combined image/sampler - layoutBindings[2].binding = 2; - layoutBindings[2].descriptorCount = 1; - layoutBindings[2].descriptorType = VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER; - layoutBindings[2].stageFlags = VK_SHADER_STAGE_FRAGMENT_BIT; - layoutBindings[2].pImmutableSamplers = (samplerYcbcr != VK_NULL_HANDLE) ? &samplerYcbcr : NULL; - - descriptorSetLayoutCreateInfo.bindingCount = 3; + descriptorSetLayoutCreateInfo.bindingCount = SDL_arraysize(layoutBindings); descriptorSetLayoutCreateInfo.pBindings = layoutBindings; result = vkCreateDescriptorSetLayout(rendererData->device, &descriptorSetLayoutCreateInfo, NULL, descriptorSetLayoutOut); if (result != VK_SUCCESS) { @@ -4160,13 +4261,13 @@ static VkDescriptorSet VULKAN_AllocateDescriptorSet(SDL_Renderer *renderer, VULK } } rendererData->currentDescriptorSetIndex++; - VkDescriptorImageInfo combinedImageSamplerDescriptor[2]; + VkDescriptorImageInfo combinedImageSamplerDescriptor[SDL_VULKAN_NUM_TEXTURE_BINDINGS]; VkDescriptorBufferInfo bufferDescriptor = { 0 }; bufferDescriptor.buffer = constantBuffer; bufferDescriptor.offset = constantBufferOffset; bufferDescriptor.range = sizeof(VULKAN_PixelShaderConstants); - VkWriteDescriptorSet descriptorWrites[3]; + VkWriteDescriptorSet descriptorWrites[1 + SDL_arraysize(combinedImageSamplerDescriptor)]; SDL_zero(descriptorWrites); uint32_t descriptorCount = 1; // Always have the uniform buffer @@ -4207,6 +4308,7 @@ static VkDescriptorSet VULKAN_AllocateDescriptorSet(SDL_Renderer *renderer, VULK return descriptorSet; } +#ifdef SDL_PLATFORM_ANDROID static VULKAN_YUVPipeline *VULKAN_GetYUVPipeline(VULKAN_RenderData *rendererData, const VULKAN_YUVPipelineCreateInfo *createInfo) { VULKAN_YUVPipeline *pipeline; @@ -4274,6 +4376,7 @@ static VULKAN_YUVPipeline *VULKAN_GetYUVPipeline(VULKAN_RenderData *rendererData return pipeline; } +#endif // SDL_PLATFORM_ANDROID static void VULKAN_CleanupYUVPipeline(VULKAN_RenderData *rendererData, VULKAN_YUVPipeline *pipeline) { @@ -4292,7 +4395,7 @@ static void VULKAN_CleanupYUVPipeline(VULKAN_RenderData *rendererData, VULKAN_YU SDL_free(pipeline); } -static bool VULKAN_SetDrawState(SDL_Renderer *renderer, const SDL_RenderCommand *cmd, VkPipelineLayout pipelineLayout, VkDescriptorSetLayout descriptorSetLayout, const VULKAN_PixelShaderConstants *shader_constants, VkPrimitiveTopology topology, int numImages, VkImageView *imageViews, int numSamplers, VkSampler *samplers, const Float4X4 *matrix, VULKAN_DrawStateCache *stateCache, bool yuv) +static bool VULKAN_SetDrawState(SDL_Renderer *renderer, const SDL_RenderCommand *cmd, VkPipelineLayout pipelineLayout, VkDescriptorSetLayout descriptorSetLayout, const VULKAN_PixelShaderConstants *shader_constants, VkPrimitiveTopology topology, int numImages, VkImageView *imageViews, int numSamplers, VkSampler *samplers, const Float4X4 *matrix, VULKAN_DrawStateCache *stateCache) { VULKAN_RenderData *rendererData = (VULKAN_RenderData *)renderer->internal; @@ -4300,7 +4403,7 @@ static bool VULKAN_SetDrawState(SDL_Renderer *renderer, const SDL_RenderCommand VkFormat format; const Float4X4 *newmatrix = matrix ? matrix : &rendererData->identity; bool updateConstants = false; - VULKAN_Shader shader = SelectShader(renderer, shader_constants, yuv); + VULKAN_Shader shader = SelectShader(renderer, shader_constants); VULKAN_PixelShaderConstants solid_constants; VkDescriptorSet descriptorSet; VkBuffer constantBuffer; @@ -4312,7 +4415,7 @@ static bool VULKAN_SetDrawState(SDL_Renderer *renderer, const SDL_RenderCommand } if (rendererData->textureRenderTarget) { - format = rendererData->textureRenderTarget->mainImage.format; + format = rendererData->textureRenderTarget->images[0].format; } else { format = rendererData->surfaceFormat.format; } @@ -4513,9 +4616,9 @@ static bool VULKAN_SetCopyState(SDL_Renderer *renderer, const SDL_RenderCommand VULKAN_RenderData *rendererData = (VULKAN_RenderData *)renderer->internal; VULKAN_TextureData *textureData = (VULKAN_TextureData *)texture->internal; int numImageViews = 0; - VkImageView imageViews[2]; + VkImageView imageViews[SDL_VULKAN_NUM_TEXTURE_BINDINGS]; int numSamplers = 0; - VkSampler samplers[2]; + VkSampler samplers[SDL_VULKAN_NUM_TEXTURE_BINDINGS]; VULKAN_PixelShaderConstants constants; VkDescriptorSetLayout descriptorSetLayout; VkPipelineLayout pipelineLayout; @@ -4526,28 +4629,30 @@ static bool VULKAN_SetCopyState(SDL_Renderer *renderer, const SDL_RenderCommand VULKAN_SetupShaderConstants(renderer, cmd, texture, &constants); - if (textureData->mainImage.imageLayout != VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL) { - bool stoppedRenderPass = false; - if (rendererData->currentRenderPass != VK_NULL_HANDLE) { - vkCmdEndRenderPass(rendererData->currentCommandBuffer); - rendererData->currentRenderPass = VK_NULL_HANDLE; - stoppedRenderPass = true; - } - - VULKAN_RecordPipelineImageBarrier(rendererData, - VK_ACCESS_TRANSFER_WRITE_BIT | VK_ACCESS_SHADER_READ_BIT | VK_ACCESS_COLOR_ATTACHMENT_READ_BIT | VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT, - VK_ACCESS_SHADER_READ_BIT, - VK_PIPELINE_STAGE_TRANSFER_BIT | VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT | VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT, - VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT, - VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, - textureData->mainImage.image, - &textureData->mainImage.imageLayout); - - if (stoppedRenderPass) { - VULKAN_BeginRenderPass(rendererData, VK_ATTACHMENT_LOAD_OP_LOAD, NULL); + for (int i = 0; i < textureData->numImages; ++i) { + if (textureData->images[i].imageLayout != VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL) { + bool stoppedRenderPass = false; + if (rendererData->currentRenderPass != VK_NULL_HANDLE) { + vkCmdEndRenderPass(rendererData->currentCommandBuffer); + rendererData->currentRenderPass = VK_NULL_HANDLE; + stoppedRenderPass = true; + } + VULKAN_RecordPipelineImageBarrier(rendererData, + VK_ACCESS_TRANSFER_WRITE_BIT | VK_ACCESS_SHADER_READ_BIT | VK_ACCESS_COLOR_ATTACHMENT_READ_BIT | VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT, + VK_ACCESS_SHADER_READ_BIT, + VK_PIPELINE_STAGE_TRANSFER_BIT | VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT | VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT, + VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT, + VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, + textureData->images[i].image, + &textureData->images[i].imageLayout); + if (stoppedRenderPass) { + VULKAN_BeginRenderPass(rendererData, VK_ATTACHMENT_LOAD_OP_LOAD, NULL); + } } } - imageViews[numImageViews++] = textureData->mainImage.imageView; + for (int i = 0; i < textureData->numImageViews; ++i) { + imageViews[numImageViews++] = textureData->imageViews[i]; + } samplers[numSamplers] = VULKAN_GetSampler(rendererData, texture->format, cmd->data.draw.texture_scale_mode, cmd->data.draw.texture_address_mode_u, cmd->data.draw.texture_address_mode_v); if (samplers[numSamplers] == VK_NULL_HANDLE) { @@ -4578,16 +4683,20 @@ static bool VULKAN_SetCopyState(SDL_Renderer *renderer, const SDL_RenderCommand VULKAN_BeginRenderPass(rendererData, VK_ATTACHMENT_LOAD_OP_LOAD, NULL); } } - imageViews[numImageViews++] = palette->image.imageView; + imageViews[numImageViews++] = palette->imageView; samplers[numSamplers] = VULKAN_GetSampler(rendererData, SDL_PIXELFORMAT_UNKNOWN, SDL_SCALEMODE_NEAREST, SDL_TEXTURE_ADDRESS_CLAMP, SDL_TEXTURE_ADDRESS_CLAMP); if (samplers[numSamplers] == VK_NULL_HANDLE) { return false; } ++numSamplers; - } else { - // We need a valid image view and sampler, but we know we're not going to reference them in the shader + } + + // Fill out the rest of the image views and samplers + while (numImageViews < SDL_arraysize(imageViews)) { imageViews[numImageViews++] = imageViews[0]; + } + while (numSamplers < SDL_arraysize(samplers)) { samplers[numSamplers++] = samplers[0]; } @@ -4598,7 +4707,7 @@ static bool VULKAN_SetCopyState(SDL_Renderer *renderer, const SDL_RenderCommand descriptorSetLayout = rendererData->descriptorSetLayout; pipelineLayout = rendererData->pipelineLayout; } - return VULKAN_SetDrawState(renderer, cmd, pipelineLayout, descriptorSetLayout, &constants, VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, numImageViews, imageViews, numSamplers, samplers, matrix, stateCache, textureData->yuv); + return VULKAN_SetDrawState(renderer, cmd, pipelineLayout, descriptorSetLayout, &constants, VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, numImageViews, imageViews, numSamplers, samplers, matrix, stateCache); } static void VULKAN_DrawPrimitives(SDL_Renderer *renderer, VkPrimitiveTopology primitiveTopology, const size_t vertexStart, const size_t vertexCount) @@ -4715,7 +4824,7 @@ static bool VULKAN_RunCommandQueue(SDL_Renderer *renderer, SDL_RenderCommand *cm size_t line_start = 0; size_t line_end = line_start + count - 1; if (verts[line_start].pos[0] != verts[line_end].pos[0] || verts[line_start].pos[1] != verts[line_end].pos[1]) { - if (VULKAN_SetDrawState(renderer, cmd, rendererData->pipelineLayout, rendererData->descriptorSetLayout, NULL, VK_PRIMITIVE_TOPOLOGY_POINT_LIST, 0, NULL, 0, NULL, NULL, &stateCache, false)) { + if (VULKAN_SetDrawState(renderer, cmd, rendererData->pipelineLayout, rendererData->descriptorSetLayout, NULL, VK_PRIMITIVE_TOPOLOGY_POINT_LIST, 0, NULL, 0, NULL, NULL, &stateCache)) { VULKAN_DrawPrimitives(renderer, VK_PRIMITIVE_TOPOLOGY_POINT_LIST, start + line_end, 1); have_point_draw_state = true; } @@ -4723,7 +4832,7 @@ static bool VULKAN_RunCommandQueue(SDL_Renderer *renderer, SDL_RenderCommand *cm if (count > 2) { // joined lines cannot be grouped - if (VULKAN_SetDrawState(renderer, cmd, rendererData->pipelineLayout, rendererData->descriptorSetLayout, NULL, VK_PRIMITIVE_TOPOLOGY_LINE_STRIP, 0, NULL, 0, NULL, NULL, &stateCache, false)) { + if (VULKAN_SetDrawState(renderer, cmd, rendererData->pipelineLayout, rendererData->descriptorSetLayout, NULL, VK_PRIMITIVE_TOPOLOGY_LINE_STRIP, 0, NULL, 0, NULL, NULL, &stateCache)) { VULKAN_DrawPrimitives(renderer, VK_PRIMITIVE_TOPOLOGY_LINE_STRIP, start, count); } } else { @@ -4754,7 +4863,7 @@ static bool VULKAN_RunCommandQueue(SDL_Renderer *renderer, SDL_RenderCommand *cm line_end = line_start + nextcmd->data.draw.count - 1; if (verts[line_start].pos[0] != verts[line_end].pos[0] || verts[line_start].pos[1] != verts[line_end].pos[1]) { if (!have_point_draw_state) { - have_point_draw_state = VULKAN_SetDrawState(renderer, cmd, rendererData->pipelineLayout, rendererData->descriptorSetLayout, NULL, VK_PRIMITIVE_TOPOLOGY_POINT_LIST, 0, NULL, 0, NULL, NULL, &stateCache, false); + have_point_draw_state = VULKAN_SetDrawState(renderer, cmd, rendererData->pipelineLayout, rendererData->descriptorSetLayout, NULL, VK_PRIMITIVE_TOPOLOGY_POINT_LIST, 0, NULL, 0, NULL, NULL, &stateCache); } if (have_point_draw_state) { VULKAN_DrawPrimitives(renderer, VK_PRIMITIVE_TOPOLOGY_POINT_LIST, start + line_end, 1); @@ -4764,7 +4873,7 @@ static bool VULKAN_RunCommandQueue(SDL_Renderer *renderer, SDL_RenderCommand *cm } } - if (VULKAN_SetDrawState(renderer, cmd, rendererData->pipelineLayout, rendererData->descriptorSetLayout, NULL, VK_PRIMITIVE_TOPOLOGY_LINE_LIST, 0, NULL, 0, NULL, NULL, &stateCache, false)) { + if (VULKAN_SetDrawState(renderer, cmd, rendererData->pipelineLayout, rendererData->descriptorSetLayout, NULL, VK_PRIMITIVE_TOPOLOGY_LINE_LIST, 0, NULL, 0, NULL, NULL, &stateCache)) { VULKAN_DrawPrimitives(renderer, VK_PRIMITIVE_TOPOLOGY_LINE_LIST, start, count); } @@ -4825,14 +4934,14 @@ static bool VULKAN_RunCommandQueue(SDL_Renderer *renderer, SDL_RenderCommand *cm if (thistexture) { setState = VULKAN_SetCopyState(renderer, cmd, NULL, &stateCache); } else { - setState = VULKAN_SetDrawState(renderer, cmd, rendererData->pipelineLayout, rendererData->descriptorSetLayout, NULL, VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, 0, NULL, 0, NULL, NULL, &stateCache, false); + setState = VULKAN_SetDrawState(renderer, cmd, rendererData->pipelineLayout, rendererData->descriptorSetLayout, NULL, VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, 0, NULL, 0, NULL, NULL, &stateCache); } if (setState) { VULKAN_DrawPrimitives(renderer, VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, start, count); } } else { - if (VULKAN_SetDrawState(renderer, cmd, rendererData->pipelineLayout, rendererData->descriptorSetLayout, NULL, VK_PRIMITIVE_TOPOLOGY_POINT_LIST, 0, NULL, 0, NULL, NULL, &stateCache, false)) { + if (VULKAN_SetDrawState(renderer, cmd, rendererData->pipelineLayout, rendererData->descriptorSetLayout, NULL, VK_PRIMITIVE_TOPOLOGY_POINT_LIST, 0, NULL, 0, NULL, NULL, &stateCache)) { VULKAN_DrawPrimitives(renderer, VK_PRIMITIVE_TOPOLOGY_POINT_LIST, start, count); } } @@ -4870,9 +4979,9 @@ static SDL_Surface *VULKAN_RenderReadPixels(SDL_Renderer *renderer, const SDL_Re } if (rendererData->textureRenderTarget) { - backBuffer = rendererData->textureRenderTarget->mainImage.image; - imageLayout = &rendererData->textureRenderTarget->mainImage.imageLayout; - vkFormat = rendererData->textureRenderTarget->mainImage.format; + backBuffer = rendererData->textureRenderTarget->images[0].image; + imageLayout = &rendererData->textureRenderTarget->images[0].imageLayout; + vkFormat = rendererData->textureRenderTarget->images[0].format; } else { backBuffer = rendererData->swapchainImages[rendererData->currentSwapchainImageIndex]; imageLayout = &rendererData->swapchainImageLayouts[rendererData->currentSwapchainImageIndex]; diff --git a/src/render/vulkan/SDL_shaders_vulkan.c b/src/render/vulkan/SDL_shaders_vulkan.c index d306f5088c..dbbefec89b 100644 --- a/src/render/vulkan/SDL_shaders_vulkan.c +++ b/src/render/vulkan/SDL_shaders_vulkan.c @@ -28,9 +28,7 @@ #include "VULKAN_PixelShader_Colors.h" #include "VULKAN_PixelShader_Colors_PQ.h" #include "VULKAN_PixelShader_Textures.h" -#include "VULKAN_PixelShader_Textures_YUV.h" #include "VULKAN_PixelShader_Advanced.h" -#include "VULKAN_PixelShader_Advanced_YUV.h" #include "VULKAN_PixelShader_Textures_PQ.h" #include "VULKAN_PixelShader_Textures_Simple.h" #include "VULKAN_VertexShader.h" @@ -48,12 +46,8 @@ static struct VULKAN_VertexShader, sizeof(VULKAN_VertexShader) }, { VULKAN_PixelShader_Textures, sizeof(VULKAN_PixelShader_Textures), VULKAN_VertexShader, sizeof(VULKAN_VertexShader) }, - { VULKAN_PixelShader_Textures_YUV, sizeof(VULKAN_PixelShader_Textures_YUV), - VULKAN_VertexShader, sizeof(VULKAN_VertexShader) }, { VULKAN_PixelShader_Advanced, sizeof(VULKAN_PixelShader_Advanced), VULKAN_VertexShader, sizeof(VULKAN_VertexShader) }, - { VULKAN_PixelShader_Advanced_YUV, sizeof(VULKAN_PixelShader_Advanced_YUV), - VULKAN_VertexShader, sizeof(VULKAN_VertexShader) }, { VULKAN_PixelShader_Textures_PQ, sizeof(VULKAN_PixelShader_Textures_PQ), VULKAN_VertexShader, sizeof(VULKAN_VertexShader) }, { VULKAN_PixelShader_Textures_Simple, sizeof(VULKAN_PixelShader_Textures_Simple), diff --git a/src/render/vulkan/SDL_shaders_vulkan.h b/src/render/vulkan/SDL_shaders_vulkan.h index 0f617a407e..b59d2f0469 100644 --- a/src/render/vulkan/SDL_shaders_vulkan.h +++ b/src/render/vulkan/SDL_shaders_vulkan.h @@ -32,9 +32,7 @@ typedef enum SHADER_SOLID, SHADER_SOLID_PQ, SHADER_RGB, - SHADER_RGB_YUV, SHADER_ADVANCED, - SHADER_ADVANCED_YUV, SHADER_RGB_PQ, SHADER_RGB_SIMPLE, NUM_SHADERS diff --git a/src/render/vulkan/VULKAN_PixelShader_Advanced.h b/src/render/vulkan/VULKAN_PixelShader_Advanced.h index 3bc6ff9caf..6f23d597c3 100644 --- a/src/render/vulkan/VULKAN_PixelShader_Advanced.h +++ b/src/render/vulkan/VULKAN_PixelShader_Advanced.h @@ -1,9 +1,9 @@ // 1114.0.0 #pragma once static const uint32_t VULKAN_PixelShader_Advanced[] = { - 0x07230203,0x00010000,0x0008000b,0x000006e9,0x00000000,0x00020011,0x00000001,0x0006000b, + 0x07230203,0x00010000,0x0008000b,0x0000084c,0x00000000,0x00020011,0x00000001,0x0006000b, 0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001, - 0x0008000f,0x00000004,0x00000004,0x6e69616d,0x00000000,0x000002a4,0x000002a7,0x000002ab, + 0x0008000f,0x00000004,0x00000004,0x6e69616d,0x00000000,0x00000340,0x00000343,0x00000347, 0x00030010,0x00000004,0x00000007,0x00030003,0x00000005,0x000001f4,0x00040005,0x00000004, 0x6e69616d,0x00000000,0x00050005,0x000000b7,0x736e6f43,0x746e6174,0x00000073,0x00070006, 0x000000b7,0x00000000,0x47526373,0x756f5f42,0x74757074,0x00000000,0x00070006,0x000000b7, @@ -13,425 +13,508 @@ static const uint32_t VULKAN_PixelShader_Advanced[] = { 0x000000b7,0x00000005,0x656e6f74,0x5f70616d,0x6874656d,0x0000646f,0x00070006,0x000000b7, 0x00000006,0x656e6f74,0x5f70616d,0x74636166,0x0031726f,0x00070006,0x000000b7,0x00000007, 0x656e6f74,0x5f70616d,0x74636166,0x0032726f,0x00070006,0x000000b7,0x00000008,0x5f726473, - 0x74696877,0x6f705f65,0x00746e69,0x00030005,0x000000b9,0x00000000,0x00050005,0x00000124, - 0x74786574,0x30657275,0x00000000,0x00050005,0x0000012b,0x74786574,0x31657275,0x00000000, - 0x00050005,0x000002a4,0x75706e69,0x65742e74,0x00000078,0x00050005,0x000002a7,0x75706e69, - 0x6f632e74,0x00726f6c,0x00070005,0x000002ab,0x746e6540,0x6f507972,0x4f746e69,0x75707475, - 0x00000074,0x00050048,0x000000b7,0x00000000,0x00000023,0x00000000,0x00050048,0x000000b7, - 0x00000001,0x00000023,0x00000004,0x00050048,0x000000b7,0x00000002,0x00000023,0x00000008, - 0x00050048,0x000000b7,0x00000003,0x00000023,0x0000000c,0x00050048,0x000000b7,0x00000004, - 0x00000023,0x00000010,0x00050048,0x000000b7,0x00000005,0x00000023,0x00000020,0x00050048, - 0x000000b7,0x00000006,0x00000023,0x00000024,0x00050048,0x000000b7,0x00000007,0x00000023, - 0x00000028,0x00050048,0x000000b7,0x00000008,0x00000023,0x0000002c,0x00030047,0x000000b7, - 0x00000002,0x00040047,0x000000b9,0x00000022,0x00000000,0x00040047,0x000000b9,0x00000021, - 0x00000000,0x00040047,0x00000124,0x00000022,0x00000000,0x00040047,0x00000124,0x00000021, - 0x00000001,0x00040047,0x0000012b,0x00000022,0x00000000,0x00040047,0x0000012b,0x00000021, - 0x00000002,0x00040047,0x000002a4,0x0000001e,0x00000000,0x00040047,0x000002a7,0x0000001e, - 0x00000001,0x00040047,0x000002ab,0x0000001e,0x00000000,0x00020013,0x00000002,0x00030021, - 0x00000003,0x00000002,0x00030016,0x00000006,0x00000020,0x00040017,0x0000000c,0x00000006, - 0x00000003,0x00040017,0x00000021,0x00000006,0x00000002,0x00040017,0x00000023,0x00000006, - 0x00000004,0x0004002b,0x00000006,0x00000047,0x3d25aee6,0x00020014,0x00000048,0x0004002b, - 0x00000006,0x0000004d,0x414eb852,0x0004002b,0x00000006,0x00000051,0x3d6147ae,0x0004002b, - 0x00000006,0x00000054,0x3f870a3d,0x0004002b,0x00000006,0x00000056,0x4019999a,0x0004002b, - 0x00000006,0x00000072,0x3b4d2e1c,0x0004002b,0x00000006,0x0000007b,0x3ed55555,0x0004002b, - 0x00000006,0x00000097,0x3c4fcdac,0x0006002c,0x0000000c,0x00000098,0x00000097,0x00000097, - 0x00000097,0x0004002b,0x00000006,0x0000009a,0x3f560000,0x0004002b,0x00000006,0x0000009d, - 0x00000000,0x0006002c,0x0000000c,0x0000009e,0x0000009d,0x0000009d,0x0000009d,0x0004002b, - 0x00000006,0x000000a1,0x4196d000,0x0004002b,0x00000006,0x000000a2,0x41958000,0x0004002b, - 0x00000006,0x000000a9,0x461c4000,0x0004002b,0x00000006,0x000000ae,0x40c8e06b,0x0006002c, - 0x0000000c,0x000000af,0x000000ae,0x000000ae,0x000000ae,0x000b001e,0x000000b7,0x00000006, - 0x00000006,0x00000006,0x00000006,0x00000023,0x00000006,0x00000006,0x00000006,0x00000006, - 0x00040020,0x000000b8,0x00000002,0x000000b7,0x0004003b,0x000000b8,0x000000b9,0x00000002, - 0x00040015,0x000000ba,0x00000020,0x00000001,0x0004002b,0x000000ba,0x000000bb,0x00000008, - 0x00040020,0x000000bc,0x00000002,0x00000006,0x0004002b,0x000000ba,0x000000c3,0x00000005, - 0x0004002b,0x00000006,0x000000c6,0x3f800000,0x0004002b,0x000000ba,0x000000ca,0x00000006, - 0x0004002b,0x00000006,0x000000d2,0x40000000,0x0004002b,0x000000ba,0x000000d6,0x00000002, - 0x00040018,0x000000dd,0x0000000c,0x00000003,0x0004002b,0x00000006,0x000000de,0x3f209d8c, - 0x0004002b,0x00000006,0x000000df,0x3ea897c8,0x0004002b,0x00000006,0x000000e0,0x3d3168f9, - 0x0006002c,0x0000000c,0x000000e1,0x000000de,0x000000df,0x000000e0,0x0004002b,0x00000006, - 0x000000e2,0x3d8d82ba,0x0004002b,0x00000006,0x000000e3,0x3f6b670a,0x0004002b,0x00000006, - 0x000000e4,0x3c3a27af,0x0006002c,0x0000000c,0x000000e5,0x000000e2,0x000000e3,0x000000e4, - 0x0004002b,0x00000006,0x000000e6,0x3c86466b,0x0004002b,0x00000006,0x000000e7,0x3db44029, - 0x0004002b,0x00000006,0x000000e8,0x3f6545b7,0x0006002c,0x0000000c,0x000000e9,0x000000e6, - 0x000000e7,0x000000e8,0x0006002c,0x000000dd,0x000000ea,0x000000e1,0x000000e5,0x000000e9, - 0x0004002b,0x000000ba,0x000000ff,0x00000007,0x0004002b,0x00000006,0x0000010f,0x3fd48b22, - 0x0004002b,0x00000006,0x00000110,0xbf1670a0,0x0004002b,0x00000006,0x00000111,0xbd952d23, - 0x0006002c,0x0000000c,0x00000112,0x0000010f,0x00000110,0x00000111,0x0004002b,0x00000006, - 0x00000113,0xbdff127f,0x0004002b,0x00000006,0x00000114,0x3f9102b4,0x0004002b,0x00000006, - 0x00000115,0xbc08c60d,0x0006002c,0x0000000c,0x00000116,0x00000113,0x00000114,0x00000115, - 0x0004002b,0x00000006,0x00000117,0xbc94b7b3,0x0004002b,0x00000006,0x00000118,0xbdce05cd, - 0x0004002b,0x00000006,0x00000119,0x3f8f333c,0x0006002c,0x0000000c,0x0000011a,0x00000117, - 0x00000118,0x00000119,0x0006002c,0x000000dd,0x0000011b,0x00000112,0x00000116,0x0000011a, - 0x00090019,0x00000121,0x00000006,0x00000001,0x00000000,0x00000000,0x00000000,0x00000001, - 0x00000000,0x0003001b,0x00000122,0x00000121,0x00040020,0x00000123,0x00000000,0x00000122, - 0x0004003b,0x00000123,0x00000124,0x00000000,0x0004002b,0x00000006,0x00000129,0x437f0000, - 0x0004003b,0x00000123,0x0000012b,0x00000000,0x0004002b,0x00000006,0x0000012e,0x3f000000, - 0x0004002b,0x000000ba,0x00000138,0x00000004,0x00040020,0x00000139,0x00000002,0x00000023, - 0x0004002b,0x00000006,0x00000186,0x3727c5ac,0x0005002c,0x00000021,0x00000187,0x00000186, - 0x00000186,0x0005002c,0x00000021,0x00000188,0x000000c6,0x000000c6,0x0004002b,0x000000ba, - 0x000001a6,0x00000001,0x0004002b,0x00000006,0x000001c8,0x40400000,0x0004002b,0x00000006, - 0x000001d3,0x40800000,0x0004002b,0x00000006,0x000001de,0x40a00000,0x0004002b,0x000000ba, - 0x000001f6,0x00000003,0x0004002b,0x000000ba,0x00000206,0x00000000,0x00040020,0x0000029f, - 0x00000001,0x00000023,0x00040020,0x000002a3,0x00000001,0x00000021,0x0004003b,0x000002a3, - 0x000002a4,0x00000001,0x0004003b,0x0000029f,0x000002a7,0x00000001,0x00040020,0x000002aa, - 0x00000003,0x00000023,0x0004003b,0x000002aa,0x000002ab,0x00000003,0x0005002c,0x00000021, - 0x0000069c,0x0000012e,0x0000012e,0x0004002b,0x00000006,0x0000069d,0x3b800000,0x0006002c, - 0x0000000c,0x0000069f,0x0000009a,0x0000009a,0x0000009a,0x0006002c,0x0000000c,0x000006a0, - 0x000000a1,0x000000a1,0x000000a1,0x0006002c,0x0000000c,0x000006a5,0x000000c6,0x000000c6, - 0x000000c6,0x0004002b,0x00000006,0x000006ab,0x3f72a76f,0x0004002b,0x00000006,0x000006ac, - 0x3d9e8391,0x0007002c,0x00000023,0x000006ae,0x000000c6,0x0000009d,0x000000c6,0x000000c6, - 0x0004002b,0x00000006,0x000006af,0xbd6147ae,0x00030001,0x00000023,0x000006e8,0x00050036, + 0x74696877,0x6f705f65,0x00746e69,0x00050006,0x000000b7,0x00000009,0x66666f59,0x00746573, + 0x00050006,0x000000b7,0x0000000a,0x656f6352,0x00006666,0x00050006,0x000000b7,0x0000000b, + 0x656f6347,0x00006666,0x00050006,0x000000b7,0x0000000c,0x656f6342,0x00006666,0x00030005, + 0x000000b9,0x00000000,0x00050005,0x00000124,0x74786574,0x30657275,0x00000000,0x00050005, + 0x0000012b,0x74786574,0x31657275,0x00000000,0x00050005,0x00000268,0x74786574,0x32657275, + 0x00000000,0x00050005,0x00000340,0x75706e69,0x65742e74,0x00000078,0x00050005,0x00000343, + 0x75706e69,0x6f632e74,0x00726f6c,0x00070005,0x00000347,0x746e6540,0x6f507972,0x4f746e69, + 0x75707475,0x00000074,0x00050048,0x000000b7,0x00000000,0x00000023,0x00000000,0x00050048, + 0x000000b7,0x00000001,0x00000023,0x00000004,0x00050048,0x000000b7,0x00000002,0x00000023, + 0x00000008,0x00050048,0x000000b7,0x00000003,0x00000023,0x0000000c,0x00050048,0x000000b7, + 0x00000004,0x00000023,0x00000010,0x00050048,0x000000b7,0x00000005,0x00000023,0x00000020, + 0x00050048,0x000000b7,0x00000006,0x00000023,0x00000024,0x00050048,0x000000b7,0x00000007, + 0x00000023,0x00000028,0x00050048,0x000000b7,0x00000008,0x00000023,0x0000002c,0x00050048, + 0x000000b7,0x00000009,0x00000023,0x00000030,0x00050048,0x000000b7,0x0000000a,0x00000023, + 0x00000040,0x00050048,0x000000b7,0x0000000b,0x00000023,0x00000050,0x00050048,0x000000b7, + 0x0000000c,0x00000023,0x00000060,0x00030047,0x000000b7,0x00000002,0x00040047,0x000000b9, + 0x00000022,0x00000000,0x00040047,0x000000b9,0x00000021,0x00000000,0x00040047,0x00000124, + 0x00000022,0x00000000,0x00040047,0x00000124,0x00000021,0x00000001,0x00040047,0x0000012b, + 0x00000022,0x00000000,0x00040047,0x0000012b,0x00000021,0x00000002,0x00040047,0x00000268, + 0x00000022,0x00000000,0x00040047,0x00000268,0x00000021,0x00000003,0x00040047,0x00000340, + 0x0000001e,0x00000000,0x00040047,0x00000343,0x0000001e,0x00000001,0x00040047,0x00000347, + 0x0000001e,0x00000000,0x00020013,0x00000002,0x00030021,0x00000003,0x00000002,0x00030016, + 0x00000006,0x00000020,0x00040017,0x0000000c,0x00000006,0x00000003,0x00040017,0x00000021, + 0x00000006,0x00000002,0x00040017,0x00000023,0x00000006,0x00000004,0x0004002b,0x00000006, + 0x00000047,0x3d25aee6,0x00020014,0x00000048,0x0004002b,0x00000006,0x0000004d,0x414eb852, + 0x0004002b,0x00000006,0x00000051,0x3d6147ae,0x0004002b,0x00000006,0x00000054,0x3f870a3d, + 0x0004002b,0x00000006,0x00000056,0x4019999a,0x0004002b,0x00000006,0x00000072,0x3b4d2e1c, + 0x0004002b,0x00000006,0x0000007b,0x3ed55555,0x0004002b,0x00000006,0x00000097,0x3c4fcdac, + 0x0006002c,0x0000000c,0x00000098,0x00000097,0x00000097,0x00000097,0x0004002b,0x00000006, + 0x0000009a,0x3f560000,0x0004002b,0x00000006,0x0000009d,0x00000000,0x0006002c,0x0000000c, + 0x0000009e,0x0000009d,0x0000009d,0x0000009d,0x0004002b,0x00000006,0x000000a1,0x4196d000, + 0x0004002b,0x00000006,0x000000a2,0x41958000,0x0004002b,0x00000006,0x000000a9,0x461c4000, + 0x0004002b,0x00000006,0x000000ae,0x40c8e06b,0x0006002c,0x0000000c,0x000000af,0x000000ae, + 0x000000ae,0x000000ae,0x000f001e,0x000000b7,0x00000006,0x00000006,0x00000006,0x00000006, + 0x00000023,0x00000006,0x00000006,0x00000006,0x00000006,0x00000023,0x00000023,0x00000023, + 0x00000023,0x00040020,0x000000b8,0x00000002,0x000000b7,0x0004003b,0x000000b8,0x000000b9, + 0x00000002,0x00040015,0x000000ba,0x00000020,0x00000001,0x0004002b,0x000000ba,0x000000bb, + 0x00000008,0x00040020,0x000000bc,0x00000002,0x00000006,0x0004002b,0x000000ba,0x000000c3, + 0x00000005,0x0004002b,0x00000006,0x000000c6,0x3f800000,0x0004002b,0x000000ba,0x000000ca, + 0x00000006,0x0004002b,0x00000006,0x000000d2,0x40000000,0x0004002b,0x000000ba,0x000000d6, + 0x00000002,0x00040018,0x000000dd,0x0000000c,0x00000003,0x0004002b,0x00000006,0x000000de, + 0x3f209d8c,0x0004002b,0x00000006,0x000000df,0x3ea897c8,0x0004002b,0x00000006,0x000000e0, + 0x3d3168f9,0x0006002c,0x0000000c,0x000000e1,0x000000de,0x000000df,0x000000e0,0x0004002b, + 0x00000006,0x000000e2,0x3d8d82ba,0x0004002b,0x00000006,0x000000e3,0x3f6b670a,0x0004002b, + 0x00000006,0x000000e4,0x3c3a27af,0x0006002c,0x0000000c,0x000000e5,0x000000e2,0x000000e3, + 0x000000e4,0x0004002b,0x00000006,0x000000e6,0x3c86466b,0x0004002b,0x00000006,0x000000e7, + 0x3db44029,0x0004002b,0x00000006,0x000000e8,0x3f6545b7,0x0006002c,0x0000000c,0x000000e9, + 0x000000e6,0x000000e7,0x000000e8,0x0006002c,0x000000dd,0x000000ea,0x000000e1,0x000000e5, + 0x000000e9,0x0004002b,0x000000ba,0x000000ff,0x00000007,0x0004002b,0x00000006,0x0000010f, + 0x3fd48b22,0x0004002b,0x00000006,0x00000110,0xbf1670a0,0x0004002b,0x00000006,0x00000111, + 0xbd952d23,0x0006002c,0x0000000c,0x00000112,0x0000010f,0x00000110,0x00000111,0x0004002b, + 0x00000006,0x00000113,0xbdff127f,0x0004002b,0x00000006,0x00000114,0x3f9102b4,0x0004002b, + 0x00000006,0x00000115,0xbc08c60d,0x0006002c,0x0000000c,0x00000116,0x00000113,0x00000114, + 0x00000115,0x0004002b,0x00000006,0x00000117,0xbc94b7b3,0x0004002b,0x00000006,0x00000118, + 0xbdce05cd,0x0004002b,0x00000006,0x00000119,0x3f8f333c,0x0006002c,0x0000000c,0x0000011a, + 0x00000117,0x00000118,0x00000119,0x0006002c,0x000000dd,0x0000011b,0x00000112,0x00000116, + 0x0000011a,0x00090019,0x00000121,0x00000006,0x00000001,0x00000000,0x00000000,0x00000000, + 0x00000001,0x00000000,0x0003001b,0x00000122,0x00000121,0x00040020,0x00000123,0x00000000, + 0x00000122,0x0004003b,0x00000123,0x00000124,0x00000000,0x0004002b,0x00000006,0x00000129, + 0x437f0000,0x0004003b,0x00000123,0x0000012b,0x00000000,0x0004002b,0x00000006,0x0000012e, + 0x3f000000,0x0004002b,0x000000ba,0x00000138,0x00000004,0x00040020,0x00000139,0x00000002, + 0x00000023,0x0004002b,0x00000006,0x00000186,0x3727c5ac,0x0005002c,0x00000021,0x00000187, + 0x00000186,0x00000186,0x0005002c,0x00000021,0x00000188,0x000000c6,0x000000c6,0x0004002b, + 0x000000ba,0x000001a6,0x00000001,0x0007002c,0x00000023,0x000001ad,0x000000c6,0x000000c6, + 0x000000c6,0x000000c6,0x0004002b,0x00000006,0x000001cf,0x40400000,0x0004002b,0x00000006, + 0x000001da,0x40800000,0x0004002b,0x00000006,0x000001e5,0x40a00000,0x0004002b,0x00000006, + 0x000001f4,0x40c00000,0x0004002b,0x000000ba,0x00000208,0x00000009,0x0004002b,0x000000ba, + 0x0000020f,0x0000000a,0x0004002b,0x000000ba,0x00000216,0x0000000b,0x0004002b,0x000000ba, + 0x0000021d,0x0000000c,0x0004002b,0x00000006,0x00000228,0x40e00000,0x0004002b,0x00000006, + 0x00000257,0x41000000,0x0004003b,0x00000123,0x00000268,0x00000000,0x0004002b,0x000000ba, + 0x00000292,0x00000003,0x0004002b,0x000000ba,0x000002a2,0x00000000,0x00040020,0x0000033b, + 0x00000001,0x00000023,0x00040020,0x0000033f,0x00000001,0x00000021,0x0004003b,0x0000033f, + 0x00000340,0x00000001,0x0004003b,0x0000033b,0x00000343,0x00000001,0x00040020,0x00000346, + 0x00000003,0x00000023,0x0004003b,0x00000346,0x00000347,0x00000003,0x0005002c,0x00000021, + 0x000007fb,0x0000012e,0x0000012e,0x0004002b,0x00000006,0x000007fc,0x3b800000,0x0006002c, + 0x0000000c,0x000007fe,0x0000009a,0x0000009a,0x0000009a,0x0006002c,0x0000000c,0x000007ff, + 0x000000a1,0x000000a1,0x000000a1,0x0006002c,0x0000000c,0x00000804,0x000000c6,0x000000c6, + 0x000000c6,0x0004002b,0x00000006,0x0000080a,0x3f72a76f,0x0004002b,0x00000006,0x0000080b, + 0x3d9e8391,0x0007002c,0x00000023,0x0000080d,0x000000c6,0x0000009d,0x000000c6,0x000000c6, + 0x0004002b,0x00000006,0x0000080e,0xbd6147ae,0x00030001,0x00000023,0x0000084b,0x00050036, 0x00000002,0x00000004,0x00000000,0x00000003,0x000200f8,0x00000005,0x0004003d,0x00000021, - 0x000002a5,0x000002a4,0x0004003d,0x00000023,0x000002a8,0x000002a7,0x00050041,0x000000bc, - 0x0000032c,0x000000b9,0x000001a6,0x0004003d,0x00000006,0x0000032d,0x0000032c,0x000500b4, - 0x00000048,0x0000032e,0x0000032d,0x000000c6,0x000300f7,0x00000368,0x00000000,0x000400fa, - 0x0000032e,0x0000032f,0x00000334,0x000200f8,0x0000032f,0x0004003d,0x00000122,0x00000330, - 0x00000124,0x00050057,0x00000023,0x00000333,0x00000330,0x000002a5,0x000200f9,0x00000368, - 0x000200f8,0x00000334,0x00050041,0x000000bc,0x00000335,0x000000b9,0x000001a6,0x0004003d, - 0x00000006,0x00000336,0x00000335,0x000500b4,0x00000048,0x00000337,0x00000336,0x000000d2, - 0x000300f7,0x00000367,0x00000000,0x000400fa,0x00000337,0x00000338,0x00000345,0x000200f8, - 0x00000338,0x000400d1,0x00000021,0x00000370,0x000002a5,0x00050041,0x00000139,0x00000371, - 0x000000b9,0x00000138,0x0004003d,0x00000023,0x00000372,0x00000371,0x0007004f,0x00000021, - 0x00000373,0x00000372,0x00000372,0x00000002,0x00000003,0x00050085,0x00000021,0x00000374, - 0x00000370,0x00000373,0x0008000c,0x00000021,0x00000375,0x00000001,0x0000002b,0x00000374, - 0x00000187,0x00000188,0x00050041,0x00000139,0x00000377,0x000000b9,0x00000138,0x0004003d, - 0x00000023,0x00000378,0x00000377,0x0007004f,0x00000021,0x00000379,0x00000378,0x00000378, - 0x00000002,0x00000003,0x0005008e,0x00000021,0x0000037c,0x00000375,0x0000012e,0x0004007f, - 0x00000021,0x0000069e,0x0000037c,0x0008000c,0x00000021,0x0000037d,0x00000001,0x00000032, - 0x000002a5,0x00000379,0x0000069e,0x00050083,0x00000021,0x00000380,0x00000188,0x00000375, - 0x0006000c,0x00000021,0x00000382,0x00000001,0x0000000a,0x0000037d,0x0008000c,0x00000021, - 0x00000383,0x00000001,0x00000031,0x00000380,0x00000188,0x00000382,0x0006000c,0x00000021, - 0x00000385,0x00000001,0x00000008,0x0000037d,0x00050081,0x00000021,0x00000387,0x00000385, - 0x0000069c,0x00050081,0x00000021,0x00000389,0x00000387,0x00000383,0x00050041,0x00000139, - 0x0000038a,0x000000b9,0x00000138,0x0004003d,0x00000023,0x0000038b,0x0000038a,0x0007004f, - 0x00000021,0x0000038c,0x0000038b,0x0000038b,0x00000000,0x00000001,0x00050085,0x00000021, - 0x0000038d,0x00000389,0x0000038c,0x0004003d,0x00000122,0x0000033c,0x00000124,0x000400cf, - 0x00000021,0x00000340,0x000002a5,0x000400d0,0x00000021,0x00000343,0x000002a5,0x00080058, - 0x00000023,0x00000344,0x0000033c,0x0000038d,0x00000004,0x00000340,0x00000343,0x000200f9, - 0x00000367,0x000200f8,0x00000345,0x00050041,0x000000bc,0x00000346,0x000000b9,0x000001a6, - 0x0004003d,0x00000006,0x00000347,0x00000346,0x000500b4,0x00000048,0x00000348,0x00000347, - 0x000001c8,0x000300f7,0x00000366,0x00000000,0x000400fa,0x00000348,0x00000349,0x0000034d, - 0x000200f8,0x00000349,0x0004003d,0x00000122,0x00000391,0x00000124,0x00050057,0x00000023, - 0x00000393,0x00000391,0x000002a5,0x00050051,0x00000006,0x00000394,0x00000393,0x00000000, - 0x0004003d,0x00000122,0x00000396,0x0000012b,0x0008000c,0x00000006,0x00000398,0x00000001, - 0x00000032,0x00000394,0x00000129,0x0000012e,0x00050085,0x00000006,0x00000399,0x00000398, - 0x0000069d,0x00050050,0x00000021,0x0000039a,0x00000399,0x0000012e,0x00050057,0x00000023, - 0x0000039b,0x00000396,0x0000039a,0x000200f9,0x00000366,0x000200f8,0x0000034d,0x00050041, - 0x000000bc,0x0000034e,0x000000b9,0x000001a6,0x0004003d,0x00000006,0x0000034f,0x0000034e, - 0x000500b4,0x00000048,0x00000350,0x0000034f,0x000001d3,0x000300f7,0x00000365,0x00000000, - 0x000400fa,0x00000350,0x00000351,0x00000355,0x000200f8,0x00000351,0x00050041,0x00000139, - 0x000003aa,0x000000b9,0x00000138,0x0004003d,0x00000023,0x000003ab,0x000003aa,0x0007004f, - 0x00000021,0x000003ac,0x000003ab,0x000003ab,0x00000002,0x00000003,0x0008000c,0x00000021, - 0x000003af,0x00000001,0x00000032,0x000002a5,0x000003ac,0x0000069c,0x0006000c,0x00000021, - 0x000003b1,0x00000001,0x00000008,0x000003af,0x00050083,0x00000021,0x000003b3,0x000003b1, - 0x0000069c,0x00050041,0x00000139,0x000003b4,0x000000b9,0x00000138,0x0004003d,0x00000023, - 0x000003b5,0x000003b4,0x0007004f,0x00000021,0x000003b6,0x000003b5,0x000003b5,0x00000000, - 0x00000001,0x00050085,0x00000021,0x000003b7,0x000003b3,0x000003b6,0x0006000c,0x00000021, - 0x000003b9,0x00000001,0x00000008,0x000003af,0x00050081,0x00000021,0x000003bb,0x000003b9, - 0x0000069c,0x00050041,0x00000139,0x000003bc,0x000000b9,0x00000138,0x0004003d,0x00000023, - 0x000003bd,0x000003bc,0x0007004f,0x00000021,0x000003be,0x000003bd,0x000003bd,0x00000000, - 0x00000001,0x00050085,0x00000021,0x000003bf,0x000003bb,0x000003be,0x00050051,0x00000006, - 0x000003c0,0x000003b7,0x00000000,0x00050051,0x00000006,0x000003c1,0x000003b7,0x00000001, - 0x00050051,0x00000006,0x000003c2,0x000003bf,0x00000000,0x00050051,0x00000006,0x000003c3, - 0x000003bf,0x00000001,0x00070050,0x00000023,0x000003c4,0x000003c0,0x000003c1,0x000003c2, - 0x000003c3,0x0006000c,0x00000021,0x000003c6,0x00000001,0x0000000a,0x000003af,0x0007004f, - 0x00000021,0x000003c8,0x000003c4,0x000003c4,0x00000000,0x00000001,0x0004003d,0x00000122, - 0x000003e6,0x00000124,0x00050057,0x00000023,0x000003e8,0x000003e6,0x000003c8,0x00050051, - 0x00000006,0x000003e9,0x000003e8,0x00000000,0x0004003d,0x00000122,0x000003eb,0x0000012b, - 0x0008000c,0x00000006,0x000003ed,0x00000001,0x00000032,0x000003e9,0x00000129,0x0000012e, - 0x00050085,0x00000006,0x000003ee,0x000003ed,0x0000069d,0x00050050,0x00000021,0x000003ef, - 0x000003ee,0x0000012e,0x00050057,0x00000023,0x000003f0,0x000003eb,0x000003ef,0x0007004f, - 0x00000021,0x000003cb,0x000003c4,0x000003c4,0x00000000,0x00000003,0x0004003d,0x00000122, - 0x000003f4,0x00000124,0x00050057,0x00000023,0x000003f6,0x000003f4,0x000003cb,0x00050051, - 0x00000006,0x000003f7,0x000003f6,0x00000000,0x0004003d,0x00000122,0x000003f9,0x0000012b, - 0x0008000c,0x00000006,0x000003fb,0x00000001,0x00000032,0x000003f7,0x00000129,0x0000012e, - 0x00050085,0x00000006,0x000003fc,0x000003fb,0x0000069d,0x00050050,0x00000021,0x000003fd, - 0x000003fc,0x0000012e,0x00050057,0x00000023,0x000003fe,0x000003f9,0x000003fd,0x0007004f, - 0x00000021,0x000003ce,0x000003c4,0x000003c4,0x00000002,0x00000001,0x0004003d,0x00000122, - 0x00000402,0x00000124,0x00050057,0x00000023,0x00000404,0x00000402,0x000003ce,0x00050051, - 0x00000006,0x00000405,0x00000404,0x00000000,0x0004003d,0x00000122,0x00000407,0x0000012b, - 0x0008000c,0x00000006,0x00000409,0x00000001,0x00000032,0x00000405,0x00000129,0x0000012e, - 0x00050085,0x00000006,0x0000040a,0x00000409,0x0000069d,0x00050050,0x00000021,0x0000040b, - 0x0000040a,0x0000012e,0x00050057,0x00000023,0x0000040c,0x00000407,0x0000040b,0x0007004f, - 0x00000021,0x000003d1,0x000003c4,0x000003c4,0x00000002,0x00000003,0x0004003d,0x00000122, - 0x00000410,0x00000124,0x00050057,0x00000023,0x00000412,0x00000410,0x000003d1,0x00050051, - 0x00000006,0x00000413,0x00000412,0x00000000,0x0004003d,0x00000122,0x00000415,0x0000012b, - 0x0008000c,0x00000006,0x00000417,0x00000001,0x00000032,0x00000413,0x00000129,0x0000012e, - 0x00050085,0x00000006,0x00000418,0x00000417,0x0000069d,0x00050050,0x00000021,0x00000419, - 0x00000418,0x0000012e,0x00050057,0x00000023,0x0000041a,0x00000415,0x00000419,0x00050051, - 0x00000006,0x000003d6,0x000003c6,0x00000001,0x00070050,0x00000023,0x000003d7,0x000003d6, - 0x000003d6,0x000003d6,0x000003d6,0x0008000c,0x00000023,0x000003d8,0x00000001,0x0000002e, - 0x000003f0,0x000003fe,0x000003d7,0x00050051,0x00000006,0x000003dc,0x000003c6,0x00000001, - 0x00070050,0x00000023,0x000003dd,0x000003dc,0x000003dc,0x000003dc,0x000003dc,0x0008000c, - 0x00000023,0x000003de,0x00000001,0x0000002e,0x0000040c,0x0000041a,0x000003dd,0x00050051, - 0x00000006,0x000003e0,0x000003c6,0x00000000,0x00070050,0x00000023,0x000003e1,0x000003e0, - 0x000003e0,0x000003e0,0x000003e0,0x0008000c,0x00000023,0x000003e2,0x00000001,0x0000002e, - 0x000003d8,0x000003de,0x000003e1,0x000200f9,0x00000365,0x000200f8,0x00000355,0x00050041, - 0x000000bc,0x00000356,0x000000b9,0x000001a6,0x0004003d,0x00000006,0x00000357,0x00000356, - 0x000500b4,0x00000048,0x00000358,0x00000357,0x000001de,0x000300f7,0x00000364,0x00000000, - 0x000400fa,0x00000358,0x00000359,0x0000035f,0x000200f8,0x00000359,0x000400d1,0x00000021, - 0x00000421,0x000002a5,0x00050041,0x00000139,0x00000422,0x000000b9,0x00000138,0x0004003d, - 0x00000023,0x00000423,0x00000422,0x0007004f,0x00000021,0x00000424,0x00000423,0x00000423, - 0x00000002,0x00000003,0x00050085,0x00000021,0x00000425,0x00000421,0x00000424,0x0008000c, - 0x00000021,0x00000426,0x00000001,0x0000002b,0x00000425,0x00000187,0x00000188,0x00050041, - 0x00000139,0x00000428,0x000000b9,0x00000138,0x0004003d,0x00000023,0x00000429,0x00000428, - 0x0007004f,0x00000021,0x0000042a,0x00000429,0x00000429,0x00000002,0x00000003,0x0005008e, - 0x00000021,0x0000042d,0x00000426,0x0000012e,0x0004007f,0x00000021,0x0000069b,0x0000042d, - 0x0008000c,0x00000021,0x0000042e,0x00000001,0x00000032,0x000002a5,0x0000042a,0x0000069b, - 0x00050083,0x00000021,0x00000431,0x00000188,0x00000426,0x0006000c,0x00000021,0x00000433, - 0x00000001,0x0000000a,0x0000042e,0x0008000c,0x00000021,0x00000434,0x00000001,0x00000031, - 0x00000431,0x00000188,0x00000433,0x0006000c,0x00000021,0x00000436,0x00000001,0x00000008, - 0x0000042e,0x00050081,0x00000021,0x00000438,0x00000436,0x0000069c,0x00050081,0x00000021, - 0x0000043a,0x00000438,0x00000434,0x00050041,0x00000139,0x0000043b,0x000000b9,0x00000138, - 0x0004003d,0x00000023,0x0000043c,0x0000043b,0x0007004f,0x00000021,0x0000043d,0x0000043c, - 0x0000043c,0x00000000,0x00000001,0x00050085,0x00000021,0x0000043e,0x0000043a,0x0000043d, - 0x00050041,0x00000139,0x0000044d,0x000000b9,0x00000138,0x0004003d,0x00000023,0x0000044e, - 0x0000044d,0x0007004f,0x00000021,0x0000044f,0x0000044e,0x0000044e,0x00000002,0x00000003, - 0x0008000c,0x00000021,0x00000452,0x00000001,0x00000032,0x0000043e,0x0000044f,0x0000069c, - 0x0006000c,0x00000021,0x00000454,0x00000001,0x00000008,0x00000452,0x00050083,0x00000021, - 0x00000456,0x00000454,0x0000069c,0x00050041,0x00000139,0x00000457,0x000000b9,0x00000138, - 0x0004003d,0x00000023,0x00000458,0x00000457,0x0007004f,0x00000021,0x00000459,0x00000458, - 0x00000458,0x00000000,0x00000001,0x00050085,0x00000021,0x0000045a,0x00000456,0x00000459, - 0x0006000c,0x00000021,0x0000045c,0x00000001,0x00000008,0x00000452,0x00050081,0x00000021, - 0x0000045e,0x0000045c,0x0000069c,0x00050041,0x00000139,0x0000045f,0x000000b9,0x00000138, - 0x0004003d,0x00000023,0x00000460,0x0000045f,0x0007004f,0x00000021,0x00000461,0x00000460, - 0x00000460,0x00000000,0x00000001,0x00050085,0x00000021,0x00000462,0x0000045e,0x00000461, - 0x00050051,0x00000006,0x00000463,0x0000045a,0x00000000,0x00050051,0x00000006,0x00000464, - 0x0000045a,0x00000001,0x00050051,0x00000006,0x00000465,0x00000462,0x00000000,0x00050051, - 0x00000006,0x00000466,0x00000462,0x00000001,0x00070050,0x00000023,0x00000467,0x00000463, - 0x00000464,0x00000465,0x00000466,0x0006000c,0x00000021,0x00000469,0x00000001,0x0000000a, - 0x00000452,0x0007004f,0x00000021,0x0000046b,0x00000467,0x00000467,0x00000000,0x00000001, - 0x0004003d,0x00000122,0x00000489,0x00000124,0x00050057,0x00000023,0x0000048b,0x00000489, - 0x0000046b,0x00050051,0x00000006,0x0000048c,0x0000048b,0x00000000,0x0004003d,0x00000122, - 0x0000048e,0x0000012b,0x0008000c,0x00000006,0x00000490,0x00000001,0x00000032,0x0000048c, - 0x00000129,0x0000012e,0x00050085,0x00000006,0x00000491,0x00000490,0x0000069d,0x00050050, - 0x00000021,0x00000492,0x00000491,0x0000012e,0x00050057,0x00000023,0x00000493,0x0000048e, - 0x00000492,0x0007004f,0x00000021,0x0000046e,0x00000467,0x00000467,0x00000000,0x00000003, - 0x0004003d,0x00000122,0x00000497,0x00000124,0x00050057,0x00000023,0x00000499,0x00000497, - 0x0000046e,0x00050051,0x00000006,0x0000049a,0x00000499,0x00000000,0x0004003d,0x00000122, - 0x0000049c,0x0000012b,0x0008000c,0x00000006,0x0000049e,0x00000001,0x00000032,0x0000049a, - 0x00000129,0x0000012e,0x00050085,0x00000006,0x0000049f,0x0000049e,0x0000069d,0x00050050, - 0x00000021,0x000004a0,0x0000049f,0x0000012e,0x00050057,0x00000023,0x000004a1,0x0000049c, - 0x000004a0,0x0007004f,0x00000021,0x00000471,0x00000467,0x00000467,0x00000002,0x00000001, - 0x0004003d,0x00000122,0x000004a5,0x00000124,0x00050057,0x00000023,0x000004a7,0x000004a5, - 0x00000471,0x00050051,0x00000006,0x000004a8,0x000004a7,0x00000000,0x0004003d,0x00000122, - 0x000004aa,0x0000012b,0x0008000c,0x00000006,0x000004ac,0x00000001,0x00000032,0x000004a8, - 0x00000129,0x0000012e,0x00050085,0x00000006,0x000004ad,0x000004ac,0x0000069d,0x00050050, - 0x00000021,0x000004ae,0x000004ad,0x0000012e,0x00050057,0x00000023,0x000004af,0x000004aa, - 0x000004ae,0x0007004f,0x00000021,0x00000474,0x00000467,0x00000467,0x00000002,0x00000003, - 0x0004003d,0x00000122,0x000004b3,0x00000124,0x00050057,0x00000023,0x000004b5,0x000004b3, - 0x00000474,0x00050051,0x00000006,0x000004b6,0x000004b5,0x00000000,0x0004003d,0x00000122, - 0x000004b8,0x0000012b,0x0008000c,0x00000006,0x000004ba,0x00000001,0x00000032,0x000004b6, - 0x00000129,0x0000012e,0x00050085,0x00000006,0x000004bb,0x000004ba,0x0000069d,0x00050050, - 0x00000021,0x000004bc,0x000004bb,0x0000012e,0x00050057,0x00000023,0x000004bd,0x000004b8, - 0x000004bc,0x00050051,0x00000006,0x00000479,0x00000469,0x00000001,0x00070050,0x00000023, - 0x0000047a,0x00000479,0x00000479,0x00000479,0x00000479,0x0008000c,0x00000023,0x0000047b, - 0x00000001,0x0000002e,0x00000493,0x000004a1,0x0000047a,0x00050051,0x00000006,0x0000047f, - 0x00000469,0x00000001,0x00070050,0x00000023,0x00000480,0x0000047f,0x0000047f,0x0000047f, - 0x0000047f,0x0008000c,0x00000023,0x00000481,0x00000001,0x0000002e,0x000004af,0x000004bd, - 0x00000480,0x00050051,0x00000006,0x00000483,0x00000469,0x00000000,0x00070050,0x00000023, - 0x00000484,0x00000483,0x00000483,0x00000483,0x00000483,0x0008000c,0x00000023,0x00000485, - 0x00000001,0x0000002e,0x0000047b,0x00000481,0x00000484,0x000200f9,0x00000364,0x000200f8, - 0x0000035f,0x000200f9,0x00000364,0x000200f8,0x00000364,0x000700f5,0x00000023,0x000006b4, - 0x00000485,0x00000359,0x000006ae,0x0000035f,0x000200f9,0x00000365,0x000200f8,0x00000365, - 0x000700f5,0x00000023,0x000006b3,0x000003e2,0x00000351,0x000006b4,0x00000364,0x000200f9, - 0x00000366,0x000200f8,0x00000366,0x000700f5,0x00000023,0x000006b2,0x0000039b,0x00000349, - 0x000006b3,0x00000365,0x000200f9,0x00000367,0x000200f8,0x00000367,0x000700f5,0x00000023, - 0x000006b1,0x00000344,0x00000338,0x000006b2,0x00000366,0x000200f9,0x00000368,0x000200f8, - 0x00000368,0x000700f5,0x00000023,0x000006b0,0x00000333,0x0000032f,0x000006b1,0x00000367, - 0x00050041,0x000000bc,0x000002c1,0x000000b9,0x000000d6,0x0004003d,0x00000006,0x000002c2, - 0x000002c1,0x000500b4,0x00000048,0x000002c3,0x000002c2,0x000001c8,0x000300f7,0x000002ce, - 0x00000000,0x000400fa,0x000002c3,0x000002c4,0x000002ce,0x000200f8,0x000002c4,0x0008004f, - 0x0000000c,0x000002c6,0x000006b0,0x000006b0,0x00000000,0x00000001,0x00000002,0x0006000c, - 0x0000000c,0x000004cc,0x00000001,0x00000004,0x000002c6,0x0007000c,0x0000000c,0x000004cd, - 0x00000001,0x0000001a,0x000004cc,0x00000098,0x00050083,0x0000000c,0x000004cf,0x000004cd, - 0x0000069f,0x0007000c,0x0000000c,0x000004d0,0x00000001,0x00000028,0x000004cf,0x0000009e, - 0x0006000c,0x0000000c,0x000004d2,0x00000001,0x00000004,0x000002c6,0x0007000c,0x0000000c, - 0x000004d3,0x00000001,0x0000001a,0x000004d2,0x00000098,0x0005008e,0x0000000c,0x000004d4, - 0x000004d3,0x000000a2,0x00050083,0x0000000c,0x000004d6,0x000006a0,0x000004d4,0x00050088, - 0x0000000c,0x000004d9,0x000004d0,0x000004d6,0x0006000c,0x0000000c,0x000004da,0x00000001, - 0x00000004,0x000004d9,0x0007000c,0x0000000c,0x000004db,0x00000001,0x0000001a,0x000004da, - 0x000000af,0x0005008e,0x0000000c,0x000004dc,0x000004db,0x000000a9,0x00050041,0x000000bc, - 0x000004c3,0x000000b9,0x000000bb,0x0004003d,0x00000006,0x000004c4,0x000004c3,0x00060050, - 0x0000000c,0x000004c5,0x000004c4,0x000004c4,0x000004c4,0x00050088,0x0000000c,0x000004c6, - 0x000004dc,0x000004c5,0x00050051,0x00000006,0x000002c9,0x000004c6,0x00000000,0x00060052, - 0x00000023,0x00000647,0x000002c9,0x000006b0,0x00000000,0x00050051,0x00000006,0x000002cb, - 0x000004c6,0x00000001,0x00060052,0x00000023,0x00000649,0x000002cb,0x00000647,0x00000001, - 0x00050051,0x00000006,0x000002cd,0x000004c6,0x00000002,0x00060052,0x00000023,0x0000064b, - 0x000002cd,0x00000649,0x00000002,0x000200f9,0x000002ce,0x000200f8,0x000002ce,0x000700f5, - 0x00000023,0x000006b5,0x000006b0,0x00000368,0x0000064b,0x000002c4,0x00050041,0x000000bc, - 0x000002cf,0x000000b9,0x000000c3,0x0004003d,0x00000006,0x000002d0,0x000002cf,0x000500b7, - 0x00000048,0x000002d1,0x000002d0,0x0000009d,0x000300f7,0x000002dc,0x00000000,0x000400fa, - 0x000002d1,0x000002d2,0x000002dc,0x000200f8,0x000002d2,0x0008004f,0x0000000c,0x000002d4, - 0x000006b5,0x000006b5,0x00000000,0x00000001,0x00000002,0x00050041,0x000000bc,0x000004e1, - 0x000000b9,0x000000c3,0x0004003d,0x00000006,0x000004e2,0x000004e1,0x000500b4,0x00000048, - 0x000004e3,0x000004e2,0x000000c6,0x000300f7,0x00000517,0x00000000,0x000400fa,0x000004e3, - 0x000004e4,0x000004e9,0x000200f8,0x000004e4,0x00050041,0x000000bc,0x000004e5,0x000000b9, - 0x000000ca,0x0004003d,0x00000006,0x000004e6,0x000004e5,0x0005008e,0x0000000c,0x000004e8, - 0x000002d4,0x000004e6,0x000200f9,0x00000517,0x000200f8,0x000004e9,0x00050041,0x000000bc, - 0x000004ea,0x000000b9,0x000000c3,0x0004003d,0x00000006,0x000004eb,0x000004ea,0x000500b4, - 0x00000048,0x000004ec,0x000004eb,0x000000d2,0x000300f7,0x00000516,0x00000000,0x000400fa, - 0x000004ec,0x000004ed,0x00000516,0x000200f8,0x000004ed,0x00050041,0x000000bc,0x000004ee, - 0x000000b9,0x000000d6,0x0004003d,0x00000006,0x000004ef,0x000004ee,0x000500b4,0x00000048, - 0x000004f0,0x000004ef,0x000000d2,0x000300f7,0x000004f4,0x00000000,0x000400fa,0x000004f0, - 0x000004f1,0x000004f4,0x000200f8,0x000004f1,0x00050090,0x0000000c,0x000004f3,0x000002d4, - 0x000000ea,0x000200f9,0x000004f4,0x000200f8,0x000004f4,0x000700f5,0x0000000c,0x000006b6, - 0x000002d4,0x000004ed,0x000004f3,0x000004f1,0x00050051,0x00000006,0x000004f6,0x000006b6, - 0x00000000,0x00050051,0x00000006,0x000004f8,0x000006b6,0x00000001,0x00050051,0x00000006, - 0x000004fa,0x000006b6,0x00000002,0x0007000c,0x00000006,0x000004fb,0x00000001,0x00000028, - 0x000004f8,0x000004fa,0x0007000c,0x00000006,0x000004fc,0x00000001,0x00000028,0x000004f6, - 0x000004fb,0x000500ba,0x00000048,0x000004fe,0x000004fc,0x0000009d,0x000300f7,0x0000050e, - 0x00000000,0x000400fa,0x000004fe,0x000004ff,0x0000050e,0x000200f8,0x000004ff,0x00050041, - 0x000000bc,0x00000500,0x000000b9,0x000000ca,0x0004003d,0x00000006,0x00000501,0x00000500, - 0x0008000c,0x00000006,0x00000504,0x00000001,0x00000032,0x00000501,0x000004fc,0x000000c6, - 0x00050041,0x000000bc,0x00000505,0x000000b9,0x000000ff,0x0004003d,0x00000006,0x00000506, - 0x00000505,0x0008000c,0x00000006,0x00000509,0x00000001,0x00000032,0x00000506,0x000004fc, - 0x000000c6,0x00050088,0x00000006,0x0000050a,0x00000504,0x00000509,0x0005008e,0x0000000c, - 0x0000050d,0x000006b6,0x0000050a,0x000200f9,0x0000050e,0x000200f8,0x0000050e,0x000700f5, - 0x0000000c,0x000006b7,0x000006b6,0x000004f4,0x0000050d,0x000004ff,0x00050041,0x000000bc, - 0x0000050f,0x000000b9,0x000000d6,0x0004003d,0x00000006,0x00000510,0x0000050f,0x000500b4, - 0x00000048,0x00000511,0x00000510,0x000000d2,0x000300f7,0x00000515,0x00000000,0x000400fa, - 0x00000511,0x00000512,0x00000515,0x000200f8,0x00000512,0x00050090,0x0000000c,0x00000514, - 0x000006b7,0x0000011b,0x000200f9,0x00000515,0x000200f8,0x00000515,0x000700f5,0x0000000c, - 0x000006ba,0x000006b7,0x0000050e,0x00000514,0x00000512,0x000200f9,0x00000516,0x000200f8, - 0x00000516,0x000700f5,0x0000000c,0x000006b9,0x000002d4,0x000004e9,0x000006ba,0x00000515, - 0x000200f9,0x00000517,0x000200f8,0x00000517,0x000700f5,0x0000000c,0x000006b8,0x000004e8, - 0x000004e4,0x000006b9,0x00000516,0x00050051,0x00000006,0x000002d7,0x000006b8,0x00000000, - 0x00060052,0x00000023,0x00000650,0x000002d7,0x000006b5,0x00000000,0x00050051,0x00000006, - 0x000002d9,0x000006b8,0x00000001,0x00060052,0x00000023,0x00000652,0x000002d9,0x00000650, - 0x00000001,0x00050051,0x00000006,0x000002db,0x000006b8,0x00000002,0x00060052,0x00000023, - 0x00000654,0x000002db,0x00000652,0x00000002,0x000200f9,0x000002dc,0x000200f8,0x000002dc, - 0x000700f5,0x00000023,0x000006c0,0x000006b5,0x000002ce,0x00000654,0x00000517,0x00050041, - 0x000000bc,0x000002dd,0x000000b9,0x000000d6,0x0004003d,0x00000006,0x000002de,0x000002dd, - 0x000500b4,0x00000048,0x000002df,0x000002de,0x000000c6,0x000300f7,0x0000031d,0x00000000, - 0x000400fa,0x000002df,0x000002e0,0x000002ed,0x000200f8,0x000002e0,0x0008004f,0x0000000c, - 0x000002e2,0x000006c0,0x000006c0,0x00000000,0x00000001,0x00000002,0x00050041,0x000000bc, - 0x0000051d,0x000000b9,0x00000206,0x0004003d,0x00000006,0x0000051e,0x0000051d,0x000500b7, - 0x00000048,0x0000051f,0x0000051e,0x0000009d,0x000300f7,0x00000523,0x00000000,0x000400fa, - 0x0000051f,0x00000520,0x00000523,0x000200f8,0x00000520,0x00050051,0x00000006,0x0000052f, - 0x000006c0,0x00000000,0x000500bc,0x00000048,0x0000053e,0x0000052f,0x00000047,0x000300f7, - 0x00000548,0x00000000,0x000400fa,0x0000053e,0x0000053f,0x00000542,0x000200f8,0x0000053f, - 0x00050085,0x00000006,0x00000541,0x0000052f,0x000006ac,0x000200f9,0x00000548,0x000200f8, - 0x00000542,0x00050081,0x00000006,0x00000544,0x0000052f,0x00000051,0x0006000c,0x00000006, - 0x00000545,0x00000001,0x00000004,0x00000544,0x00050085,0x00000006,0x00000546,0x00000545, - 0x000006ab,0x0007000c,0x00000006,0x00000547,0x00000001,0x0000001a,0x00000546,0x00000056, - 0x000200f9,0x00000548,0x000200f8,0x00000548,0x000700f5,0x00000006,0x000006d7,0x00000541, - 0x0000053f,0x00000547,0x00000542,0x00050051,0x00000006,0x00000533,0x000006c0,0x00000001, - 0x000500bc,0x00000048,0x0000054d,0x00000533,0x00000047,0x000300f7,0x00000557,0x00000000, - 0x000400fa,0x0000054d,0x0000054e,0x00000551,0x000200f8,0x0000054e,0x00050085,0x00000006, - 0x00000550,0x00000533,0x000006ac,0x000200f9,0x00000557,0x000200f8,0x00000551,0x00050081, - 0x00000006,0x00000553,0x00000533,0x00000051,0x0006000c,0x00000006,0x00000554,0x00000001, - 0x00000004,0x00000553,0x00050085,0x00000006,0x00000555,0x00000554,0x000006ab,0x0007000c, - 0x00000006,0x00000556,0x00000001,0x0000001a,0x00000555,0x00000056,0x000200f9,0x00000557, - 0x000200f8,0x00000557,0x000700f5,0x00000006,0x000006d9,0x00000550,0x0000054e,0x00000556, - 0x00000551,0x00050051,0x00000006,0x00000537,0x000006c0,0x00000002,0x000500bc,0x00000048, - 0x0000055c,0x00000537,0x00000047,0x000300f7,0x00000566,0x00000000,0x000400fa,0x0000055c, - 0x0000055d,0x00000560,0x000200f8,0x0000055d,0x00050085,0x00000006,0x0000055f,0x00000537, - 0x000006ac,0x000200f9,0x00000566,0x000200f8,0x00000560,0x00050081,0x00000006,0x00000562, - 0x00000537,0x00000051,0x0006000c,0x00000006,0x00000563,0x00000001,0x00000004,0x00000562, - 0x00050085,0x00000006,0x00000564,0x00000563,0x000006ab,0x0007000c,0x00000006,0x00000565, - 0x00000001,0x0000001a,0x00000564,0x00000056,0x000200f9,0x00000566,0x000200f8,0x00000566, - 0x000700f5,0x00000006,0x000006db,0x0000055f,0x0000055d,0x00000565,0x00000560,0x00060050, - 0x0000000c,0x000006e7,0x000006d7,0x000006d9,0x000006db,0x000200f9,0x00000523,0x000200f8, - 0x00000523,0x000700f5,0x0000000c,0x000006dd,0x000002e2,0x000002e0,0x000006e7,0x00000566, - 0x00050041,0x000000bc,0x00000525,0x000000b9,0x000001f6,0x0004003d,0x00000006,0x00000526, - 0x00000525,0x0005008e,0x0000000c,0x00000527,0x000006dd,0x00000526,0x00050051,0x00000006, - 0x000002e5,0x00000527,0x00000000,0x00050051,0x00000006,0x000002e7,0x00000527,0x00000001, - 0x00050051,0x00000006,0x000002e9,0x00000527,0x00000002,0x00050051,0x00000006,0x000002eb, - 0x000006c0,0x00000003,0x00070050,0x00000023,0x000006ad,0x000002e5,0x000002e7,0x000002e9, - 0x000002eb,0x000200f9,0x0000031d,0x000200f8,0x000002ed,0x00050041,0x000000bc,0x000002ee, - 0x000000b9,0x000000d6,0x0004003d,0x00000006,0x000002ef,0x000002ee,0x000500b4,0x00000048, - 0x000002f0,0x000002ef,0x000000d2,0x000300f7,0x0000031c,0x00000000,0x000400fa,0x000002f0, - 0x000002f1,0x000002fe,0x000200f8,0x000002f1,0x0008004f,0x0000000c,0x000002f3,0x000006c0, - 0x000006c0,0x00000000,0x00000001,0x00000002,0x00050041,0x000000bc,0x0000056d,0x000000b9, - 0x000001f6,0x0004003d,0x00000006,0x0000056e,0x0000056d,0x0005008e,0x0000000c,0x0000056f, - 0x000002f3,0x0000056e,0x00050041,0x000000bc,0x00000570,0x000000b9,0x00000206,0x0004003d, - 0x00000006,0x00000571,0x00000570,0x000500b7,0x00000048,0x00000572,0x00000571,0x0000009d, - 0x000400a8,0x00000048,0x00000573,0x00000572,0x000300f7,0x0000057a,0x00000000,0x000400fa, - 0x00000573,0x00000574,0x0000057a,0x000200f8,0x00000574,0x00050051,0x00000006,0x00000582, - 0x0000056f,0x00000000,0x000500bc,0x00000048,0x00000591,0x00000582,0x00000072,0x000300f7, - 0x0000059b,0x00000000,0x000400fa,0x00000591,0x00000592,0x00000595,0x000200f8,0x00000592, - 0x00050085,0x00000006,0x00000594,0x00000582,0x0000004d,0x000200f9,0x0000059b,0x000200f8, - 0x00000595,0x0006000c,0x00000006,0x00000597,0x00000001,0x00000004,0x00000582,0x0007000c, - 0x00000006,0x00000598,0x00000001,0x0000001a,0x00000597,0x0000007b,0x0008000c,0x00000006, - 0x0000059a,0x00000001,0x00000032,0x00000598,0x00000054,0x000006af,0x000200f9,0x0000059b, - 0x000200f8,0x0000059b,0x000700f5,0x00000006,0x000006cc,0x00000594,0x00000592,0x0000059a, - 0x00000595,0x00050051,0x00000006,0x00000586,0x0000056f,0x00000001,0x000500bc,0x00000048, - 0x000005a0,0x00000586,0x00000072,0x000300f7,0x000005aa,0x00000000,0x000400fa,0x000005a0, - 0x000005a1,0x000005a4,0x000200f8,0x000005a1,0x00050085,0x00000006,0x000005a3,0x00000586, - 0x0000004d,0x000200f9,0x000005aa,0x000200f8,0x000005a4,0x0006000c,0x00000006,0x000005a6, - 0x00000001,0x00000004,0x00000586,0x0007000c,0x00000006,0x000005a7,0x00000001,0x0000001a, - 0x000005a6,0x0000007b,0x0008000c,0x00000006,0x000005a9,0x00000001,0x00000032,0x000005a7, - 0x00000054,0x000006af,0x000200f9,0x000005aa,0x000200f8,0x000005aa,0x000700f5,0x00000006, - 0x000006ce,0x000005a3,0x000005a1,0x000005a9,0x000005a4,0x00050051,0x00000006,0x0000058a, - 0x0000056f,0x00000002,0x000500bc,0x00000048,0x000005af,0x0000058a,0x00000072,0x000300f7, - 0x000005b9,0x00000000,0x000400fa,0x000005af,0x000005b0,0x000005b3,0x000200f8,0x000005b0, - 0x00050085,0x00000006,0x000005b2,0x0000058a,0x0000004d,0x000200f9,0x000005b9,0x000200f8, - 0x000005b3,0x0006000c,0x00000006,0x000005b5,0x00000001,0x00000004,0x0000058a,0x0007000c, - 0x00000006,0x000005b6,0x00000001,0x0000001a,0x000005b5,0x0000007b,0x0008000c,0x00000006, - 0x000005b8,0x00000001,0x00000032,0x000005b6,0x00000054,0x000006af,0x000200f9,0x000005b9, - 0x000200f8,0x000005b9,0x000700f5,0x00000006,0x000006d0,0x000005b2,0x000005b0,0x000005b8, - 0x000005b3,0x00060050,0x0000000c,0x000006e6,0x000006cc,0x000006ce,0x000006d0,0x0008000c, - 0x0000000c,0x00000579,0x00000001,0x0000002b,0x000006e6,0x0000009e,0x000006a5,0x000200f9, - 0x0000057a,0x000200f8,0x0000057a,0x000700f5,0x0000000c,0x000006d2,0x0000056f,0x000002f1, - 0x00000579,0x000005b9,0x00050051,0x00000006,0x000002f6,0x000006d2,0x00000000,0x00050051, - 0x00000006,0x000002f8,0x000006d2,0x00000001,0x00050051,0x00000006,0x000002fa,0x000006d2, - 0x00000002,0x00050051,0x00000006,0x000002fc,0x000006c0,0x00000003,0x00070050,0x00000023, - 0x000006aa,0x000002f6,0x000002f8,0x000002fa,0x000002fc,0x000200f9,0x0000031c,0x000200f8, - 0x000002fe,0x00050041,0x000000bc,0x000002ff,0x000000b9,0x000000d6,0x0004003d,0x00000006, - 0x00000300,0x000002ff,0x000500b4,0x00000048,0x00000301,0x00000300,0x000001c8,0x000300f7, - 0x0000031b,0x00000000,0x000400fa,0x00000301,0x00000302,0x00000318,0x000200f8,0x00000302, - 0x0008004f,0x0000000c,0x00000304,0x000006c0,0x000006c0,0x00000000,0x00000001,0x00000002, - 0x00050090,0x0000000c,0x00000305,0x00000304,0x0000011b,0x00050051,0x00000006,0x00000307, - 0x00000305,0x00000000,0x00060052,0x00000023,0x0000067a,0x00000307,0x000006e8,0x00000000, - 0x00050051,0x00000006,0x00000309,0x00000305,0x00000001,0x00060052,0x00000023,0x0000067c, - 0x00000309,0x0000067a,0x00000001,0x00050051,0x00000006,0x0000030b,0x00000305,0x00000002, - 0x00060052,0x00000023,0x0000067e,0x0000030b,0x0000067c,0x00000002,0x0008004f,0x0000000c, - 0x0000030d,0x0000067e,0x0000067e,0x00000000,0x00000001,0x00000002,0x00050041,0x000000bc, - 0x000005c0,0x000000b9,0x000001f6,0x0004003d,0x00000006,0x000005c1,0x000005c0,0x0005008e, - 0x0000000c,0x000005c2,0x0000030d,0x000005c1,0x00050041,0x000000bc,0x000005c3,0x000000b9, - 0x00000206,0x0004003d,0x00000006,0x000005c4,0x000005c3,0x000500b7,0x00000048,0x000005c5, - 0x000005c4,0x0000009d,0x000400a8,0x00000048,0x000005c6,0x000005c5,0x000300f7,0x000005cd, - 0x00000000,0x000400fa,0x000005c6,0x000005c7,0x000005cd,0x000200f8,0x000005c7,0x00050051, - 0x00000006,0x000005d5,0x000005c2,0x00000000,0x000500bc,0x00000048,0x000005e4,0x000005d5, - 0x00000072,0x000300f7,0x000005ee,0x00000000,0x000400fa,0x000005e4,0x000005e5,0x000005e8, - 0x000200f8,0x000005e5,0x00050085,0x00000006,0x000005e7,0x000005d5,0x0000004d,0x000200f9, - 0x000005ee,0x000200f8,0x000005e8,0x0006000c,0x00000006,0x000005ea,0x00000001,0x00000004, - 0x000005d5,0x0007000c,0x00000006,0x000005eb,0x00000001,0x0000001a,0x000005ea,0x0000007b, - 0x0008000c,0x00000006,0x000005ed,0x00000001,0x00000032,0x000005eb,0x00000054,0x000006af, - 0x000200f9,0x000005ee,0x000200f8,0x000005ee,0x000700f5,0x00000006,0x000006c1,0x000005e7, - 0x000005e5,0x000005ed,0x000005e8,0x00050051,0x00000006,0x000005d9,0x000005c2,0x00000001, - 0x000500bc,0x00000048,0x000005f3,0x000005d9,0x00000072,0x000300f7,0x000005fd,0x00000000, - 0x000400fa,0x000005f3,0x000005f4,0x000005f7,0x000200f8,0x000005f4,0x00050085,0x00000006, - 0x000005f6,0x000005d9,0x0000004d,0x000200f9,0x000005fd,0x000200f8,0x000005f7,0x0006000c, - 0x00000006,0x000005f9,0x00000001,0x00000004,0x000005d9,0x0007000c,0x00000006,0x000005fa, - 0x00000001,0x0000001a,0x000005f9,0x0000007b,0x0008000c,0x00000006,0x000005fc,0x00000001, - 0x00000032,0x000005fa,0x00000054,0x000006af,0x000200f9,0x000005fd,0x000200f8,0x000005fd, - 0x000700f5,0x00000006,0x000006c3,0x000005f6,0x000005f4,0x000005fc,0x000005f7,0x00050051, - 0x00000006,0x000005dd,0x000005c2,0x00000002,0x000500bc,0x00000048,0x00000602,0x000005dd, - 0x00000072,0x000300f7,0x0000060c,0x00000000,0x000400fa,0x00000602,0x00000603,0x00000606, - 0x000200f8,0x00000603,0x00050085,0x00000006,0x00000605,0x000005dd,0x0000004d,0x000200f9, - 0x0000060c,0x000200f8,0x00000606,0x0006000c,0x00000006,0x00000608,0x00000001,0x00000004, - 0x000005dd,0x0007000c,0x00000006,0x00000609,0x00000001,0x0000001a,0x00000608,0x0000007b, - 0x0008000c,0x00000006,0x0000060b,0x00000001,0x00000032,0x00000609,0x00000054,0x000006af, - 0x000200f9,0x0000060c,0x000200f8,0x0000060c,0x000700f5,0x00000006,0x000006c5,0x00000605, - 0x00000603,0x0000060b,0x00000606,0x00060050,0x0000000c,0x000006e5,0x000006c1,0x000006c3, - 0x000006c5,0x0008000c,0x0000000c,0x000005cc,0x00000001,0x0000002b,0x000006e5,0x0000009e, - 0x000006a5,0x000200f9,0x000005cd,0x000200f8,0x000005cd,0x000700f5,0x0000000c,0x000006c7, - 0x000005c2,0x00000302,0x000005cc,0x0000060c,0x00050051,0x00000006,0x00000310,0x000006c7, - 0x00000000,0x00050051,0x00000006,0x00000312,0x000006c7,0x00000001,0x00050051,0x00000006, - 0x00000314,0x000006c7,0x00000002,0x00050051,0x00000006,0x00000316,0x000006c0,0x00000003, - 0x00070050,0x00000023,0x000006a6,0x00000310,0x00000312,0x00000314,0x00000316,0x000200f9, - 0x0000031b,0x000200f8,0x00000318,0x0008004f,0x0000000c,0x00000612,0x000006c0,0x000006c0, - 0x00000000,0x00000001,0x00000002,0x00050041,0x000000bc,0x00000613,0x000000b9,0x000001f6, - 0x0004003d,0x00000006,0x00000614,0x00000613,0x0005008e,0x0000000c,0x00000615,0x00000612, - 0x00000614,0x00050051,0x00000006,0x00000617,0x00000615,0x00000000,0x00050051,0x00000006, - 0x00000619,0x00000615,0x00000001,0x00050051,0x00000006,0x0000061b,0x00000615,0x00000002, - 0x00050051,0x00000006,0x0000061d,0x000006c0,0x00000003,0x00070050,0x00000023,0x000006a1, - 0x00000617,0x00000619,0x0000061b,0x0000061d,0x000200f9,0x0000031b,0x000200f8,0x0000031b, - 0x000700f5,0x00000023,0x000006e4,0x000006a6,0x000005cd,0x000006a1,0x00000318,0x000200f9, - 0x0000031c,0x000200f8,0x0000031c,0x000700f5,0x00000023,0x000006e3,0x000006aa,0x0000057a, - 0x000006e4,0x0000031b,0x000200f9,0x0000031d,0x000200f8,0x0000031d,0x000700f5,0x00000023, - 0x000006e2,0x000006ad,0x00000523,0x000006e3,0x0000031c,0x00050085,0x00000023,0x00000321, - 0x000006e2,0x000002a8,0x0003003e,0x000002ab,0x00000321,0x000100fd,0x00010038 + 0x00000341,0x00000340,0x0004003d,0x00000023,0x00000344,0x00000343,0x00050041,0x000000bc, + 0x000003cb,0x000000b9,0x000001a6,0x0004003d,0x00000006,0x000003cc,0x000003cb,0x000500b4, + 0x00000048,0x000003cd,0x000003cc,0x0000009d,0x000300f7,0x00000497,0x00000000,0x000400fa, + 0x000003cd,0x000003ce,0x000003cf,0x000200f8,0x000003ce,0x000200f9,0x00000497,0x000200f8, + 0x000003cf,0x00050041,0x000000bc,0x000003d0,0x000000b9,0x000001a6,0x0004003d,0x00000006, + 0x000003d1,0x000003d0,0x000500b4,0x00000048,0x000003d2,0x000003d1,0x000000c6,0x000300f7, + 0x00000496,0x00000000,0x000400fa,0x000003d2,0x000003d3,0x000003d8,0x000200f8,0x000003d3, + 0x0004003d,0x00000122,0x000003d4,0x00000124,0x00050057,0x00000023,0x000003d7,0x000003d4, + 0x00000341,0x000200f9,0x00000496,0x000200f8,0x000003d8,0x00050041,0x000000bc,0x000003d9, + 0x000000b9,0x000001a6,0x0004003d,0x00000006,0x000003da,0x000003d9,0x000500b4,0x00000048, + 0x000003db,0x000003da,0x000000d2,0x000300f7,0x00000495,0x00000000,0x000400fa,0x000003db, + 0x000003dc,0x000003e9,0x000200f8,0x000003dc,0x000400d1,0x00000021,0x0000049f,0x00000341, + 0x00050041,0x00000139,0x000004a0,0x000000b9,0x00000138,0x0004003d,0x00000023,0x000004a1, + 0x000004a0,0x0007004f,0x00000021,0x000004a2,0x000004a1,0x000004a1,0x00000002,0x00000003, + 0x00050085,0x00000021,0x000004a3,0x0000049f,0x000004a2,0x0008000c,0x00000021,0x000004a4, + 0x00000001,0x0000002b,0x000004a3,0x00000187,0x00000188,0x00050041,0x00000139,0x000004a6, + 0x000000b9,0x00000138,0x0004003d,0x00000023,0x000004a7,0x000004a6,0x0007004f,0x00000021, + 0x000004a8,0x000004a7,0x000004a7,0x00000002,0x00000003,0x0005008e,0x00000021,0x000004ab, + 0x000004a4,0x0000012e,0x0004007f,0x00000021,0x000007fd,0x000004ab,0x0008000c,0x00000021, + 0x000004ac,0x00000001,0x00000032,0x00000341,0x000004a8,0x000007fd,0x00050083,0x00000021, + 0x000004af,0x00000188,0x000004a4,0x0006000c,0x00000021,0x000004b1,0x00000001,0x0000000a, + 0x000004ac,0x0008000c,0x00000021,0x000004b2,0x00000001,0x00000031,0x000004af,0x00000188, + 0x000004b1,0x0006000c,0x00000021,0x000004b4,0x00000001,0x00000008,0x000004ac,0x00050081, + 0x00000021,0x000004b6,0x000004b4,0x000007fb,0x00050081,0x00000021,0x000004b8,0x000004b6, + 0x000004b2,0x00050041,0x00000139,0x000004b9,0x000000b9,0x00000138,0x0004003d,0x00000023, + 0x000004ba,0x000004b9,0x0007004f,0x00000021,0x000004bb,0x000004ba,0x000004ba,0x00000000, + 0x00000001,0x00050085,0x00000021,0x000004bc,0x000004b8,0x000004bb,0x0004003d,0x00000122, + 0x000003e0,0x00000124,0x000400cf,0x00000021,0x000003e4,0x00000341,0x000400d0,0x00000021, + 0x000003e7,0x00000341,0x00080058,0x00000023,0x000003e8,0x000003e0,0x000004bc,0x00000004, + 0x000003e4,0x000003e7,0x000200f9,0x00000495,0x000200f8,0x000003e9,0x00050041,0x000000bc, + 0x000003ea,0x000000b9,0x000001a6,0x0004003d,0x00000006,0x000003eb,0x000003ea,0x000500b4, + 0x00000048,0x000003ec,0x000003eb,0x000001cf,0x000300f7,0x00000494,0x00000000,0x000400fa, + 0x000003ec,0x000003ed,0x000003f1,0x000200f8,0x000003ed,0x0004003d,0x00000122,0x000004c0, + 0x00000124,0x00050057,0x00000023,0x000004c2,0x000004c0,0x00000341,0x00050051,0x00000006, + 0x000004c3,0x000004c2,0x00000000,0x0004003d,0x00000122,0x000004c5,0x0000012b,0x0008000c, + 0x00000006,0x000004c7,0x00000001,0x00000032,0x000004c3,0x00000129,0x0000012e,0x00050085, + 0x00000006,0x000004c8,0x000004c7,0x000007fc,0x00050050,0x00000021,0x000004c9,0x000004c8, + 0x0000012e,0x00050057,0x00000023,0x000004ca,0x000004c5,0x000004c9,0x000200f9,0x00000494, + 0x000200f8,0x000003f1,0x00050041,0x000000bc,0x000003f2,0x000000b9,0x000001a6,0x0004003d, + 0x00000006,0x000003f3,0x000003f2,0x000500b4,0x00000048,0x000003f4,0x000003f3,0x000001da, + 0x000300f7,0x00000493,0x00000000,0x000400fa,0x000003f4,0x000003f5,0x000003f9,0x000200f8, + 0x000003f5,0x00050041,0x00000139,0x000004d9,0x000000b9,0x00000138,0x0004003d,0x00000023, + 0x000004da,0x000004d9,0x0007004f,0x00000021,0x000004db,0x000004da,0x000004da,0x00000002, + 0x00000003,0x0008000c,0x00000021,0x000004de,0x00000001,0x00000032,0x00000341,0x000004db, + 0x000007fb,0x0006000c,0x00000021,0x000004e0,0x00000001,0x00000008,0x000004de,0x00050083, + 0x00000021,0x000004e2,0x000004e0,0x000007fb,0x00050041,0x00000139,0x000004e3,0x000000b9, + 0x00000138,0x0004003d,0x00000023,0x000004e4,0x000004e3,0x0007004f,0x00000021,0x000004e5, + 0x000004e4,0x000004e4,0x00000000,0x00000001,0x00050085,0x00000021,0x000004e6,0x000004e2, + 0x000004e5,0x0006000c,0x00000021,0x000004e8,0x00000001,0x00000008,0x000004de,0x00050081, + 0x00000021,0x000004ea,0x000004e8,0x000007fb,0x00050041,0x00000139,0x000004eb,0x000000b9, + 0x00000138,0x0004003d,0x00000023,0x000004ec,0x000004eb,0x0007004f,0x00000021,0x000004ed, + 0x000004ec,0x000004ec,0x00000000,0x00000001,0x00050085,0x00000021,0x000004ee,0x000004ea, + 0x000004ed,0x00050051,0x00000006,0x000004ef,0x000004e6,0x00000000,0x00050051,0x00000006, + 0x000004f0,0x000004e6,0x00000001,0x00050051,0x00000006,0x000004f1,0x000004ee,0x00000000, + 0x00050051,0x00000006,0x000004f2,0x000004ee,0x00000001,0x00070050,0x00000023,0x000004f3, + 0x000004ef,0x000004f0,0x000004f1,0x000004f2,0x0006000c,0x00000021,0x000004f5,0x00000001, + 0x0000000a,0x000004de,0x0007004f,0x00000021,0x000004f7,0x000004f3,0x000004f3,0x00000000, + 0x00000001,0x0004003d,0x00000122,0x00000515,0x00000124,0x00050057,0x00000023,0x00000517, + 0x00000515,0x000004f7,0x00050051,0x00000006,0x00000518,0x00000517,0x00000000,0x0004003d, + 0x00000122,0x0000051a,0x0000012b,0x0008000c,0x00000006,0x0000051c,0x00000001,0x00000032, + 0x00000518,0x00000129,0x0000012e,0x00050085,0x00000006,0x0000051d,0x0000051c,0x000007fc, + 0x00050050,0x00000021,0x0000051e,0x0000051d,0x0000012e,0x00050057,0x00000023,0x0000051f, + 0x0000051a,0x0000051e,0x0007004f,0x00000021,0x000004fa,0x000004f3,0x000004f3,0x00000000, + 0x00000003,0x0004003d,0x00000122,0x00000523,0x00000124,0x00050057,0x00000023,0x00000525, + 0x00000523,0x000004fa,0x00050051,0x00000006,0x00000526,0x00000525,0x00000000,0x0004003d, + 0x00000122,0x00000528,0x0000012b,0x0008000c,0x00000006,0x0000052a,0x00000001,0x00000032, + 0x00000526,0x00000129,0x0000012e,0x00050085,0x00000006,0x0000052b,0x0000052a,0x000007fc, + 0x00050050,0x00000021,0x0000052c,0x0000052b,0x0000012e,0x00050057,0x00000023,0x0000052d, + 0x00000528,0x0000052c,0x0007004f,0x00000021,0x000004fd,0x000004f3,0x000004f3,0x00000002, + 0x00000001,0x0004003d,0x00000122,0x00000531,0x00000124,0x00050057,0x00000023,0x00000533, + 0x00000531,0x000004fd,0x00050051,0x00000006,0x00000534,0x00000533,0x00000000,0x0004003d, + 0x00000122,0x00000536,0x0000012b,0x0008000c,0x00000006,0x00000538,0x00000001,0x00000032, + 0x00000534,0x00000129,0x0000012e,0x00050085,0x00000006,0x00000539,0x00000538,0x000007fc, + 0x00050050,0x00000021,0x0000053a,0x00000539,0x0000012e,0x00050057,0x00000023,0x0000053b, + 0x00000536,0x0000053a,0x0007004f,0x00000021,0x00000500,0x000004f3,0x000004f3,0x00000002, + 0x00000003,0x0004003d,0x00000122,0x0000053f,0x00000124,0x00050057,0x00000023,0x00000541, + 0x0000053f,0x00000500,0x00050051,0x00000006,0x00000542,0x00000541,0x00000000,0x0004003d, + 0x00000122,0x00000544,0x0000012b,0x0008000c,0x00000006,0x00000546,0x00000001,0x00000032, + 0x00000542,0x00000129,0x0000012e,0x00050085,0x00000006,0x00000547,0x00000546,0x000007fc, + 0x00050050,0x00000021,0x00000548,0x00000547,0x0000012e,0x00050057,0x00000023,0x00000549, + 0x00000544,0x00000548,0x00050051,0x00000006,0x00000505,0x000004f5,0x00000001,0x00070050, + 0x00000023,0x00000506,0x00000505,0x00000505,0x00000505,0x00000505,0x0008000c,0x00000023, + 0x00000507,0x00000001,0x0000002e,0x0000051f,0x0000052d,0x00000506,0x00050051,0x00000006, + 0x0000050b,0x000004f5,0x00000001,0x00070050,0x00000023,0x0000050c,0x0000050b,0x0000050b, + 0x0000050b,0x0000050b,0x0008000c,0x00000023,0x0000050d,0x00000001,0x0000002e,0x0000053b, + 0x00000549,0x0000050c,0x00050051,0x00000006,0x0000050f,0x000004f5,0x00000000,0x00070050, + 0x00000023,0x00000510,0x0000050f,0x0000050f,0x0000050f,0x0000050f,0x0008000c,0x00000023, + 0x00000511,0x00000001,0x0000002e,0x00000507,0x0000050d,0x00000510,0x000200f9,0x00000493, + 0x000200f8,0x000003f9,0x00050041,0x000000bc,0x000003fa,0x000000b9,0x000001a6,0x0004003d, + 0x00000006,0x000003fb,0x000003fa,0x000500b4,0x00000048,0x000003fc,0x000003fb,0x000001e5, + 0x000300f7,0x00000492,0x00000000,0x000400fa,0x000003fc,0x000003fd,0x00000403,0x000200f8, + 0x000003fd,0x000400d1,0x00000021,0x00000550,0x00000341,0x00050041,0x00000139,0x00000551, + 0x000000b9,0x00000138,0x0004003d,0x00000023,0x00000552,0x00000551,0x0007004f,0x00000021, + 0x00000553,0x00000552,0x00000552,0x00000002,0x00000003,0x00050085,0x00000021,0x00000554, + 0x00000550,0x00000553,0x0008000c,0x00000021,0x00000555,0x00000001,0x0000002b,0x00000554, + 0x00000187,0x00000188,0x00050041,0x00000139,0x00000557,0x000000b9,0x00000138,0x0004003d, + 0x00000023,0x00000558,0x00000557,0x0007004f,0x00000021,0x00000559,0x00000558,0x00000558, + 0x00000002,0x00000003,0x0005008e,0x00000021,0x0000055c,0x00000555,0x0000012e,0x0004007f, + 0x00000021,0x000007fa,0x0000055c,0x0008000c,0x00000021,0x0000055d,0x00000001,0x00000032, + 0x00000341,0x00000559,0x000007fa,0x00050083,0x00000021,0x00000560,0x00000188,0x00000555, + 0x0006000c,0x00000021,0x00000562,0x00000001,0x0000000a,0x0000055d,0x0008000c,0x00000021, + 0x00000563,0x00000001,0x00000031,0x00000560,0x00000188,0x00000562,0x0006000c,0x00000021, + 0x00000565,0x00000001,0x00000008,0x0000055d,0x00050081,0x00000021,0x00000567,0x00000565, + 0x000007fb,0x00050081,0x00000021,0x00000569,0x00000567,0x00000563,0x00050041,0x00000139, + 0x0000056a,0x000000b9,0x00000138,0x0004003d,0x00000023,0x0000056b,0x0000056a,0x0007004f, + 0x00000021,0x0000056c,0x0000056b,0x0000056b,0x00000000,0x00000001,0x00050085,0x00000021, + 0x0000056d,0x00000569,0x0000056c,0x00050041,0x00000139,0x0000057c,0x000000b9,0x00000138, + 0x0004003d,0x00000023,0x0000057d,0x0000057c,0x0007004f,0x00000021,0x0000057e,0x0000057d, + 0x0000057d,0x00000002,0x00000003,0x0008000c,0x00000021,0x00000581,0x00000001,0x00000032, + 0x0000056d,0x0000057e,0x000007fb,0x0006000c,0x00000021,0x00000583,0x00000001,0x00000008, + 0x00000581,0x00050083,0x00000021,0x00000585,0x00000583,0x000007fb,0x00050041,0x00000139, + 0x00000586,0x000000b9,0x00000138,0x0004003d,0x00000023,0x00000587,0x00000586,0x0007004f, + 0x00000021,0x00000588,0x00000587,0x00000587,0x00000000,0x00000001,0x00050085,0x00000021, + 0x00000589,0x00000585,0x00000588,0x0006000c,0x00000021,0x0000058b,0x00000001,0x00000008, + 0x00000581,0x00050081,0x00000021,0x0000058d,0x0000058b,0x000007fb,0x00050041,0x00000139, + 0x0000058e,0x000000b9,0x00000138,0x0004003d,0x00000023,0x0000058f,0x0000058e,0x0007004f, + 0x00000021,0x00000590,0x0000058f,0x0000058f,0x00000000,0x00000001,0x00050085,0x00000021, + 0x00000591,0x0000058d,0x00000590,0x00050051,0x00000006,0x00000592,0x00000589,0x00000000, + 0x00050051,0x00000006,0x00000593,0x00000589,0x00000001,0x00050051,0x00000006,0x00000594, + 0x00000591,0x00000000,0x00050051,0x00000006,0x00000595,0x00000591,0x00000001,0x00070050, + 0x00000023,0x00000596,0x00000592,0x00000593,0x00000594,0x00000595,0x0006000c,0x00000021, + 0x00000598,0x00000001,0x0000000a,0x00000581,0x0007004f,0x00000021,0x0000059a,0x00000596, + 0x00000596,0x00000000,0x00000001,0x0004003d,0x00000122,0x000005b8,0x00000124,0x00050057, + 0x00000023,0x000005ba,0x000005b8,0x0000059a,0x00050051,0x00000006,0x000005bb,0x000005ba, + 0x00000000,0x0004003d,0x00000122,0x000005bd,0x0000012b,0x0008000c,0x00000006,0x000005bf, + 0x00000001,0x00000032,0x000005bb,0x00000129,0x0000012e,0x00050085,0x00000006,0x000005c0, + 0x000005bf,0x000007fc,0x00050050,0x00000021,0x000005c1,0x000005c0,0x0000012e,0x00050057, + 0x00000023,0x000005c2,0x000005bd,0x000005c1,0x0007004f,0x00000021,0x0000059d,0x00000596, + 0x00000596,0x00000000,0x00000003,0x0004003d,0x00000122,0x000005c6,0x00000124,0x00050057, + 0x00000023,0x000005c8,0x000005c6,0x0000059d,0x00050051,0x00000006,0x000005c9,0x000005c8, + 0x00000000,0x0004003d,0x00000122,0x000005cb,0x0000012b,0x0008000c,0x00000006,0x000005cd, + 0x00000001,0x00000032,0x000005c9,0x00000129,0x0000012e,0x00050085,0x00000006,0x000005ce, + 0x000005cd,0x000007fc,0x00050050,0x00000021,0x000005cf,0x000005ce,0x0000012e,0x00050057, + 0x00000023,0x000005d0,0x000005cb,0x000005cf,0x0007004f,0x00000021,0x000005a0,0x00000596, + 0x00000596,0x00000002,0x00000001,0x0004003d,0x00000122,0x000005d4,0x00000124,0x00050057, + 0x00000023,0x000005d6,0x000005d4,0x000005a0,0x00050051,0x00000006,0x000005d7,0x000005d6, + 0x00000000,0x0004003d,0x00000122,0x000005d9,0x0000012b,0x0008000c,0x00000006,0x000005db, + 0x00000001,0x00000032,0x000005d7,0x00000129,0x0000012e,0x00050085,0x00000006,0x000005dc, + 0x000005db,0x000007fc,0x00050050,0x00000021,0x000005dd,0x000005dc,0x0000012e,0x00050057, + 0x00000023,0x000005de,0x000005d9,0x000005dd,0x0007004f,0x00000021,0x000005a3,0x00000596, + 0x00000596,0x00000002,0x00000003,0x0004003d,0x00000122,0x000005e2,0x00000124,0x00050057, + 0x00000023,0x000005e4,0x000005e2,0x000005a3,0x00050051,0x00000006,0x000005e5,0x000005e4, + 0x00000000,0x0004003d,0x00000122,0x000005e7,0x0000012b,0x0008000c,0x00000006,0x000005e9, + 0x00000001,0x00000032,0x000005e5,0x00000129,0x0000012e,0x00050085,0x00000006,0x000005ea, + 0x000005e9,0x000007fc,0x00050050,0x00000021,0x000005eb,0x000005ea,0x0000012e,0x00050057, + 0x00000023,0x000005ec,0x000005e7,0x000005eb,0x00050051,0x00000006,0x000005a8,0x00000598, + 0x00000001,0x00070050,0x00000023,0x000005a9,0x000005a8,0x000005a8,0x000005a8,0x000005a8, + 0x0008000c,0x00000023,0x000005aa,0x00000001,0x0000002e,0x000005c2,0x000005d0,0x000005a9, + 0x00050051,0x00000006,0x000005ae,0x00000598,0x00000001,0x00070050,0x00000023,0x000005af, + 0x000005ae,0x000005ae,0x000005ae,0x000005ae,0x0008000c,0x00000023,0x000005b0,0x00000001, + 0x0000002e,0x000005de,0x000005ec,0x000005af,0x00050051,0x00000006,0x000005b2,0x00000598, + 0x00000000,0x00070050,0x00000023,0x000005b3,0x000005b2,0x000005b2,0x000005b2,0x000005b2, + 0x0008000c,0x00000023,0x000005b4,0x00000001,0x0000002e,0x000005aa,0x000005b0,0x000005b3, + 0x000200f9,0x00000492,0x000200f8,0x00000403,0x00050041,0x000000bc,0x00000404,0x000000b9, + 0x000001a6,0x0004003d,0x00000006,0x00000405,0x00000404,0x000500b4,0x00000048,0x00000406, + 0x00000405,0x000001f4,0x000300f7,0x00000491,0x00000000,0x000400fa,0x00000406,0x00000407, + 0x0000042f,0x000200f8,0x00000407,0x0004003d,0x00000122,0x00000408,0x00000124,0x00050057, + 0x00000023,0x0000040b,0x00000408,0x00000341,0x00050051,0x00000006,0x0000040c,0x0000040b, + 0x00000000,0x0004003d,0x00000122,0x0000040e,0x0000012b,0x00050057,0x00000023,0x00000411, + 0x0000040e,0x00000341,0x00050051,0x00000006,0x00000414,0x00000411,0x00000000,0x00050051, + 0x00000006,0x00000416,0x00000411,0x00000001,0x00060050,0x0000000c,0x000007f8,0x0000040c, + 0x00000414,0x00000416,0x00050041,0x00000139,0x00000417,0x000000b9,0x00000208,0x0004003d, + 0x00000023,0x00000418,0x00000417,0x0008004f,0x0000000c,0x00000419,0x00000418,0x00000418, + 0x00000000,0x00000001,0x00000002,0x00050081,0x0000000c,0x0000041b,0x000007f8,0x00000419, + 0x00050041,0x00000139,0x0000041d,0x000000b9,0x0000020f,0x0004003d,0x00000023,0x0000041e, + 0x0000041d,0x0008004f,0x0000000c,0x0000041f,0x0000041e,0x0000041e,0x00000000,0x00000001, + 0x00000002,0x00050094,0x00000006,0x00000420,0x0000041b,0x0000041f,0x00050041,0x00000139, + 0x00000423,0x000000b9,0x00000216,0x0004003d,0x00000023,0x00000424,0x00000423,0x0008004f, + 0x0000000c,0x00000425,0x00000424,0x00000424,0x00000000,0x00000001,0x00000002,0x00050094, + 0x00000006,0x00000426,0x0000041b,0x00000425,0x00050041,0x00000139,0x00000429,0x000000b9, + 0x0000021d,0x0004003d,0x00000023,0x0000042a,0x00000429,0x0008004f,0x0000000c,0x0000042b, + 0x0000042a,0x0000042a,0x00000000,0x00000001,0x00000002,0x00050094,0x00000006,0x0000042c, + 0x0000041b,0x0000042b,0x00070050,0x00000023,0x000007f9,0x00000420,0x00000426,0x0000042c, + 0x000000c6,0x000200f9,0x00000491,0x000200f8,0x0000042f,0x00050041,0x000000bc,0x00000430, + 0x000000b9,0x000001a6,0x0004003d,0x00000006,0x00000431,0x00000430,0x000500b4,0x00000048, + 0x00000432,0x00000431,0x00000228,0x000300f7,0x00000490,0x00000000,0x000400fa,0x00000432, + 0x00000433,0x0000045b,0x000200f8,0x00000433,0x0004003d,0x00000122,0x00000434,0x00000124, + 0x00050057,0x00000023,0x00000437,0x00000434,0x00000341,0x00050051,0x00000006,0x00000438, + 0x00000437,0x00000000,0x0004003d,0x00000122,0x0000043a,0x0000012b,0x00050057,0x00000023, + 0x0000043d,0x0000043a,0x00000341,0x00050051,0x00000006,0x00000440,0x0000043d,0x00000001, + 0x00050051,0x00000006,0x00000442,0x0000043d,0x00000000,0x00060050,0x0000000c,0x000007f6, + 0x00000438,0x00000440,0x00000442,0x00050041,0x00000139,0x00000443,0x000000b9,0x00000208, + 0x0004003d,0x00000023,0x00000444,0x00000443,0x0008004f,0x0000000c,0x00000445,0x00000444, + 0x00000444,0x00000000,0x00000001,0x00000002,0x00050081,0x0000000c,0x00000447,0x000007f6, + 0x00000445,0x00050041,0x00000139,0x00000449,0x000000b9,0x0000020f,0x0004003d,0x00000023, + 0x0000044a,0x00000449,0x0008004f,0x0000000c,0x0000044b,0x0000044a,0x0000044a,0x00000000, + 0x00000001,0x00000002,0x00050094,0x00000006,0x0000044c,0x00000447,0x0000044b,0x00050041, + 0x00000139,0x0000044f,0x000000b9,0x00000216,0x0004003d,0x00000023,0x00000450,0x0000044f, + 0x0008004f,0x0000000c,0x00000451,0x00000450,0x00000450,0x00000000,0x00000001,0x00000002, + 0x00050094,0x00000006,0x00000452,0x00000447,0x00000451,0x00050041,0x00000139,0x00000455, + 0x000000b9,0x0000021d,0x0004003d,0x00000023,0x00000456,0x00000455,0x0008004f,0x0000000c, + 0x00000457,0x00000456,0x00000456,0x00000000,0x00000001,0x00000002,0x00050094,0x00000006, + 0x00000458,0x00000447,0x00000457,0x00070050,0x00000023,0x000007f7,0x0000044c,0x00000452, + 0x00000458,0x000000c6,0x000200f9,0x00000490,0x000200f8,0x0000045b,0x00050041,0x000000bc, + 0x0000045c,0x000000b9,0x000001a6,0x0004003d,0x00000006,0x0000045d,0x0000045c,0x000500b4, + 0x00000048,0x0000045e,0x0000045d,0x00000257,0x000300f7,0x0000048f,0x00000000,0x000400fa, + 0x0000045e,0x0000045f,0x0000048a,0x000200f8,0x0000045f,0x0004003d,0x00000122,0x00000460, + 0x00000124,0x00050057,0x00000023,0x00000463,0x00000460,0x00000341,0x00050051,0x00000006, + 0x00000464,0x00000463,0x00000000,0x0004003d,0x00000122,0x00000466,0x0000012b,0x00050057, + 0x00000023,0x00000469,0x00000466,0x00000341,0x00050051,0x00000006,0x0000046a,0x00000469, + 0x00000000,0x0004003d,0x00000122,0x0000046c,0x00000268,0x00050057,0x00000023,0x0000046f, + 0x0000046c,0x00000341,0x00050051,0x00000006,0x00000470,0x0000046f,0x00000000,0x00060050, + 0x0000000c,0x000007f4,0x00000464,0x0000046a,0x00000470,0x00050041,0x00000139,0x00000472, + 0x000000b9,0x00000208,0x0004003d,0x00000023,0x00000473,0x00000472,0x0008004f,0x0000000c, + 0x00000474,0x00000473,0x00000473,0x00000000,0x00000001,0x00000002,0x00050081,0x0000000c, + 0x00000476,0x000007f4,0x00000474,0x00050041,0x00000139,0x00000478,0x000000b9,0x0000020f, + 0x0004003d,0x00000023,0x00000479,0x00000478,0x0008004f,0x0000000c,0x0000047a,0x00000479, + 0x00000479,0x00000000,0x00000001,0x00000002,0x00050094,0x00000006,0x0000047b,0x00000476, + 0x0000047a,0x00050041,0x00000139,0x0000047e,0x000000b9,0x00000216,0x0004003d,0x00000023, + 0x0000047f,0x0000047e,0x0008004f,0x0000000c,0x00000480,0x0000047f,0x0000047f,0x00000000, + 0x00000001,0x00000002,0x00050094,0x00000006,0x00000481,0x00000476,0x00000480,0x00050041, + 0x00000139,0x00000484,0x000000b9,0x0000021d,0x0004003d,0x00000023,0x00000485,0x00000484, + 0x0008004f,0x0000000c,0x00000486,0x00000485,0x00000485,0x00000000,0x00000001,0x00000002, + 0x00050094,0x00000006,0x00000487,0x00000476,0x00000486,0x00070050,0x00000023,0x000007f5, + 0x0000047b,0x00000481,0x00000487,0x000000c6,0x000200f9,0x0000048f,0x000200f8,0x0000048a, + 0x000200f9,0x0000048f,0x000200f8,0x0000048f,0x000700f5,0x00000023,0x00000817,0x000007f5, + 0x0000045f,0x0000080d,0x0000048a,0x000200f9,0x00000490,0x000200f8,0x00000490,0x000700f5, + 0x00000023,0x00000816,0x000007f7,0x00000433,0x00000817,0x0000048f,0x000200f9,0x00000491, + 0x000200f8,0x00000491,0x000700f5,0x00000023,0x00000815,0x000007f9,0x00000407,0x00000816, + 0x00000490,0x000200f9,0x00000492,0x000200f8,0x00000492,0x000700f5,0x00000023,0x00000814, + 0x000005b4,0x000003fd,0x00000815,0x00000491,0x000200f9,0x00000493,0x000200f8,0x00000493, + 0x000700f5,0x00000023,0x00000813,0x00000511,0x000003f5,0x00000814,0x00000492,0x000200f9, + 0x00000494,0x000200f8,0x00000494,0x000700f5,0x00000023,0x00000812,0x000004ca,0x000003ed, + 0x00000813,0x00000493,0x000200f9,0x00000495,0x000200f8,0x00000495,0x000700f5,0x00000023, + 0x00000811,0x000003e8,0x000003dc,0x00000812,0x00000494,0x000200f9,0x00000496,0x000200f8, + 0x00000496,0x000700f5,0x00000023,0x00000810,0x000003d7,0x000003d3,0x00000811,0x00000495, + 0x000200f9,0x00000497,0x000200f8,0x00000497,0x000700f5,0x00000023,0x0000080f,0x000001ad, + 0x000003ce,0x00000810,0x00000496,0x00050041,0x000000bc,0x0000035d,0x000000b9,0x000000d6, + 0x0004003d,0x00000006,0x0000035e,0x0000035d,0x000500b4,0x00000048,0x0000035f,0x0000035e, + 0x000001cf,0x000300f7,0x0000036a,0x00000000,0x000400fa,0x0000035f,0x00000360,0x0000036a, + 0x000200f8,0x00000360,0x0008004f,0x0000000c,0x00000362,0x0000080f,0x0000080f,0x00000000, + 0x00000001,0x00000002,0x0006000c,0x0000000c,0x000005fb,0x00000001,0x00000004,0x00000362, + 0x0007000c,0x0000000c,0x000005fc,0x00000001,0x0000001a,0x000005fb,0x00000098,0x00050083, + 0x0000000c,0x000005fe,0x000005fc,0x000007fe,0x0007000c,0x0000000c,0x000005ff,0x00000001, + 0x00000028,0x000005fe,0x0000009e,0x0006000c,0x0000000c,0x00000601,0x00000001,0x00000004, + 0x00000362,0x0007000c,0x0000000c,0x00000602,0x00000001,0x0000001a,0x00000601,0x00000098, + 0x0005008e,0x0000000c,0x00000603,0x00000602,0x000000a2,0x00050083,0x0000000c,0x00000605, + 0x000007ff,0x00000603,0x00050088,0x0000000c,0x00000608,0x000005ff,0x00000605,0x0006000c, + 0x0000000c,0x00000609,0x00000001,0x00000004,0x00000608,0x0007000c,0x0000000c,0x0000060a, + 0x00000001,0x0000001a,0x00000609,0x000000af,0x0005008e,0x0000000c,0x0000060b,0x0000060a, + 0x000000a9,0x00050041,0x000000bc,0x000005f2,0x000000b9,0x000000bb,0x0004003d,0x00000006, + 0x000005f3,0x000005f2,0x00060050,0x0000000c,0x000005f4,0x000005f3,0x000005f3,0x000005f3, + 0x00050088,0x0000000c,0x000005f5,0x0000060b,0x000005f4,0x00050051,0x00000006,0x00000365, + 0x000005f5,0x00000000,0x00060052,0x00000023,0x000007a0,0x00000365,0x0000080f,0x00000000, + 0x00050051,0x00000006,0x00000367,0x000005f5,0x00000001,0x00060052,0x00000023,0x000007a2, + 0x00000367,0x000007a0,0x00000001,0x00050051,0x00000006,0x00000369,0x000005f5,0x00000002, + 0x00060052,0x00000023,0x000007a4,0x00000369,0x000007a2,0x00000002,0x000200f9,0x0000036a, + 0x000200f8,0x0000036a,0x000700f5,0x00000023,0x00000818,0x0000080f,0x00000497,0x000007a4, + 0x00000360,0x00050041,0x000000bc,0x0000036b,0x000000b9,0x000000c3,0x0004003d,0x00000006, + 0x0000036c,0x0000036b,0x000500b7,0x00000048,0x0000036d,0x0000036c,0x0000009d,0x000300f7, + 0x00000378,0x00000000,0x000400fa,0x0000036d,0x0000036e,0x00000378,0x000200f8,0x0000036e, + 0x0008004f,0x0000000c,0x00000370,0x00000818,0x00000818,0x00000000,0x00000001,0x00000002, + 0x00050041,0x000000bc,0x00000610,0x000000b9,0x000000c3,0x0004003d,0x00000006,0x00000611, + 0x00000610,0x000500b4,0x00000048,0x00000612,0x00000611,0x000000c6,0x000300f7,0x00000646, + 0x00000000,0x000400fa,0x00000612,0x00000613,0x00000618,0x000200f8,0x00000613,0x00050041, + 0x000000bc,0x00000614,0x000000b9,0x000000ca,0x0004003d,0x00000006,0x00000615,0x00000614, + 0x0005008e,0x0000000c,0x00000617,0x00000370,0x00000615,0x000200f9,0x00000646,0x000200f8, + 0x00000618,0x00050041,0x000000bc,0x00000619,0x000000b9,0x000000c3,0x0004003d,0x00000006, + 0x0000061a,0x00000619,0x000500b4,0x00000048,0x0000061b,0x0000061a,0x000000d2,0x000300f7, + 0x00000645,0x00000000,0x000400fa,0x0000061b,0x0000061c,0x00000645,0x000200f8,0x0000061c, + 0x00050041,0x000000bc,0x0000061d,0x000000b9,0x000000d6,0x0004003d,0x00000006,0x0000061e, + 0x0000061d,0x000500b4,0x00000048,0x0000061f,0x0000061e,0x000000d2,0x000300f7,0x00000623, + 0x00000000,0x000400fa,0x0000061f,0x00000620,0x00000623,0x000200f8,0x00000620,0x00050090, + 0x0000000c,0x00000622,0x00000370,0x000000ea,0x000200f9,0x00000623,0x000200f8,0x00000623, + 0x000700f5,0x0000000c,0x00000819,0x00000370,0x0000061c,0x00000622,0x00000620,0x00050051, + 0x00000006,0x00000625,0x00000819,0x00000000,0x00050051,0x00000006,0x00000627,0x00000819, + 0x00000001,0x00050051,0x00000006,0x00000629,0x00000819,0x00000002,0x0007000c,0x00000006, + 0x0000062a,0x00000001,0x00000028,0x00000627,0x00000629,0x0007000c,0x00000006,0x0000062b, + 0x00000001,0x00000028,0x00000625,0x0000062a,0x000500ba,0x00000048,0x0000062d,0x0000062b, + 0x0000009d,0x000300f7,0x0000063d,0x00000000,0x000400fa,0x0000062d,0x0000062e,0x0000063d, + 0x000200f8,0x0000062e,0x00050041,0x000000bc,0x0000062f,0x000000b9,0x000000ca,0x0004003d, + 0x00000006,0x00000630,0x0000062f,0x0008000c,0x00000006,0x00000633,0x00000001,0x00000032, + 0x00000630,0x0000062b,0x000000c6,0x00050041,0x000000bc,0x00000634,0x000000b9,0x000000ff, + 0x0004003d,0x00000006,0x00000635,0x00000634,0x0008000c,0x00000006,0x00000638,0x00000001, + 0x00000032,0x00000635,0x0000062b,0x000000c6,0x00050088,0x00000006,0x00000639,0x00000633, + 0x00000638,0x0005008e,0x0000000c,0x0000063c,0x00000819,0x00000639,0x000200f9,0x0000063d, + 0x000200f8,0x0000063d,0x000700f5,0x0000000c,0x0000081a,0x00000819,0x00000623,0x0000063c, + 0x0000062e,0x00050041,0x000000bc,0x0000063e,0x000000b9,0x000000d6,0x0004003d,0x00000006, + 0x0000063f,0x0000063e,0x000500b4,0x00000048,0x00000640,0x0000063f,0x000000d2,0x000300f7, + 0x00000644,0x00000000,0x000400fa,0x00000640,0x00000641,0x00000644,0x000200f8,0x00000641, + 0x00050090,0x0000000c,0x00000643,0x0000081a,0x0000011b,0x000200f9,0x00000644,0x000200f8, + 0x00000644,0x000700f5,0x0000000c,0x0000081d,0x0000081a,0x0000063d,0x00000643,0x00000641, + 0x000200f9,0x00000645,0x000200f8,0x00000645,0x000700f5,0x0000000c,0x0000081c,0x00000370, + 0x00000618,0x0000081d,0x00000644,0x000200f9,0x00000646,0x000200f8,0x00000646,0x000700f5, + 0x0000000c,0x0000081b,0x00000617,0x00000613,0x0000081c,0x00000645,0x00050051,0x00000006, + 0x00000373,0x0000081b,0x00000000,0x00060052,0x00000023,0x000007a9,0x00000373,0x00000818, + 0x00000000,0x00050051,0x00000006,0x00000375,0x0000081b,0x00000001,0x00060052,0x00000023, + 0x000007ab,0x00000375,0x000007a9,0x00000001,0x00050051,0x00000006,0x00000377,0x0000081b, + 0x00000002,0x00060052,0x00000023,0x000007ad,0x00000377,0x000007ab,0x00000002,0x000200f9, + 0x00000378,0x000200f8,0x00000378,0x000700f5,0x00000023,0x00000823,0x00000818,0x0000036a, + 0x000007ad,0x00000646,0x00050041,0x000000bc,0x00000379,0x000000b9,0x000000d6,0x0004003d, + 0x00000006,0x0000037a,0x00000379,0x000500b4,0x00000048,0x0000037b,0x0000037a,0x000000c6, + 0x000300f7,0x000003b9,0x00000000,0x000400fa,0x0000037b,0x0000037c,0x00000389,0x000200f8, + 0x0000037c,0x0008004f,0x0000000c,0x0000037e,0x00000823,0x00000823,0x00000000,0x00000001, + 0x00000002,0x00050041,0x000000bc,0x0000064c,0x000000b9,0x000002a2,0x0004003d,0x00000006, + 0x0000064d,0x0000064c,0x000500b7,0x00000048,0x0000064e,0x0000064d,0x0000009d,0x000300f7, + 0x00000652,0x00000000,0x000400fa,0x0000064e,0x0000064f,0x00000652,0x000200f8,0x0000064f, + 0x00050051,0x00000006,0x0000065e,0x00000823,0x00000000,0x000500bc,0x00000048,0x0000066d, + 0x0000065e,0x00000047,0x000300f7,0x00000677,0x00000000,0x000400fa,0x0000066d,0x0000066e, + 0x00000671,0x000200f8,0x0000066e,0x00050085,0x00000006,0x00000670,0x0000065e,0x0000080b, + 0x000200f9,0x00000677,0x000200f8,0x00000671,0x00050081,0x00000006,0x00000673,0x0000065e, + 0x00000051,0x0006000c,0x00000006,0x00000674,0x00000001,0x00000004,0x00000673,0x00050085, + 0x00000006,0x00000675,0x00000674,0x0000080a,0x0007000c,0x00000006,0x00000676,0x00000001, + 0x0000001a,0x00000675,0x00000056,0x000200f9,0x00000677,0x000200f8,0x00000677,0x000700f5, + 0x00000006,0x0000083a,0x00000670,0x0000066e,0x00000676,0x00000671,0x00050051,0x00000006, + 0x00000662,0x00000823,0x00000001,0x000500bc,0x00000048,0x0000067c,0x00000662,0x00000047, + 0x000300f7,0x00000686,0x00000000,0x000400fa,0x0000067c,0x0000067d,0x00000680,0x000200f8, + 0x0000067d,0x00050085,0x00000006,0x0000067f,0x00000662,0x0000080b,0x000200f9,0x00000686, + 0x000200f8,0x00000680,0x00050081,0x00000006,0x00000682,0x00000662,0x00000051,0x0006000c, + 0x00000006,0x00000683,0x00000001,0x00000004,0x00000682,0x00050085,0x00000006,0x00000684, + 0x00000683,0x0000080a,0x0007000c,0x00000006,0x00000685,0x00000001,0x0000001a,0x00000684, + 0x00000056,0x000200f9,0x00000686,0x000200f8,0x00000686,0x000700f5,0x00000006,0x0000083c, + 0x0000067f,0x0000067d,0x00000685,0x00000680,0x00050051,0x00000006,0x00000666,0x00000823, + 0x00000002,0x000500bc,0x00000048,0x0000068b,0x00000666,0x00000047,0x000300f7,0x00000695, + 0x00000000,0x000400fa,0x0000068b,0x0000068c,0x0000068f,0x000200f8,0x0000068c,0x00050085, + 0x00000006,0x0000068e,0x00000666,0x0000080b,0x000200f9,0x00000695,0x000200f8,0x0000068f, + 0x00050081,0x00000006,0x00000691,0x00000666,0x00000051,0x0006000c,0x00000006,0x00000692, + 0x00000001,0x00000004,0x00000691,0x00050085,0x00000006,0x00000693,0x00000692,0x0000080a, + 0x0007000c,0x00000006,0x00000694,0x00000001,0x0000001a,0x00000693,0x00000056,0x000200f9, + 0x00000695,0x000200f8,0x00000695,0x000700f5,0x00000006,0x0000083e,0x0000068e,0x0000068c, + 0x00000694,0x0000068f,0x00060050,0x0000000c,0x0000084a,0x0000083a,0x0000083c,0x0000083e, + 0x000200f9,0x00000652,0x000200f8,0x00000652,0x000700f5,0x0000000c,0x00000840,0x0000037e, + 0x0000037c,0x0000084a,0x00000695,0x00050041,0x000000bc,0x00000654,0x000000b9,0x00000292, + 0x0004003d,0x00000006,0x00000655,0x00000654,0x0005008e,0x0000000c,0x00000656,0x00000840, + 0x00000655,0x00050051,0x00000006,0x00000381,0x00000656,0x00000000,0x00050051,0x00000006, + 0x00000383,0x00000656,0x00000001,0x00050051,0x00000006,0x00000385,0x00000656,0x00000002, + 0x00050051,0x00000006,0x00000387,0x00000823,0x00000003,0x00070050,0x00000023,0x0000080c, + 0x00000381,0x00000383,0x00000385,0x00000387,0x000200f9,0x000003b9,0x000200f8,0x00000389, + 0x00050041,0x000000bc,0x0000038a,0x000000b9,0x000000d6,0x0004003d,0x00000006,0x0000038b, + 0x0000038a,0x000500b4,0x00000048,0x0000038c,0x0000038b,0x000000d2,0x000300f7,0x000003b8, + 0x00000000,0x000400fa,0x0000038c,0x0000038d,0x0000039a,0x000200f8,0x0000038d,0x0008004f, + 0x0000000c,0x0000038f,0x00000823,0x00000823,0x00000000,0x00000001,0x00000002,0x00050041, + 0x000000bc,0x0000069c,0x000000b9,0x00000292,0x0004003d,0x00000006,0x0000069d,0x0000069c, + 0x0005008e,0x0000000c,0x0000069e,0x0000038f,0x0000069d,0x00050041,0x000000bc,0x0000069f, + 0x000000b9,0x000002a2,0x0004003d,0x00000006,0x000006a0,0x0000069f,0x000500b7,0x00000048, + 0x000006a1,0x000006a0,0x0000009d,0x000400a8,0x00000048,0x000006a2,0x000006a1,0x000300f7, + 0x000006a9,0x00000000,0x000400fa,0x000006a2,0x000006a3,0x000006a9,0x000200f8,0x000006a3, + 0x00050051,0x00000006,0x000006b1,0x0000069e,0x00000000,0x000500bc,0x00000048,0x000006c0, + 0x000006b1,0x00000072,0x000300f7,0x000006ca,0x00000000,0x000400fa,0x000006c0,0x000006c1, + 0x000006c4,0x000200f8,0x000006c1,0x00050085,0x00000006,0x000006c3,0x000006b1,0x0000004d, + 0x000200f9,0x000006ca,0x000200f8,0x000006c4,0x0006000c,0x00000006,0x000006c6,0x00000001, + 0x00000004,0x000006b1,0x0007000c,0x00000006,0x000006c7,0x00000001,0x0000001a,0x000006c6, + 0x0000007b,0x0008000c,0x00000006,0x000006c9,0x00000001,0x00000032,0x000006c7,0x00000054, + 0x0000080e,0x000200f9,0x000006ca,0x000200f8,0x000006ca,0x000700f5,0x00000006,0x0000082f, + 0x000006c3,0x000006c1,0x000006c9,0x000006c4,0x00050051,0x00000006,0x000006b5,0x0000069e, + 0x00000001,0x000500bc,0x00000048,0x000006cf,0x000006b5,0x00000072,0x000300f7,0x000006d9, + 0x00000000,0x000400fa,0x000006cf,0x000006d0,0x000006d3,0x000200f8,0x000006d0,0x00050085, + 0x00000006,0x000006d2,0x000006b5,0x0000004d,0x000200f9,0x000006d9,0x000200f8,0x000006d3, + 0x0006000c,0x00000006,0x000006d5,0x00000001,0x00000004,0x000006b5,0x0007000c,0x00000006, + 0x000006d6,0x00000001,0x0000001a,0x000006d5,0x0000007b,0x0008000c,0x00000006,0x000006d8, + 0x00000001,0x00000032,0x000006d6,0x00000054,0x0000080e,0x000200f9,0x000006d9,0x000200f8, + 0x000006d9,0x000700f5,0x00000006,0x00000831,0x000006d2,0x000006d0,0x000006d8,0x000006d3, + 0x00050051,0x00000006,0x000006b9,0x0000069e,0x00000002,0x000500bc,0x00000048,0x000006de, + 0x000006b9,0x00000072,0x000300f7,0x000006e8,0x00000000,0x000400fa,0x000006de,0x000006df, + 0x000006e2,0x000200f8,0x000006df,0x00050085,0x00000006,0x000006e1,0x000006b9,0x0000004d, + 0x000200f9,0x000006e8,0x000200f8,0x000006e2,0x0006000c,0x00000006,0x000006e4,0x00000001, + 0x00000004,0x000006b9,0x0007000c,0x00000006,0x000006e5,0x00000001,0x0000001a,0x000006e4, + 0x0000007b,0x0008000c,0x00000006,0x000006e7,0x00000001,0x00000032,0x000006e5,0x00000054, + 0x0000080e,0x000200f9,0x000006e8,0x000200f8,0x000006e8,0x000700f5,0x00000006,0x00000833, + 0x000006e1,0x000006df,0x000006e7,0x000006e2,0x00060050,0x0000000c,0x00000849,0x0000082f, + 0x00000831,0x00000833,0x0008000c,0x0000000c,0x000006a8,0x00000001,0x0000002b,0x00000849, + 0x0000009e,0x00000804,0x000200f9,0x000006a9,0x000200f8,0x000006a9,0x000700f5,0x0000000c, + 0x00000835,0x0000069e,0x0000038d,0x000006a8,0x000006e8,0x00050051,0x00000006,0x00000392, + 0x00000835,0x00000000,0x00050051,0x00000006,0x00000394,0x00000835,0x00000001,0x00050051, + 0x00000006,0x00000396,0x00000835,0x00000002,0x00050051,0x00000006,0x00000398,0x00000823, + 0x00000003,0x00070050,0x00000023,0x00000809,0x00000392,0x00000394,0x00000396,0x00000398, + 0x000200f9,0x000003b8,0x000200f8,0x0000039a,0x00050041,0x000000bc,0x0000039b,0x000000b9, + 0x000000d6,0x0004003d,0x00000006,0x0000039c,0x0000039b,0x000500b4,0x00000048,0x0000039d, + 0x0000039c,0x000001cf,0x000300f7,0x000003b7,0x00000000,0x000400fa,0x0000039d,0x0000039e, + 0x000003b4,0x000200f8,0x0000039e,0x0008004f,0x0000000c,0x000003a0,0x00000823,0x00000823, + 0x00000000,0x00000001,0x00000002,0x00050090,0x0000000c,0x000003a1,0x000003a0,0x0000011b, + 0x00050051,0x00000006,0x000003a3,0x000003a1,0x00000000,0x00060052,0x00000023,0x000007d3, + 0x000003a3,0x0000084b,0x00000000,0x00050051,0x00000006,0x000003a5,0x000003a1,0x00000001, + 0x00060052,0x00000023,0x000007d5,0x000003a5,0x000007d3,0x00000001,0x00050051,0x00000006, + 0x000003a7,0x000003a1,0x00000002,0x00060052,0x00000023,0x000007d7,0x000003a7,0x000007d5, + 0x00000002,0x0008004f,0x0000000c,0x000003a9,0x000007d7,0x000007d7,0x00000000,0x00000001, + 0x00000002,0x00050041,0x000000bc,0x000006ef,0x000000b9,0x00000292,0x0004003d,0x00000006, + 0x000006f0,0x000006ef,0x0005008e,0x0000000c,0x000006f1,0x000003a9,0x000006f0,0x00050041, + 0x000000bc,0x000006f2,0x000000b9,0x000002a2,0x0004003d,0x00000006,0x000006f3,0x000006f2, + 0x000500b7,0x00000048,0x000006f4,0x000006f3,0x0000009d,0x000400a8,0x00000048,0x000006f5, + 0x000006f4,0x000300f7,0x000006fc,0x00000000,0x000400fa,0x000006f5,0x000006f6,0x000006fc, + 0x000200f8,0x000006f6,0x00050051,0x00000006,0x00000704,0x000006f1,0x00000000,0x000500bc, + 0x00000048,0x00000713,0x00000704,0x00000072,0x000300f7,0x0000071d,0x00000000,0x000400fa, + 0x00000713,0x00000714,0x00000717,0x000200f8,0x00000714,0x00050085,0x00000006,0x00000716, + 0x00000704,0x0000004d,0x000200f9,0x0000071d,0x000200f8,0x00000717,0x0006000c,0x00000006, + 0x00000719,0x00000001,0x00000004,0x00000704,0x0007000c,0x00000006,0x0000071a,0x00000001, + 0x0000001a,0x00000719,0x0000007b,0x0008000c,0x00000006,0x0000071c,0x00000001,0x00000032, + 0x0000071a,0x00000054,0x0000080e,0x000200f9,0x0000071d,0x000200f8,0x0000071d,0x000700f5, + 0x00000006,0x00000824,0x00000716,0x00000714,0x0000071c,0x00000717,0x00050051,0x00000006, + 0x00000708,0x000006f1,0x00000001,0x000500bc,0x00000048,0x00000722,0x00000708,0x00000072, + 0x000300f7,0x0000072c,0x00000000,0x000400fa,0x00000722,0x00000723,0x00000726,0x000200f8, + 0x00000723,0x00050085,0x00000006,0x00000725,0x00000708,0x0000004d,0x000200f9,0x0000072c, + 0x000200f8,0x00000726,0x0006000c,0x00000006,0x00000728,0x00000001,0x00000004,0x00000708, + 0x0007000c,0x00000006,0x00000729,0x00000001,0x0000001a,0x00000728,0x0000007b,0x0008000c, + 0x00000006,0x0000072b,0x00000001,0x00000032,0x00000729,0x00000054,0x0000080e,0x000200f9, + 0x0000072c,0x000200f8,0x0000072c,0x000700f5,0x00000006,0x00000826,0x00000725,0x00000723, + 0x0000072b,0x00000726,0x00050051,0x00000006,0x0000070c,0x000006f1,0x00000002,0x000500bc, + 0x00000048,0x00000731,0x0000070c,0x00000072,0x000300f7,0x0000073b,0x00000000,0x000400fa, + 0x00000731,0x00000732,0x00000735,0x000200f8,0x00000732,0x00050085,0x00000006,0x00000734, + 0x0000070c,0x0000004d,0x000200f9,0x0000073b,0x000200f8,0x00000735,0x0006000c,0x00000006, + 0x00000737,0x00000001,0x00000004,0x0000070c,0x0007000c,0x00000006,0x00000738,0x00000001, + 0x0000001a,0x00000737,0x0000007b,0x0008000c,0x00000006,0x0000073a,0x00000001,0x00000032, + 0x00000738,0x00000054,0x0000080e,0x000200f9,0x0000073b,0x000200f8,0x0000073b,0x000700f5, + 0x00000006,0x00000828,0x00000734,0x00000732,0x0000073a,0x00000735,0x00060050,0x0000000c, + 0x00000848,0x00000824,0x00000826,0x00000828,0x0008000c,0x0000000c,0x000006fb,0x00000001, + 0x0000002b,0x00000848,0x0000009e,0x00000804,0x000200f9,0x000006fc,0x000200f8,0x000006fc, + 0x000700f5,0x0000000c,0x0000082a,0x000006f1,0x0000039e,0x000006fb,0x0000073b,0x00050051, + 0x00000006,0x000003ac,0x0000082a,0x00000000,0x00050051,0x00000006,0x000003ae,0x0000082a, + 0x00000001,0x00050051,0x00000006,0x000003b0,0x0000082a,0x00000002,0x00050051,0x00000006, + 0x000003b2,0x00000823,0x00000003,0x00070050,0x00000023,0x00000805,0x000003ac,0x000003ae, + 0x000003b0,0x000003b2,0x000200f9,0x000003b7,0x000200f8,0x000003b4,0x0008004f,0x0000000c, + 0x00000741,0x00000823,0x00000823,0x00000000,0x00000001,0x00000002,0x00050041,0x000000bc, + 0x00000742,0x000000b9,0x00000292,0x0004003d,0x00000006,0x00000743,0x00000742,0x0005008e, + 0x0000000c,0x00000744,0x00000741,0x00000743,0x00050051,0x00000006,0x00000746,0x00000744, + 0x00000000,0x00050051,0x00000006,0x00000748,0x00000744,0x00000001,0x00050051,0x00000006, + 0x0000074a,0x00000744,0x00000002,0x00050051,0x00000006,0x0000074c,0x00000823,0x00000003, + 0x00070050,0x00000023,0x00000800,0x00000746,0x00000748,0x0000074a,0x0000074c,0x000200f9, + 0x000003b7,0x000200f8,0x000003b7,0x000700f5,0x00000023,0x00000847,0x00000805,0x000006fc, + 0x00000800,0x000003b4,0x000200f9,0x000003b8,0x000200f8,0x000003b8,0x000700f5,0x00000023, + 0x00000846,0x00000809,0x000006a9,0x00000847,0x000003b7,0x000200f9,0x000003b9,0x000200f8, + 0x000003b9,0x000700f5,0x00000023,0x00000845,0x0000080c,0x00000652,0x00000846,0x000003b8, + 0x00050085,0x00000023,0x000003bd,0x00000845,0x00000344,0x0003003e,0x00000347,0x000003bd, + 0x000100fd,0x00010038 }; diff --git a/src/render/vulkan/VULKAN_PixelShader_Advanced_YUV.h b/src/render/vulkan/VULKAN_PixelShader_Advanced_YUV.h deleted file mode 100644 index 4a8a12e476..0000000000 --- a/src/render/vulkan/VULKAN_PixelShader_Advanced_YUV.h +++ /dev/null @@ -1,415 +0,0 @@ - // 1114.0.0 - #pragma once -static const uint32_t VULKAN_PixelShader_Advanced_YUV[] = { - 0x07230203,0x00010000,0x0008000b,0x0000069b,0x00000000,0x00020011,0x00000001,0x0006000b, - 0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001, - 0x0008000f,0x00000004,0x00000004,0x6e69616d,0x00000000,0x00000290,0x00000293,0x00000297, - 0x00030010,0x00000004,0x00000007,0x00030003,0x00000005,0x000001f4,0x00040005,0x00000004, - 0x6e69616d,0x00000000,0x00050005,0x000000b7,0x736e6f43,0x746e6174,0x00000073,0x00070006, - 0x000000b7,0x00000000,0x47526373,0x756f5f42,0x74757074,0x00000000,0x00070006,0x000000b7, - 0x00000001,0x74786574,0x5f657275,0x65707974,0x00000000,0x00060006,0x000000b7,0x00000002, - 0x75706e69,0x79745f74,0x00006570,0x00060006,0x000000b7,0x00000003,0x6f6c6f63,0x63735f72, - 0x00656c61,0x00060006,0x000000b7,0x00000004,0x65786574,0x69735f6c,0x0000657a,0x00070006, - 0x000000b7,0x00000005,0x656e6f74,0x5f70616d,0x6874656d,0x0000646f,0x00070006,0x000000b7, - 0x00000006,0x656e6f74,0x5f70616d,0x74636166,0x0031726f,0x00070006,0x000000b7,0x00000007, - 0x656e6f74,0x5f70616d,0x74636166,0x0032726f,0x00070006,0x000000b7,0x00000008,0x5f726473, - 0x74696877,0x6f705f65,0x00746e69,0x00030005,0x000000b9,0x00000000,0x00050005,0x00000124, - 0x74786574,0x30657275,0x00000000,0x00050005,0x0000012b,0x74786574,0x31657275,0x00000000, - 0x00050005,0x00000290,0x75706e69,0x65742e74,0x00000078,0x00050005,0x00000293,0x75706e69, - 0x6f632e74,0x00726f6c,0x00070005,0x00000297,0x746e6540,0x6f507972,0x4f746e69,0x75707475, - 0x00000074,0x00050048,0x000000b7,0x00000000,0x00000023,0x00000000,0x00050048,0x000000b7, - 0x00000001,0x00000023,0x00000004,0x00050048,0x000000b7,0x00000002,0x00000023,0x00000008, - 0x00050048,0x000000b7,0x00000003,0x00000023,0x0000000c,0x00050048,0x000000b7,0x00000004, - 0x00000023,0x00000010,0x00050048,0x000000b7,0x00000005,0x00000023,0x00000020,0x00050048, - 0x000000b7,0x00000006,0x00000023,0x00000024,0x00050048,0x000000b7,0x00000007,0x00000023, - 0x00000028,0x00050048,0x000000b7,0x00000008,0x00000023,0x0000002c,0x00030047,0x000000b7, - 0x00000002,0x00040047,0x000000b9,0x00000022,0x00000000,0x00040047,0x000000b9,0x00000021, - 0x00000000,0x00040047,0x00000124,0x00000022,0x00000000,0x00040047,0x00000124,0x00000021, - 0x00000001,0x00040047,0x0000012b,0x00000022,0x00000000,0x00040047,0x0000012b,0x00000021, - 0x00000002,0x00040047,0x00000290,0x0000001e,0x00000000,0x00040047,0x00000293,0x0000001e, - 0x00000001,0x00040047,0x00000297,0x0000001e,0x00000000,0x00020013,0x00000002,0x00030021, - 0x00000003,0x00000002,0x00030016,0x00000006,0x00000020,0x00040017,0x0000000c,0x00000006, - 0x00000003,0x00040017,0x00000021,0x00000006,0x00000002,0x00040017,0x00000023,0x00000006, - 0x00000004,0x0004002b,0x00000006,0x00000047,0x3d25aee6,0x00020014,0x00000048,0x0004002b, - 0x00000006,0x0000004d,0x414eb852,0x0004002b,0x00000006,0x00000051,0x3d6147ae,0x0004002b, - 0x00000006,0x00000054,0x3f870a3d,0x0004002b,0x00000006,0x00000056,0x4019999a,0x0004002b, - 0x00000006,0x00000072,0x3b4d2e1c,0x0004002b,0x00000006,0x0000007b,0x3ed55555,0x0004002b, - 0x00000006,0x00000097,0x3c4fcdac,0x0006002c,0x0000000c,0x00000098,0x00000097,0x00000097, - 0x00000097,0x0004002b,0x00000006,0x0000009a,0x3f560000,0x0004002b,0x00000006,0x0000009d, - 0x00000000,0x0006002c,0x0000000c,0x0000009e,0x0000009d,0x0000009d,0x0000009d,0x0004002b, - 0x00000006,0x000000a1,0x4196d000,0x0004002b,0x00000006,0x000000a2,0x41958000,0x0004002b, - 0x00000006,0x000000a9,0x461c4000,0x0004002b,0x00000006,0x000000ae,0x40c8e06b,0x0006002c, - 0x0000000c,0x000000af,0x000000ae,0x000000ae,0x000000ae,0x000b001e,0x000000b7,0x00000006, - 0x00000006,0x00000006,0x00000006,0x00000023,0x00000006,0x00000006,0x00000006,0x00000006, - 0x00040020,0x000000b8,0x00000002,0x000000b7,0x0004003b,0x000000b8,0x000000b9,0x00000002, - 0x00040015,0x000000ba,0x00000020,0x00000001,0x0004002b,0x000000ba,0x000000bb,0x00000008, - 0x00040020,0x000000bc,0x00000002,0x00000006,0x0004002b,0x000000ba,0x000000c3,0x00000005, - 0x0004002b,0x00000006,0x000000c6,0x3f800000,0x0004002b,0x000000ba,0x000000ca,0x00000006, - 0x0004002b,0x00000006,0x000000d2,0x40000000,0x0004002b,0x000000ba,0x000000d6,0x00000002, - 0x00040018,0x000000dd,0x0000000c,0x00000003,0x0004002b,0x00000006,0x000000de,0x3f209d8c, - 0x0004002b,0x00000006,0x000000df,0x3ea897c8,0x0004002b,0x00000006,0x000000e0,0x3d3168f9, - 0x0006002c,0x0000000c,0x000000e1,0x000000de,0x000000df,0x000000e0,0x0004002b,0x00000006, - 0x000000e2,0x3d8d82ba,0x0004002b,0x00000006,0x000000e3,0x3f6b670a,0x0004002b,0x00000006, - 0x000000e4,0x3c3a27af,0x0006002c,0x0000000c,0x000000e5,0x000000e2,0x000000e3,0x000000e4, - 0x0004002b,0x00000006,0x000000e6,0x3c86466b,0x0004002b,0x00000006,0x000000e7,0x3db44029, - 0x0004002b,0x00000006,0x000000e8,0x3f6545b7,0x0006002c,0x0000000c,0x000000e9,0x000000e6, - 0x000000e7,0x000000e8,0x0006002c,0x000000dd,0x000000ea,0x000000e1,0x000000e5,0x000000e9, - 0x0004002b,0x000000ba,0x000000ff,0x00000007,0x0004002b,0x00000006,0x0000010f,0x3fd48b22, - 0x0004002b,0x00000006,0x00000110,0xbf1670a0,0x0004002b,0x00000006,0x00000111,0xbd952d23, - 0x0006002c,0x0000000c,0x00000112,0x0000010f,0x00000110,0x00000111,0x0004002b,0x00000006, - 0x00000113,0xbdff127f,0x0004002b,0x00000006,0x00000114,0x3f9102b4,0x0004002b,0x00000006, - 0x00000115,0xbc08c60d,0x0006002c,0x0000000c,0x00000116,0x00000113,0x00000114,0x00000115, - 0x0004002b,0x00000006,0x00000117,0xbc94b7b3,0x0004002b,0x00000006,0x00000118,0xbdce05cd, - 0x0004002b,0x00000006,0x00000119,0x3f8f333c,0x0006002c,0x0000000c,0x0000011a,0x00000117, - 0x00000118,0x00000119,0x0006002c,0x000000dd,0x0000011b,0x00000112,0x00000116,0x0000011a, - 0x00090019,0x00000121,0x00000006,0x00000001,0x00000000,0x00000000,0x00000000,0x00000001, - 0x00000000,0x0003001b,0x00000122,0x00000121,0x00040020,0x00000123,0x00000000,0x00000122, - 0x0004003b,0x00000123,0x00000124,0x00000000,0x0004002b,0x00000006,0x00000129,0x437f0000, - 0x0004003b,0x00000123,0x0000012b,0x00000000,0x0004002b,0x00000006,0x0000012e,0x3f000000, - 0x0004002b,0x000000ba,0x00000138,0x00000004,0x00040020,0x00000139,0x00000002,0x00000023, - 0x0004002b,0x00000006,0x00000186,0x3727c5ac,0x0005002c,0x00000021,0x00000187,0x00000186, - 0x00000186,0x0005002c,0x00000021,0x00000188,0x000000c6,0x000000c6,0x0004002b,0x000000ba, - 0x000001a6,0x00000001,0x0004002b,0x00000006,0x000001b4,0x40400000,0x0004002b,0x00000006, - 0x000001bf,0x40800000,0x0004002b,0x00000006,0x000001ca,0x40a00000,0x0004002b,0x000000ba, - 0x000001e2,0x00000003,0x0004002b,0x000000ba,0x000001f2,0x00000000,0x00040020,0x0000028b, - 0x00000001,0x00000023,0x00040020,0x0000028f,0x00000001,0x00000021,0x0004003b,0x0000028f, - 0x00000290,0x00000001,0x0004003b,0x0000028b,0x00000293,0x00000001,0x00040020,0x00000296, - 0x00000003,0x00000023,0x0004003b,0x00000296,0x00000297,0x00000003,0x0005002c,0x00000021, - 0x00000650,0x0000012e,0x0000012e,0x0004002b,0x00000006,0x00000651,0x3b800000,0x0006002c, - 0x0000000c,0x00000652,0x0000009a,0x0000009a,0x0000009a,0x0006002c,0x0000000c,0x00000653, - 0x000000a1,0x000000a1,0x000000a1,0x0006002c,0x0000000c,0x00000658,0x000000c6,0x000000c6, - 0x000000c6,0x0004002b,0x00000006,0x0000065e,0x3f72a76f,0x0004002b,0x00000006,0x0000065f, - 0x3d9e8391,0x0007002c,0x00000023,0x00000661,0x000000c6,0x0000009d,0x000000c6,0x000000c6, - 0x0004002b,0x00000006,0x00000662,0xbd6147ae,0x00030001,0x00000023,0x0000069a,0x00050036, - 0x00000002,0x00000004,0x00000000,0x00000003,0x000200f8,0x00000005,0x0004003d,0x00000021, - 0x00000291,0x00000290,0x0004003d,0x00000023,0x00000294,0x00000293,0x00050041,0x000000bc, - 0x00000316,0x000000b9,0x000001a6,0x0004003d,0x00000006,0x00000317,0x00000316,0x000500b4, - 0x00000048,0x00000318,0x00000317,0x000000c6,0x000300f7,0x00000340,0x00000000,0x000400fa, - 0x00000318,0x00000319,0x0000031e,0x000200f8,0x00000319,0x0004003d,0x00000122,0x0000031a, - 0x00000124,0x00050057,0x00000023,0x0000031d,0x0000031a,0x00000291,0x000200f9,0x00000340, - 0x000200f8,0x0000031e,0x00050041,0x000000bc,0x0000031f,0x000000b9,0x000001a6,0x0004003d, - 0x00000006,0x00000320,0x0000031f,0x000500b4,0x00000048,0x00000321,0x00000320,0x000001b4, - 0x000300f7,0x0000033f,0x00000000,0x000400fa,0x00000321,0x00000322,0x00000326,0x000200f8, - 0x00000322,0x0004003d,0x00000122,0x00000345,0x00000124,0x00050057,0x00000023,0x00000347, - 0x00000345,0x00000291,0x00050051,0x00000006,0x00000348,0x00000347,0x00000000,0x0004003d, - 0x00000122,0x0000034a,0x0000012b,0x0008000c,0x00000006,0x0000034c,0x00000001,0x00000032, - 0x00000348,0x00000129,0x0000012e,0x00050085,0x00000006,0x0000034d,0x0000034c,0x00000651, - 0x00050050,0x00000021,0x0000034e,0x0000034d,0x0000012e,0x00050057,0x00000023,0x0000034f, - 0x0000034a,0x0000034e,0x000200f9,0x0000033f,0x000200f8,0x00000326,0x00050041,0x000000bc, - 0x00000327,0x000000b9,0x000001a6,0x0004003d,0x00000006,0x00000328,0x00000327,0x000500b4, - 0x00000048,0x00000329,0x00000328,0x000001bf,0x000300f7,0x0000033e,0x00000000,0x000400fa, - 0x00000329,0x0000032a,0x0000032e,0x000200f8,0x0000032a,0x00050041,0x00000139,0x0000035e, - 0x000000b9,0x00000138,0x0004003d,0x00000023,0x0000035f,0x0000035e,0x0007004f,0x00000021, - 0x00000360,0x0000035f,0x0000035f,0x00000002,0x00000003,0x0008000c,0x00000021,0x00000363, - 0x00000001,0x00000032,0x00000291,0x00000360,0x00000650,0x0006000c,0x00000021,0x00000365, - 0x00000001,0x00000008,0x00000363,0x00050083,0x00000021,0x00000367,0x00000365,0x00000650, - 0x00050041,0x00000139,0x00000368,0x000000b9,0x00000138,0x0004003d,0x00000023,0x00000369, - 0x00000368,0x0007004f,0x00000021,0x0000036a,0x00000369,0x00000369,0x00000000,0x00000001, - 0x00050085,0x00000021,0x0000036b,0x00000367,0x0000036a,0x0006000c,0x00000021,0x0000036d, - 0x00000001,0x00000008,0x00000363,0x00050081,0x00000021,0x0000036f,0x0000036d,0x00000650, - 0x00050041,0x00000139,0x00000370,0x000000b9,0x00000138,0x0004003d,0x00000023,0x00000371, - 0x00000370,0x0007004f,0x00000021,0x00000372,0x00000371,0x00000371,0x00000000,0x00000001, - 0x00050085,0x00000021,0x00000373,0x0000036f,0x00000372,0x00050051,0x00000006,0x00000374, - 0x0000036b,0x00000000,0x00050051,0x00000006,0x00000375,0x0000036b,0x00000001,0x00050051, - 0x00000006,0x00000376,0x00000373,0x00000000,0x00050051,0x00000006,0x00000377,0x00000373, - 0x00000001,0x00070050,0x00000023,0x00000378,0x00000374,0x00000375,0x00000376,0x00000377, - 0x0006000c,0x00000021,0x0000037a,0x00000001,0x0000000a,0x00000363,0x0007004f,0x00000021, - 0x0000037c,0x00000378,0x00000378,0x00000000,0x00000001,0x0004003d,0x00000122,0x0000039a, - 0x00000124,0x00050057,0x00000023,0x0000039c,0x0000039a,0x0000037c,0x00050051,0x00000006, - 0x0000039d,0x0000039c,0x00000000,0x0004003d,0x00000122,0x0000039f,0x0000012b,0x0008000c, - 0x00000006,0x000003a1,0x00000001,0x00000032,0x0000039d,0x00000129,0x0000012e,0x00050085, - 0x00000006,0x000003a2,0x000003a1,0x00000651,0x00050050,0x00000021,0x000003a3,0x000003a2, - 0x0000012e,0x00050057,0x00000023,0x000003a4,0x0000039f,0x000003a3,0x0007004f,0x00000021, - 0x0000037f,0x00000378,0x00000378,0x00000000,0x00000003,0x0004003d,0x00000122,0x000003a8, - 0x00000124,0x00050057,0x00000023,0x000003aa,0x000003a8,0x0000037f,0x00050051,0x00000006, - 0x000003ab,0x000003aa,0x00000000,0x0004003d,0x00000122,0x000003ad,0x0000012b,0x0008000c, - 0x00000006,0x000003af,0x00000001,0x00000032,0x000003ab,0x00000129,0x0000012e,0x00050085, - 0x00000006,0x000003b0,0x000003af,0x00000651,0x00050050,0x00000021,0x000003b1,0x000003b0, - 0x0000012e,0x00050057,0x00000023,0x000003b2,0x000003ad,0x000003b1,0x0007004f,0x00000021, - 0x00000382,0x00000378,0x00000378,0x00000002,0x00000001,0x0004003d,0x00000122,0x000003b6, - 0x00000124,0x00050057,0x00000023,0x000003b8,0x000003b6,0x00000382,0x00050051,0x00000006, - 0x000003b9,0x000003b8,0x00000000,0x0004003d,0x00000122,0x000003bb,0x0000012b,0x0008000c, - 0x00000006,0x000003bd,0x00000001,0x00000032,0x000003b9,0x00000129,0x0000012e,0x00050085, - 0x00000006,0x000003be,0x000003bd,0x00000651,0x00050050,0x00000021,0x000003bf,0x000003be, - 0x0000012e,0x00050057,0x00000023,0x000003c0,0x000003bb,0x000003bf,0x0007004f,0x00000021, - 0x00000385,0x00000378,0x00000378,0x00000002,0x00000003,0x0004003d,0x00000122,0x000003c4, - 0x00000124,0x00050057,0x00000023,0x000003c6,0x000003c4,0x00000385,0x00050051,0x00000006, - 0x000003c7,0x000003c6,0x00000000,0x0004003d,0x00000122,0x000003c9,0x0000012b,0x0008000c, - 0x00000006,0x000003cb,0x00000001,0x00000032,0x000003c7,0x00000129,0x0000012e,0x00050085, - 0x00000006,0x000003cc,0x000003cb,0x00000651,0x00050050,0x00000021,0x000003cd,0x000003cc, - 0x0000012e,0x00050057,0x00000023,0x000003ce,0x000003c9,0x000003cd,0x00050051,0x00000006, - 0x0000038a,0x0000037a,0x00000001,0x00070050,0x00000023,0x0000038b,0x0000038a,0x0000038a, - 0x0000038a,0x0000038a,0x0008000c,0x00000023,0x0000038c,0x00000001,0x0000002e,0x000003a4, - 0x000003b2,0x0000038b,0x00050051,0x00000006,0x00000390,0x0000037a,0x00000001,0x00070050, - 0x00000023,0x00000391,0x00000390,0x00000390,0x00000390,0x00000390,0x0008000c,0x00000023, - 0x00000392,0x00000001,0x0000002e,0x000003c0,0x000003ce,0x00000391,0x00050051,0x00000006, - 0x00000394,0x0000037a,0x00000000,0x00070050,0x00000023,0x00000395,0x00000394,0x00000394, - 0x00000394,0x00000394,0x0008000c,0x00000023,0x00000396,0x00000001,0x0000002e,0x0000038c, - 0x00000392,0x00000395,0x000200f9,0x0000033e,0x000200f8,0x0000032e,0x00050041,0x000000bc, - 0x0000032f,0x000000b9,0x000001a6,0x0004003d,0x00000006,0x00000330,0x0000032f,0x000500b4, - 0x00000048,0x00000331,0x00000330,0x000001ca,0x000300f7,0x0000033d,0x00000000,0x000400fa, - 0x00000331,0x00000332,0x00000338,0x000200f8,0x00000332,0x000400d1,0x00000021,0x000003d5, - 0x00000291,0x00050041,0x00000139,0x000003d6,0x000000b9,0x00000138,0x0004003d,0x00000023, - 0x000003d7,0x000003d6,0x0007004f,0x00000021,0x000003d8,0x000003d7,0x000003d7,0x00000002, - 0x00000003,0x00050085,0x00000021,0x000003d9,0x000003d5,0x000003d8,0x0008000c,0x00000021, - 0x000003da,0x00000001,0x0000002b,0x000003d9,0x00000187,0x00000188,0x00050041,0x00000139, - 0x000003dc,0x000000b9,0x00000138,0x0004003d,0x00000023,0x000003dd,0x000003dc,0x0007004f, - 0x00000021,0x000003de,0x000003dd,0x000003dd,0x00000002,0x00000003,0x0005008e,0x00000021, - 0x000003e1,0x000003da,0x0000012e,0x0004007f,0x00000021,0x0000064f,0x000003e1,0x0008000c, - 0x00000021,0x000003e2,0x00000001,0x00000032,0x00000291,0x000003de,0x0000064f,0x00050083, - 0x00000021,0x000003e5,0x00000188,0x000003da,0x0006000c,0x00000021,0x000003e7,0x00000001, - 0x0000000a,0x000003e2,0x0008000c,0x00000021,0x000003e8,0x00000001,0x00000031,0x000003e5, - 0x00000188,0x000003e7,0x0006000c,0x00000021,0x000003ea,0x00000001,0x00000008,0x000003e2, - 0x00050081,0x00000021,0x000003ec,0x000003ea,0x00000650,0x00050081,0x00000021,0x000003ee, - 0x000003ec,0x000003e8,0x00050041,0x00000139,0x000003ef,0x000000b9,0x00000138,0x0004003d, - 0x00000023,0x000003f0,0x000003ef,0x0007004f,0x00000021,0x000003f1,0x000003f0,0x000003f0, - 0x00000000,0x00000001,0x00050085,0x00000021,0x000003f2,0x000003ee,0x000003f1,0x00050041, - 0x00000139,0x00000401,0x000000b9,0x00000138,0x0004003d,0x00000023,0x00000402,0x00000401, - 0x0007004f,0x00000021,0x00000403,0x00000402,0x00000402,0x00000002,0x00000003,0x0008000c, - 0x00000021,0x00000406,0x00000001,0x00000032,0x000003f2,0x00000403,0x00000650,0x0006000c, - 0x00000021,0x00000408,0x00000001,0x00000008,0x00000406,0x00050083,0x00000021,0x0000040a, - 0x00000408,0x00000650,0x00050041,0x00000139,0x0000040b,0x000000b9,0x00000138,0x0004003d, - 0x00000023,0x0000040c,0x0000040b,0x0007004f,0x00000021,0x0000040d,0x0000040c,0x0000040c, - 0x00000000,0x00000001,0x00050085,0x00000021,0x0000040e,0x0000040a,0x0000040d,0x0006000c, - 0x00000021,0x00000410,0x00000001,0x00000008,0x00000406,0x00050081,0x00000021,0x00000412, - 0x00000410,0x00000650,0x00050041,0x00000139,0x00000413,0x000000b9,0x00000138,0x0004003d, - 0x00000023,0x00000414,0x00000413,0x0007004f,0x00000021,0x00000415,0x00000414,0x00000414, - 0x00000000,0x00000001,0x00050085,0x00000021,0x00000416,0x00000412,0x00000415,0x00050051, - 0x00000006,0x00000417,0x0000040e,0x00000000,0x00050051,0x00000006,0x00000418,0x0000040e, - 0x00000001,0x00050051,0x00000006,0x00000419,0x00000416,0x00000000,0x00050051,0x00000006, - 0x0000041a,0x00000416,0x00000001,0x00070050,0x00000023,0x0000041b,0x00000417,0x00000418, - 0x00000419,0x0000041a,0x0006000c,0x00000021,0x0000041d,0x00000001,0x0000000a,0x00000406, - 0x0007004f,0x00000021,0x0000041f,0x0000041b,0x0000041b,0x00000000,0x00000001,0x0004003d, - 0x00000122,0x0000043d,0x00000124,0x00050057,0x00000023,0x0000043f,0x0000043d,0x0000041f, - 0x00050051,0x00000006,0x00000440,0x0000043f,0x00000000,0x0004003d,0x00000122,0x00000442, - 0x0000012b,0x0008000c,0x00000006,0x00000444,0x00000001,0x00000032,0x00000440,0x00000129, - 0x0000012e,0x00050085,0x00000006,0x00000445,0x00000444,0x00000651,0x00050050,0x00000021, - 0x00000446,0x00000445,0x0000012e,0x00050057,0x00000023,0x00000447,0x00000442,0x00000446, - 0x0007004f,0x00000021,0x00000422,0x0000041b,0x0000041b,0x00000000,0x00000003,0x0004003d, - 0x00000122,0x0000044b,0x00000124,0x00050057,0x00000023,0x0000044d,0x0000044b,0x00000422, - 0x00050051,0x00000006,0x0000044e,0x0000044d,0x00000000,0x0004003d,0x00000122,0x00000450, - 0x0000012b,0x0008000c,0x00000006,0x00000452,0x00000001,0x00000032,0x0000044e,0x00000129, - 0x0000012e,0x00050085,0x00000006,0x00000453,0x00000452,0x00000651,0x00050050,0x00000021, - 0x00000454,0x00000453,0x0000012e,0x00050057,0x00000023,0x00000455,0x00000450,0x00000454, - 0x0007004f,0x00000021,0x00000425,0x0000041b,0x0000041b,0x00000002,0x00000001,0x0004003d, - 0x00000122,0x00000459,0x00000124,0x00050057,0x00000023,0x0000045b,0x00000459,0x00000425, - 0x00050051,0x00000006,0x0000045c,0x0000045b,0x00000000,0x0004003d,0x00000122,0x0000045e, - 0x0000012b,0x0008000c,0x00000006,0x00000460,0x00000001,0x00000032,0x0000045c,0x00000129, - 0x0000012e,0x00050085,0x00000006,0x00000461,0x00000460,0x00000651,0x00050050,0x00000021, - 0x00000462,0x00000461,0x0000012e,0x00050057,0x00000023,0x00000463,0x0000045e,0x00000462, - 0x0007004f,0x00000021,0x00000428,0x0000041b,0x0000041b,0x00000002,0x00000003,0x0004003d, - 0x00000122,0x00000467,0x00000124,0x00050057,0x00000023,0x00000469,0x00000467,0x00000428, - 0x00050051,0x00000006,0x0000046a,0x00000469,0x00000000,0x0004003d,0x00000122,0x0000046c, - 0x0000012b,0x0008000c,0x00000006,0x0000046e,0x00000001,0x00000032,0x0000046a,0x00000129, - 0x0000012e,0x00050085,0x00000006,0x0000046f,0x0000046e,0x00000651,0x00050050,0x00000021, - 0x00000470,0x0000046f,0x0000012e,0x00050057,0x00000023,0x00000471,0x0000046c,0x00000470, - 0x00050051,0x00000006,0x0000042d,0x0000041d,0x00000001,0x00070050,0x00000023,0x0000042e, - 0x0000042d,0x0000042d,0x0000042d,0x0000042d,0x0008000c,0x00000023,0x0000042f,0x00000001, - 0x0000002e,0x00000447,0x00000455,0x0000042e,0x00050051,0x00000006,0x00000433,0x0000041d, - 0x00000001,0x00070050,0x00000023,0x00000434,0x00000433,0x00000433,0x00000433,0x00000433, - 0x0008000c,0x00000023,0x00000435,0x00000001,0x0000002e,0x00000463,0x00000471,0x00000434, - 0x00050051,0x00000006,0x00000437,0x0000041d,0x00000000,0x00070050,0x00000023,0x00000438, - 0x00000437,0x00000437,0x00000437,0x00000437,0x0008000c,0x00000023,0x00000439,0x00000001, - 0x0000002e,0x0000042f,0x00000435,0x00000438,0x000200f9,0x0000033d,0x000200f8,0x00000338, - 0x000200f9,0x0000033d,0x000200f8,0x0000033d,0x000700f5,0x00000023,0x00000666,0x00000439, - 0x00000332,0x00000661,0x00000338,0x000200f9,0x0000033e,0x000200f8,0x0000033e,0x000700f5, - 0x00000023,0x00000665,0x00000396,0x0000032a,0x00000666,0x0000033d,0x000200f9,0x0000033f, - 0x000200f8,0x0000033f,0x000700f5,0x00000023,0x00000664,0x0000034f,0x00000322,0x00000665, - 0x0000033e,0x000200f9,0x00000340,0x000200f8,0x00000340,0x000700f5,0x00000023,0x00000663, - 0x0000031d,0x00000319,0x00000664,0x0000033f,0x00050041,0x000000bc,0x000002ad,0x000000b9, - 0x000000d6,0x0004003d,0x00000006,0x000002ae,0x000002ad,0x000500b4,0x00000048,0x000002af, - 0x000002ae,0x000001b4,0x000300f7,0x000002ba,0x00000000,0x000400fa,0x000002af,0x000002b0, - 0x000002ba,0x000200f8,0x000002b0,0x0008004f,0x0000000c,0x000002b2,0x00000663,0x00000663, - 0x00000000,0x00000001,0x00000002,0x0006000c,0x0000000c,0x00000480,0x00000001,0x00000004, - 0x000002b2,0x0007000c,0x0000000c,0x00000481,0x00000001,0x0000001a,0x00000480,0x00000098, - 0x00050083,0x0000000c,0x00000483,0x00000481,0x00000652,0x0007000c,0x0000000c,0x00000484, - 0x00000001,0x00000028,0x00000483,0x0000009e,0x0006000c,0x0000000c,0x00000486,0x00000001, - 0x00000004,0x000002b2,0x0007000c,0x0000000c,0x00000487,0x00000001,0x0000001a,0x00000486, - 0x00000098,0x0005008e,0x0000000c,0x00000488,0x00000487,0x000000a2,0x00050083,0x0000000c, - 0x0000048a,0x00000653,0x00000488,0x00050088,0x0000000c,0x0000048d,0x00000484,0x0000048a, - 0x0006000c,0x0000000c,0x0000048e,0x00000001,0x00000004,0x0000048d,0x0007000c,0x0000000c, - 0x0000048f,0x00000001,0x0000001a,0x0000048e,0x000000af,0x0005008e,0x0000000c,0x00000490, - 0x0000048f,0x000000a9,0x00050041,0x000000bc,0x00000477,0x000000b9,0x000000bb,0x0004003d, - 0x00000006,0x00000478,0x00000477,0x00060050,0x0000000c,0x00000479,0x00000478,0x00000478, - 0x00000478,0x00050088,0x0000000c,0x0000047a,0x00000490,0x00000479,0x00050051,0x00000006, - 0x000002b5,0x0000047a,0x00000000,0x00060052,0x00000023,0x000005fb,0x000002b5,0x00000663, - 0x00000000,0x00050051,0x00000006,0x000002b7,0x0000047a,0x00000001,0x00060052,0x00000023, - 0x000005fd,0x000002b7,0x000005fb,0x00000001,0x00050051,0x00000006,0x000002b9,0x0000047a, - 0x00000002,0x00060052,0x00000023,0x000005ff,0x000002b9,0x000005fd,0x00000002,0x000200f9, - 0x000002ba,0x000200f8,0x000002ba,0x000700f5,0x00000023,0x00000667,0x00000663,0x00000340, - 0x000005ff,0x000002b0,0x00050041,0x000000bc,0x000002bb,0x000000b9,0x000000c3,0x0004003d, - 0x00000006,0x000002bc,0x000002bb,0x000500b7,0x00000048,0x000002bd,0x000002bc,0x0000009d, - 0x000300f7,0x000002c8,0x00000000,0x000400fa,0x000002bd,0x000002be,0x000002c8,0x000200f8, - 0x000002be,0x0008004f,0x0000000c,0x000002c0,0x00000667,0x00000667,0x00000000,0x00000001, - 0x00000002,0x00050041,0x000000bc,0x00000495,0x000000b9,0x000000c3,0x0004003d,0x00000006, - 0x00000496,0x00000495,0x000500b4,0x00000048,0x00000497,0x00000496,0x000000c6,0x000300f7, - 0x000004cb,0x00000000,0x000400fa,0x00000497,0x00000498,0x0000049d,0x000200f8,0x00000498, - 0x00050041,0x000000bc,0x00000499,0x000000b9,0x000000ca,0x0004003d,0x00000006,0x0000049a, - 0x00000499,0x0005008e,0x0000000c,0x0000049c,0x000002c0,0x0000049a,0x000200f9,0x000004cb, - 0x000200f8,0x0000049d,0x00050041,0x000000bc,0x0000049e,0x000000b9,0x000000c3,0x0004003d, - 0x00000006,0x0000049f,0x0000049e,0x000500b4,0x00000048,0x000004a0,0x0000049f,0x000000d2, - 0x000300f7,0x000004ca,0x00000000,0x000400fa,0x000004a0,0x000004a1,0x000004ca,0x000200f8, - 0x000004a1,0x00050041,0x000000bc,0x000004a2,0x000000b9,0x000000d6,0x0004003d,0x00000006, - 0x000004a3,0x000004a2,0x000500b4,0x00000048,0x000004a4,0x000004a3,0x000000d2,0x000300f7, - 0x000004a8,0x00000000,0x000400fa,0x000004a4,0x000004a5,0x000004a8,0x000200f8,0x000004a5, - 0x00050090,0x0000000c,0x000004a7,0x000002c0,0x000000ea,0x000200f9,0x000004a8,0x000200f8, - 0x000004a8,0x000700f5,0x0000000c,0x00000668,0x000002c0,0x000004a1,0x000004a7,0x000004a5, - 0x00050051,0x00000006,0x000004aa,0x00000668,0x00000000,0x00050051,0x00000006,0x000004ac, - 0x00000668,0x00000001,0x00050051,0x00000006,0x000004ae,0x00000668,0x00000002,0x0007000c, - 0x00000006,0x000004af,0x00000001,0x00000028,0x000004ac,0x000004ae,0x0007000c,0x00000006, - 0x000004b0,0x00000001,0x00000028,0x000004aa,0x000004af,0x000500ba,0x00000048,0x000004b2, - 0x000004b0,0x0000009d,0x000300f7,0x000004c2,0x00000000,0x000400fa,0x000004b2,0x000004b3, - 0x000004c2,0x000200f8,0x000004b3,0x00050041,0x000000bc,0x000004b4,0x000000b9,0x000000ca, - 0x0004003d,0x00000006,0x000004b5,0x000004b4,0x0008000c,0x00000006,0x000004b8,0x00000001, - 0x00000032,0x000004b5,0x000004b0,0x000000c6,0x00050041,0x000000bc,0x000004b9,0x000000b9, - 0x000000ff,0x0004003d,0x00000006,0x000004ba,0x000004b9,0x0008000c,0x00000006,0x000004bd, - 0x00000001,0x00000032,0x000004ba,0x000004b0,0x000000c6,0x00050088,0x00000006,0x000004be, - 0x000004b8,0x000004bd,0x0005008e,0x0000000c,0x000004c1,0x00000668,0x000004be,0x000200f9, - 0x000004c2,0x000200f8,0x000004c2,0x000700f5,0x0000000c,0x00000669,0x00000668,0x000004a8, - 0x000004c1,0x000004b3,0x00050041,0x000000bc,0x000004c3,0x000000b9,0x000000d6,0x0004003d, - 0x00000006,0x000004c4,0x000004c3,0x000500b4,0x00000048,0x000004c5,0x000004c4,0x000000d2, - 0x000300f7,0x000004c9,0x00000000,0x000400fa,0x000004c5,0x000004c6,0x000004c9,0x000200f8, - 0x000004c6,0x00050090,0x0000000c,0x000004c8,0x00000669,0x0000011b,0x000200f9,0x000004c9, - 0x000200f8,0x000004c9,0x000700f5,0x0000000c,0x0000066c,0x00000669,0x000004c2,0x000004c8, - 0x000004c6,0x000200f9,0x000004ca,0x000200f8,0x000004ca,0x000700f5,0x0000000c,0x0000066b, - 0x000002c0,0x0000049d,0x0000066c,0x000004c9,0x000200f9,0x000004cb,0x000200f8,0x000004cb, - 0x000700f5,0x0000000c,0x0000066a,0x0000049c,0x00000498,0x0000066b,0x000004ca,0x00050051, - 0x00000006,0x000002c3,0x0000066a,0x00000000,0x00060052,0x00000023,0x00000604,0x000002c3, - 0x00000667,0x00000000,0x00050051,0x00000006,0x000002c5,0x0000066a,0x00000001,0x00060052, - 0x00000023,0x00000606,0x000002c5,0x00000604,0x00000001,0x00050051,0x00000006,0x000002c7, - 0x0000066a,0x00000002,0x00060052,0x00000023,0x00000608,0x000002c7,0x00000606,0x00000002, - 0x000200f9,0x000002c8,0x000200f8,0x000002c8,0x000700f5,0x00000023,0x00000672,0x00000667, - 0x000002ba,0x00000608,0x000004cb,0x00050041,0x000000bc,0x000002c9,0x000000b9,0x000000d6, - 0x0004003d,0x00000006,0x000002ca,0x000002c9,0x000500b4,0x00000048,0x000002cb,0x000002ca, - 0x000000c6,0x000300f7,0x00000309,0x00000000,0x000400fa,0x000002cb,0x000002cc,0x000002d9, - 0x000200f8,0x000002cc,0x0008004f,0x0000000c,0x000002ce,0x00000672,0x00000672,0x00000000, - 0x00000001,0x00000002,0x00050041,0x000000bc,0x000004d1,0x000000b9,0x000001f2,0x0004003d, - 0x00000006,0x000004d2,0x000004d1,0x000500b7,0x00000048,0x000004d3,0x000004d2,0x0000009d, - 0x000300f7,0x000004d7,0x00000000,0x000400fa,0x000004d3,0x000004d4,0x000004d7,0x000200f8, - 0x000004d4,0x00050051,0x00000006,0x000004e3,0x00000672,0x00000000,0x000500bc,0x00000048, - 0x000004f2,0x000004e3,0x00000047,0x000300f7,0x000004fc,0x00000000,0x000400fa,0x000004f2, - 0x000004f3,0x000004f6,0x000200f8,0x000004f3,0x00050085,0x00000006,0x000004f5,0x000004e3, - 0x0000065f,0x000200f9,0x000004fc,0x000200f8,0x000004f6,0x00050081,0x00000006,0x000004f8, - 0x000004e3,0x00000051,0x0006000c,0x00000006,0x000004f9,0x00000001,0x00000004,0x000004f8, - 0x00050085,0x00000006,0x000004fa,0x000004f9,0x0000065e,0x0007000c,0x00000006,0x000004fb, - 0x00000001,0x0000001a,0x000004fa,0x00000056,0x000200f9,0x000004fc,0x000200f8,0x000004fc, - 0x000700f5,0x00000006,0x00000689,0x000004f5,0x000004f3,0x000004fb,0x000004f6,0x00050051, - 0x00000006,0x000004e7,0x00000672,0x00000001,0x000500bc,0x00000048,0x00000501,0x000004e7, - 0x00000047,0x000300f7,0x0000050b,0x00000000,0x000400fa,0x00000501,0x00000502,0x00000505, - 0x000200f8,0x00000502,0x00050085,0x00000006,0x00000504,0x000004e7,0x0000065f,0x000200f9, - 0x0000050b,0x000200f8,0x00000505,0x00050081,0x00000006,0x00000507,0x000004e7,0x00000051, - 0x0006000c,0x00000006,0x00000508,0x00000001,0x00000004,0x00000507,0x00050085,0x00000006, - 0x00000509,0x00000508,0x0000065e,0x0007000c,0x00000006,0x0000050a,0x00000001,0x0000001a, - 0x00000509,0x00000056,0x000200f9,0x0000050b,0x000200f8,0x0000050b,0x000700f5,0x00000006, - 0x0000068b,0x00000504,0x00000502,0x0000050a,0x00000505,0x00050051,0x00000006,0x000004eb, - 0x00000672,0x00000002,0x000500bc,0x00000048,0x00000510,0x000004eb,0x00000047,0x000300f7, - 0x0000051a,0x00000000,0x000400fa,0x00000510,0x00000511,0x00000514,0x000200f8,0x00000511, - 0x00050085,0x00000006,0x00000513,0x000004eb,0x0000065f,0x000200f9,0x0000051a,0x000200f8, - 0x00000514,0x00050081,0x00000006,0x00000516,0x000004eb,0x00000051,0x0006000c,0x00000006, - 0x00000517,0x00000001,0x00000004,0x00000516,0x00050085,0x00000006,0x00000518,0x00000517, - 0x0000065e,0x0007000c,0x00000006,0x00000519,0x00000001,0x0000001a,0x00000518,0x00000056, - 0x000200f9,0x0000051a,0x000200f8,0x0000051a,0x000700f5,0x00000006,0x0000068d,0x00000513, - 0x00000511,0x00000519,0x00000514,0x00060050,0x0000000c,0x00000699,0x00000689,0x0000068b, - 0x0000068d,0x000200f9,0x000004d7,0x000200f8,0x000004d7,0x000700f5,0x0000000c,0x0000068f, - 0x000002ce,0x000002cc,0x00000699,0x0000051a,0x00050041,0x000000bc,0x000004d9,0x000000b9, - 0x000001e2,0x0004003d,0x00000006,0x000004da,0x000004d9,0x0005008e,0x0000000c,0x000004db, - 0x0000068f,0x000004da,0x00050051,0x00000006,0x000002d1,0x000004db,0x00000000,0x00050051, - 0x00000006,0x000002d3,0x000004db,0x00000001,0x00050051,0x00000006,0x000002d5,0x000004db, - 0x00000002,0x00050051,0x00000006,0x000002d7,0x00000672,0x00000003,0x00070050,0x00000023, - 0x00000660,0x000002d1,0x000002d3,0x000002d5,0x000002d7,0x000200f9,0x00000309,0x000200f8, - 0x000002d9,0x00050041,0x000000bc,0x000002da,0x000000b9,0x000000d6,0x0004003d,0x00000006, - 0x000002db,0x000002da,0x000500b4,0x00000048,0x000002dc,0x000002db,0x000000d2,0x000300f7, - 0x00000308,0x00000000,0x000400fa,0x000002dc,0x000002dd,0x000002ea,0x000200f8,0x000002dd, - 0x0008004f,0x0000000c,0x000002df,0x00000672,0x00000672,0x00000000,0x00000001,0x00000002, - 0x00050041,0x000000bc,0x00000521,0x000000b9,0x000001e2,0x0004003d,0x00000006,0x00000522, - 0x00000521,0x0005008e,0x0000000c,0x00000523,0x000002df,0x00000522,0x00050041,0x000000bc, - 0x00000524,0x000000b9,0x000001f2,0x0004003d,0x00000006,0x00000525,0x00000524,0x000500b7, - 0x00000048,0x00000526,0x00000525,0x0000009d,0x000400a8,0x00000048,0x00000527,0x00000526, - 0x000300f7,0x0000052e,0x00000000,0x000400fa,0x00000527,0x00000528,0x0000052e,0x000200f8, - 0x00000528,0x00050051,0x00000006,0x00000536,0x00000523,0x00000000,0x000500bc,0x00000048, - 0x00000545,0x00000536,0x00000072,0x000300f7,0x0000054f,0x00000000,0x000400fa,0x00000545, - 0x00000546,0x00000549,0x000200f8,0x00000546,0x00050085,0x00000006,0x00000548,0x00000536, - 0x0000004d,0x000200f9,0x0000054f,0x000200f8,0x00000549,0x0006000c,0x00000006,0x0000054b, - 0x00000001,0x00000004,0x00000536,0x0007000c,0x00000006,0x0000054c,0x00000001,0x0000001a, - 0x0000054b,0x0000007b,0x0008000c,0x00000006,0x0000054e,0x00000001,0x00000032,0x0000054c, - 0x00000054,0x00000662,0x000200f9,0x0000054f,0x000200f8,0x0000054f,0x000700f5,0x00000006, - 0x0000067e,0x00000548,0x00000546,0x0000054e,0x00000549,0x00050051,0x00000006,0x0000053a, - 0x00000523,0x00000001,0x000500bc,0x00000048,0x00000554,0x0000053a,0x00000072,0x000300f7, - 0x0000055e,0x00000000,0x000400fa,0x00000554,0x00000555,0x00000558,0x000200f8,0x00000555, - 0x00050085,0x00000006,0x00000557,0x0000053a,0x0000004d,0x000200f9,0x0000055e,0x000200f8, - 0x00000558,0x0006000c,0x00000006,0x0000055a,0x00000001,0x00000004,0x0000053a,0x0007000c, - 0x00000006,0x0000055b,0x00000001,0x0000001a,0x0000055a,0x0000007b,0x0008000c,0x00000006, - 0x0000055d,0x00000001,0x00000032,0x0000055b,0x00000054,0x00000662,0x000200f9,0x0000055e, - 0x000200f8,0x0000055e,0x000700f5,0x00000006,0x00000680,0x00000557,0x00000555,0x0000055d, - 0x00000558,0x00050051,0x00000006,0x0000053e,0x00000523,0x00000002,0x000500bc,0x00000048, - 0x00000563,0x0000053e,0x00000072,0x000300f7,0x0000056d,0x00000000,0x000400fa,0x00000563, - 0x00000564,0x00000567,0x000200f8,0x00000564,0x00050085,0x00000006,0x00000566,0x0000053e, - 0x0000004d,0x000200f9,0x0000056d,0x000200f8,0x00000567,0x0006000c,0x00000006,0x00000569, - 0x00000001,0x00000004,0x0000053e,0x0007000c,0x00000006,0x0000056a,0x00000001,0x0000001a, - 0x00000569,0x0000007b,0x0008000c,0x00000006,0x0000056c,0x00000001,0x00000032,0x0000056a, - 0x00000054,0x00000662,0x000200f9,0x0000056d,0x000200f8,0x0000056d,0x000700f5,0x00000006, - 0x00000682,0x00000566,0x00000564,0x0000056c,0x00000567,0x00060050,0x0000000c,0x00000698, - 0x0000067e,0x00000680,0x00000682,0x0008000c,0x0000000c,0x0000052d,0x00000001,0x0000002b, - 0x00000698,0x0000009e,0x00000658,0x000200f9,0x0000052e,0x000200f8,0x0000052e,0x000700f5, - 0x0000000c,0x00000684,0x00000523,0x000002dd,0x0000052d,0x0000056d,0x00050051,0x00000006, - 0x000002e2,0x00000684,0x00000000,0x00050051,0x00000006,0x000002e4,0x00000684,0x00000001, - 0x00050051,0x00000006,0x000002e6,0x00000684,0x00000002,0x00050051,0x00000006,0x000002e8, - 0x00000672,0x00000003,0x00070050,0x00000023,0x0000065d,0x000002e2,0x000002e4,0x000002e6, - 0x000002e8,0x000200f9,0x00000308,0x000200f8,0x000002ea,0x00050041,0x000000bc,0x000002eb, - 0x000000b9,0x000000d6,0x0004003d,0x00000006,0x000002ec,0x000002eb,0x000500b4,0x00000048, - 0x000002ed,0x000002ec,0x000001b4,0x000300f7,0x00000307,0x00000000,0x000400fa,0x000002ed, - 0x000002ee,0x00000304,0x000200f8,0x000002ee,0x0008004f,0x0000000c,0x000002f0,0x00000672, - 0x00000672,0x00000000,0x00000001,0x00000002,0x00050090,0x0000000c,0x000002f1,0x000002f0, - 0x0000011b,0x00050051,0x00000006,0x000002f3,0x000002f1,0x00000000,0x00060052,0x00000023, - 0x0000062e,0x000002f3,0x0000069a,0x00000000,0x00050051,0x00000006,0x000002f5,0x000002f1, - 0x00000001,0x00060052,0x00000023,0x00000630,0x000002f5,0x0000062e,0x00000001,0x00050051, - 0x00000006,0x000002f7,0x000002f1,0x00000002,0x00060052,0x00000023,0x00000632,0x000002f7, - 0x00000630,0x00000002,0x0008004f,0x0000000c,0x000002f9,0x00000632,0x00000632,0x00000000, - 0x00000001,0x00000002,0x00050041,0x000000bc,0x00000574,0x000000b9,0x000001e2,0x0004003d, - 0x00000006,0x00000575,0x00000574,0x0005008e,0x0000000c,0x00000576,0x000002f9,0x00000575, - 0x00050041,0x000000bc,0x00000577,0x000000b9,0x000001f2,0x0004003d,0x00000006,0x00000578, - 0x00000577,0x000500b7,0x00000048,0x00000579,0x00000578,0x0000009d,0x000400a8,0x00000048, - 0x0000057a,0x00000579,0x000300f7,0x00000581,0x00000000,0x000400fa,0x0000057a,0x0000057b, - 0x00000581,0x000200f8,0x0000057b,0x00050051,0x00000006,0x00000589,0x00000576,0x00000000, - 0x000500bc,0x00000048,0x00000598,0x00000589,0x00000072,0x000300f7,0x000005a2,0x00000000, - 0x000400fa,0x00000598,0x00000599,0x0000059c,0x000200f8,0x00000599,0x00050085,0x00000006, - 0x0000059b,0x00000589,0x0000004d,0x000200f9,0x000005a2,0x000200f8,0x0000059c,0x0006000c, - 0x00000006,0x0000059e,0x00000001,0x00000004,0x00000589,0x0007000c,0x00000006,0x0000059f, - 0x00000001,0x0000001a,0x0000059e,0x0000007b,0x0008000c,0x00000006,0x000005a1,0x00000001, - 0x00000032,0x0000059f,0x00000054,0x00000662,0x000200f9,0x000005a2,0x000200f8,0x000005a2, - 0x000700f5,0x00000006,0x00000673,0x0000059b,0x00000599,0x000005a1,0x0000059c,0x00050051, - 0x00000006,0x0000058d,0x00000576,0x00000001,0x000500bc,0x00000048,0x000005a7,0x0000058d, - 0x00000072,0x000300f7,0x000005b1,0x00000000,0x000400fa,0x000005a7,0x000005a8,0x000005ab, - 0x000200f8,0x000005a8,0x00050085,0x00000006,0x000005aa,0x0000058d,0x0000004d,0x000200f9, - 0x000005b1,0x000200f8,0x000005ab,0x0006000c,0x00000006,0x000005ad,0x00000001,0x00000004, - 0x0000058d,0x0007000c,0x00000006,0x000005ae,0x00000001,0x0000001a,0x000005ad,0x0000007b, - 0x0008000c,0x00000006,0x000005b0,0x00000001,0x00000032,0x000005ae,0x00000054,0x00000662, - 0x000200f9,0x000005b1,0x000200f8,0x000005b1,0x000700f5,0x00000006,0x00000675,0x000005aa, - 0x000005a8,0x000005b0,0x000005ab,0x00050051,0x00000006,0x00000591,0x00000576,0x00000002, - 0x000500bc,0x00000048,0x000005b6,0x00000591,0x00000072,0x000300f7,0x000005c0,0x00000000, - 0x000400fa,0x000005b6,0x000005b7,0x000005ba,0x000200f8,0x000005b7,0x00050085,0x00000006, - 0x000005b9,0x00000591,0x0000004d,0x000200f9,0x000005c0,0x000200f8,0x000005ba,0x0006000c, - 0x00000006,0x000005bc,0x00000001,0x00000004,0x00000591,0x0007000c,0x00000006,0x000005bd, - 0x00000001,0x0000001a,0x000005bc,0x0000007b,0x0008000c,0x00000006,0x000005bf,0x00000001, - 0x00000032,0x000005bd,0x00000054,0x00000662,0x000200f9,0x000005c0,0x000200f8,0x000005c0, - 0x000700f5,0x00000006,0x00000677,0x000005b9,0x000005b7,0x000005bf,0x000005ba,0x00060050, - 0x0000000c,0x00000697,0x00000673,0x00000675,0x00000677,0x0008000c,0x0000000c,0x00000580, - 0x00000001,0x0000002b,0x00000697,0x0000009e,0x00000658,0x000200f9,0x00000581,0x000200f8, - 0x00000581,0x000700f5,0x0000000c,0x00000679,0x00000576,0x000002ee,0x00000580,0x000005c0, - 0x00050051,0x00000006,0x000002fc,0x00000679,0x00000000,0x00050051,0x00000006,0x000002fe, - 0x00000679,0x00000001,0x00050051,0x00000006,0x00000300,0x00000679,0x00000002,0x00050051, - 0x00000006,0x00000302,0x00000672,0x00000003,0x00070050,0x00000023,0x00000659,0x000002fc, - 0x000002fe,0x00000300,0x00000302,0x000200f9,0x00000307,0x000200f8,0x00000304,0x0008004f, - 0x0000000c,0x000005c6,0x00000672,0x00000672,0x00000000,0x00000001,0x00000002,0x00050041, - 0x000000bc,0x000005c7,0x000000b9,0x000001e2,0x0004003d,0x00000006,0x000005c8,0x000005c7, - 0x0005008e,0x0000000c,0x000005c9,0x000005c6,0x000005c8,0x00050051,0x00000006,0x000005cb, - 0x000005c9,0x00000000,0x00050051,0x00000006,0x000005cd,0x000005c9,0x00000001,0x00050051, - 0x00000006,0x000005cf,0x000005c9,0x00000002,0x00050051,0x00000006,0x000005d1,0x00000672, - 0x00000003,0x00070050,0x00000023,0x00000654,0x000005cb,0x000005cd,0x000005cf,0x000005d1, - 0x000200f9,0x00000307,0x000200f8,0x00000307,0x000700f5,0x00000023,0x00000696,0x00000659, - 0x00000581,0x00000654,0x00000304,0x000200f9,0x00000308,0x000200f8,0x00000308,0x000700f5, - 0x00000023,0x00000695,0x0000065d,0x0000052e,0x00000696,0x00000307,0x000200f9,0x00000309, - 0x000200f8,0x00000309,0x000700f5,0x00000023,0x00000694,0x00000660,0x000004d7,0x00000695, - 0x00000308,0x00050085,0x00000023,0x0000030d,0x00000694,0x00000294,0x0003003e,0x00000297, - 0x0000030d,0x000100fd,0x00010038 -}; diff --git a/src/render/vulkan/VULKAN_PixelShader_Colors.h b/src/render/vulkan/VULKAN_PixelShader_Colors.h index f674c7c06d..988bb596d7 100644 --- a/src/render/vulkan/VULKAN_PixelShader_Colors.h +++ b/src/render/vulkan/VULKAN_PixelShader_Colors.h @@ -1,7 +1,7 @@ // 1114.0.0 #pragma once static const uint32_t VULKAN_PixelShader_Colors[] = { - 0x07230203,0x00010000,0x0008000b,0x000000a5,0x00000000,0x00020011,0x00000001,0x0006000b, + 0x07230203,0x00010000,0x0008000b,0x000000a9,0x00000000,0x00020011,0x00000001,0x0006000b, 0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001, 0x0007000f,0x00000004,0x00000004,0x6e69616d,0x00000000,0x00000049,0x0000004d,0x00030010, 0x00000004,0x00000007,0x00030003,0x00000005,0x000001f4,0x00040005,0x00000004,0x6e69616d, @@ -13,31 +13,36 @@ static const uint32_t VULKAN_PixelShader_Colors[] = { 0x00000005,0x656e6f74,0x5f70616d,0x6874656d,0x0000646f,0x00070006,0x00000018,0x00000006, 0x656e6f74,0x5f70616d,0x74636166,0x0031726f,0x00070006,0x00000018,0x00000007,0x656e6f74, 0x5f70616d,0x74636166,0x0032726f,0x00070006,0x00000018,0x00000008,0x5f726473,0x74696877, - 0x6f705f65,0x00746e69,0x00030005,0x0000001a,0x00000000,0x00050005,0x00000049,0x75706e69, - 0x6f632e74,0x00726f6c,0x00070005,0x0000004d,0x746e6540,0x6f507972,0x4f746e69,0x75707475, - 0x00000074,0x00050048,0x00000018,0x00000000,0x00000023,0x00000000,0x00050048,0x00000018, - 0x00000001,0x00000023,0x00000004,0x00050048,0x00000018,0x00000002,0x00000023,0x00000008, - 0x00050048,0x00000018,0x00000003,0x00000023,0x0000000c,0x00050048,0x00000018,0x00000004, - 0x00000023,0x00000010,0x00050048,0x00000018,0x00000005,0x00000023,0x00000020,0x00050048, - 0x00000018,0x00000006,0x00000023,0x00000024,0x00050048,0x00000018,0x00000007,0x00000023, - 0x00000028,0x00050048,0x00000018,0x00000008,0x00000023,0x0000002c,0x00030047,0x00000018, + 0x6f705f65,0x00746e69,0x00050006,0x00000018,0x00000009,0x66666f59,0x00746573,0x00050006, + 0x00000018,0x0000000a,0x656f6352,0x00006666,0x00050006,0x00000018,0x0000000b,0x656f6347, + 0x00006666,0x00050006,0x00000018,0x0000000c,0x656f6342,0x00006666,0x00030005,0x0000001a, + 0x00000000,0x00050005,0x00000049,0x75706e69,0x6f632e74,0x00726f6c,0x00070005,0x0000004d, + 0x746e6540,0x6f507972,0x4f746e69,0x75707475,0x00000074,0x00050048,0x00000018,0x00000000, + 0x00000023,0x00000000,0x00050048,0x00000018,0x00000001,0x00000023,0x00000004,0x00050048, + 0x00000018,0x00000002,0x00000023,0x00000008,0x00050048,0x00000018,0x00000003,0x00000023, + 0x0000000c,0x00050048,0x00000018,0x00000004,0x00000023,0x00000010,0x00050048,0x00000018, + 0x00000005,0x00000023,0x00000020,0x00050048,0x00000018,0x00000006,0x00000023,0x00000024, + 0x00050048,0x00000018,0x00000007,0x00000023,0x00000028,0x00050048,0x00000018,0x00000008, + 0x00000023,0x0000002c,0x00050048,0x00000018,0x00000009,0x00000023,0x00000030,0x00050048, + 0x00000018,0x0000000a,0x00000023,0x00000040,0x00050048,0x00000018,0x0000000b,0x00000023, + 0x00000050,0x00050048,0x00000018,0x0000000c,0x00000023,0x00000060,0x00030047,0x00000018, 0x00000002,0x00040047,0x0000001a,0x00000022,0x00000000,0x00040047,0x0000001a,0x00000021, 0x00000000,0x00040047,0x00000049,0x0000001e,0x00000001,0x00040047,0x0000004d,0x0000001e, 0x00000000,0x00020013,0x00000002,0x00030021,0x00000003,0x00000002,0x00030016,0x00000006, 0x00000020,0x00040017,0x00000007,0x00000006,0x00000004,0x00040017,0x00000015,0x00000006, - 0x00000003,0x000b001e,0x00000018,0x00000006,0x00000006,0x00000006,0x00000006,0x00000007, - 0x00000006,0x00000006,0x00000006,0x00000006,0x00040020,0x00000019,0x00000002,0x00000018, - 0x0004003b,0x00000019,0x0000001a,0x00000002,0x00040015,0x0000001b,0x00000020,0x00000001, - 0x0004002b,0x0000001b,0x0000001c,0x00000003,0x00040020,0x0000001d,0x00000002,0x00000006, - 0x0004002b,0x00000006,0x00000033,0x3f800000,0x00040020,0x0000003f,0x00000001,0x00000007, - 0x0004003b,0x0000003f,0x00000049,0x00000001,0x00040020,0x0000004c,0x00000003,0x00000007, - 0x0004003b,0x0000004c,0x0000004d,0x00000003,0x0006002c,0x00000015,0x000000a3,0x00000033, - 0x00000033,0x00000033,0x00050036,0x00000002,0x00000004,0x00000000,0x00000003,0x000200f8, - 0x00000005,0x0004003d,0x00000007,0x0000004a,0x00000049,0x00050041,0x0000001d,0x00000082, - 0x0000001a,0x0000001c,0x0004003d,0x00000006,0x00000083,0x00000082,0x0005008e,0x00000015, - 0x00000084,0x000000a3,0x00000083,0x00050051,0x00000006,0x00000086,0x00000084,0x00000000, - 0x00050051,0x00000006,0x00000088,0x00000084,0x00000001,0x00050051,0x00000006,0x0000008a, - 0x00000084,0x00000002,0x00070050,0x00000007,0x000000a4,0x00000086,0x00000088,0x0000008a, - 0x00000033,0x00050085,0x00000007,0x0000007c,0x000000a4,0x0000004a,0x0003003e,0x0000004d, - 0x0000007c,0x000100fd,0x00010038 + 0x00000003,0x000f001e,0x00000018,0x00000006,0x00000006,0x00000006,0x00000006,0x00000007, + 0x00000006,0x00000006,0x00000006,0x00000006,0x00000007,0x00000007,0x00000007,0x00000007, + 0x00040020,0x00000019,0x00000002,0x00000018,0x0004003b,0x00000019,0x0000001a,0x00000002, + 0x00040015,0x0000001b,0x00000020,0x00000001,0x0004002b,0x0000001b,0x0000001c,0x00000003, + 0x00040020,0x0000001d,0x00000002,0x00000006,0x0004002b,0x00000006,0x00000033,0x3f800000, + 0x00040020,0x0000003f,0x00000001,0x00000007,0x0004003b,0x0000003f,0x00000049,0x00000001, + 0x00040020,0x0000004c,0x00000003,0x00000007,0x0004003b,0x0000004c,0x0000004d,0x00000003, + 0x0006002c,0x00000015,0x000000a7,0x00000033,0x00000033,0x00000033,0x00050036,0x00000002, + 0x00000004,0x00000000,0x00000003,0x000200f8,0x00000005,0x0004003d,0x00000007,0x0000004a, + 0x00000049,0x00050041,0x0000001d,0x00000086,0x0000001a,0x0000001c,0x0004003d,0x00000006, + 0x00000087,0x00000086,0x0005008e,0x00000015,0x00000088,0x000000a7,0x00000087,0x00050051, + 0x00000006,0x0000008a,0x00000088,0x00000000,0x00050051,0x00000006,0x0000008c,0x00000088, + 0x00000001,0x00050051,0x00000006,0x0000008e,0x00000088,0x00000002,0x00070050,0x00000007, + 0x000000a8,0x0000008a,0x0000008c,0x0000008e,0x00000033,0x00050085,0x00000007,0x00000080, + 0x000000a8,0x0000004a,0x0003003e,0x0000004d,0x00000080,0x000100fd,0x00010038 }; diff --git a/src/render/vulkan/VULKAN_PixelShader_Colors_PQ.h b/src/render/vulkan/VULKAN_PixelShader_Colors_PQ.h index adc3fdc2fe..7cfb84e8a2 100644 --- a/src/render/vulkan/VULKAN_PixelShader_Colors_PQ.h +++ b/src/render/vulkan/VULKAN_PixelShader_Colors_PQ.h @@ -1,7 +1,7 @@ // 1114.0.0 #pragma once static const uint32_t VULKAN_PixelShader_Colors_PQ[] = { - 0x07230203,0x00010000,0x0008000b,0x0000010e,0x00000000,0x00020011,0x00000001,0x0006000b, + 0x07230203,0x00010000,0x0008000b,0x00000112,0x00000000,0x00020011,0x00000001,0x0006000b, 0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001, 0x0007000f,0x00000004,0x00000004,0x6e69616d,0x00000000,0x00000082,0x00000086,0x00030010, 0x00000004,0x00000007,0x00030003,0x00000005,0x000001f4,0x00040005,0x00000004,0x6e69616d, @@ -13,14 +13,19 @@ static const uint32_t VULKAN_PixelShader_Colors_PQ[] = { 0x00000005,0x656e6f74,0x5f70616d,0x6874656d,0x0000646f,0x00070006,0x00000050,0x00000006, 0x656e6f74,0x5f70616d,0x74636166,0x0031726f,0x00070006,0x00000050,0x00000007,0x656e6f74, 0x5f70616d,0x74636166,0x0032726f,0x00070006,0x00000050,0x00000008,0x5f726473,0x74696877, - 0x6f705f65,0x00746e69,0x00030005,0x00000052,0x00000000,0x00050005,0x00000082,0x75706e69, - 0x6f632e74,0x00726f6c,0x00070005,0x00000086,0x746e6540,0x6f507972,0x4f746e69,0x75707475, - 0x00000074,0x00050048,0x00000050,0x00000000,0x00000023,0x00000000,0x00050048,0x00000050, - 0x00000001,0x00000023,0x00000004,0x00050048,0x00000050,0x00000002,0x00000023,0x00000008, - 0x00050048,0x00000050,0x00000003,0x00000023,0x0000000c,0x00050048,0x00000050,0x00000004, - 0x00000023,0x00000010,0x00050048,0x00000050,0x00000005,0x00000023,0x00000020,0x00050048, - 0x00000050,0x00000006,0x00000023,0x00000024,0x00050048,0x00000050,0x00000007,0x00000023, - 0x00000028,0x00050048,0x00000050,0x00000008,0x00000023,0x0000002c,0x00030047,0x00000050, + 0x6f705f65,0x00746e69,0x00050006,0x00000050,0x00000009,0x66666f59,0x00746573,0x00050006, + 0x00000050,0x0000000a,0x656f6352,0x00006666,0x00050006,0x00000050,0x0000000b,0x656f6347, + 0x00006666,0x00050006,0x00000050,0x0000000c,0x656f6342,0x00006666,0x00030005,0x00000052, + 0x00000000,0x00050005,0x00000082,0x75706e69,0x6f632e74,0x00726f6c,0x00070005,0x00000086, + 0x746e6540,0x6f507972,0x4f746e69,0x75707475,0x00000074,0x00050048,0x00000050,0x00000000, + 0x00000023,0x00000000,0x00050048,0x00000050,0x00000001,0x00000023,0x00000004,0x00050048, + 0x00000050,0x00000002,0x00000023,0x00000008,0x00050048,0x00000050,0x00000003,0x00000023, + 0x0000000c,0x00050048,0x00000050,0x00000004,0x00000023,0x00000010,0x00050048,0x00000050, + 0x00000005,0x00000023,0x00000020,0x00050048,0x00000050,0x00000006,0x00000023,0x00000024, + 0x00050048,0x00000050,0x00000007,0x00000023,0x00000028,0x00050048,0x00000050,0x00000008, + 0x00000023,0x0000002c,0x00050048,0x00000050,0x00000009,0x00000023,0x00000030,0x00050048, + 0x00000050,0x0000000a,0x00000023,0x00000040,0x00050048,0x00000050,0x0000000b,0x00000023, + 0x00000050,0x00050048,0x00000050,0x0000000c,0x00000023,0x00000060,0x00030047,0x00000050, 0x00000002,0x00040047,0x00000052,0x00000022,0x00000000,0x00040047,0x00000052,0x00000021, 0x00000000,0x00040047,0x00000082,0x0000001e,0x00000001,0x00040047,0x00000086,0x0000001e, 0x00000000,0x00020013,0x00000002,0x00030021,0x00000003,0x00000002,0x00030016,0x00000006, @@ -31,32 +36,32 @@ static const uint32_t VULKAN_PixelShader_Colors_PQ[] = { 0x3e232000,0x0006002c,0x00000007,0x00000030,0x0000002f,0x0000002f,0x0000002f,0x0004002b, 0x00000006,0x00000036,0x41958000,0x0004002b,0x00000006,0x00000041,0x429db000,0x0006002c, 0x00000007,0x00000042,0x00000041,0x00000041,0x00000041,0x0006002c,0x00000007,0x00000047, - 0x00000026,0x00000026,0x00000026,0x00040015,0x00000049,0x00000020,0x00000001,0x000b001e, + 0x00000026,0x00000026,0x00000026,0x00040015,0x00000049,0x00000020,0x00000001,0x000f001e, 0x00000050,0x00000006,0x00000006,0x00000006,0x00000006,0x00000010,0x00000006,0x00000006, - 0x00000006,0x00000006,0x00040020,0x00000051,0x00000002,0x00000050,0x0004003b,0x00000051, - 0x00000052,0x00000002,0x0004002b,0x00000049,0x00000053,0x00000003,0x00040020,0x00000054, - 0x00000002,0x00000006,0x00040020,0x00000078,0x00000001,0x00000010,0x0004003b,0x00000078, - 0x00000082,0x00000001,0x00040020,0x00000085,0x00000003,0x00000010,0x0004003b,0x00000085, - 0x00000086,0x00000003,0x0004002b,0x00000006,0x00000109,0x38d1b717,0x0006002c,0x00000007, - 0x0000010a,0x00000109,0x00000109,0x00000109,0x0006002c,0x00000007,0x0000010b,0x00000025, - 0x00000025,0x00000025,0x0006002c,0x00000007,0x0000010c,0x0000002b,0x0000002b,0x0000002b, - 0x00050036,0x00000002,0x00000004,0x00000000,0x00000003,0x000200f8,0x00000005,0x0004003d, - 0x00000010,0x00000083,0x00000082,0x0008004f,0x00000007,0x000000bc,0x00000083,0x00000083, - 0x00000000,0x00000001,0x00000002,0x00050041,0x00000054,0x000000be,0x00000052,0x00000053, - 0x0004003d,0x00000006,0x000000bf,0x000000be,0x0005008e,0x00000007,0x000000c0,0x000000bc, - 0x000000bf,0x0005008e,0x00000007,0x000000d2,0x000000c0,0x0000001c,0x00050085,0x00000007, - 0x000000da,0x000000d2,0x0000010a,0x0008000c,0x00000007,0x000000dd,0x00000001,0x0000002b, - 0x000000da,0x0000010b,0x00000047,0x0006000c,0x00000007,0x000000df,0x00000001,0x00000004, - 0x000000dd,0x0007000c,0x00000007,0x000000e0,0x00000001,0x0000001a,0x000000df,0x00000030, - 0x0005008e,0x00000007,0x000000e1,0x000000e0,0x0000002c,0x00050081,0x00000007,0x000000e3, - 0x0000010c,0x000000e1,0x0006000c,0x00000007,0x000000e5,0x00000001,0x00000004,0x000000dd, - 0x0007000c,0x00000007,0x000000e6,0x00000001,0x0000001a,0x000000e5,0x00000030,0x0005008e, - 0x00000007,0x000000e7,0x000000e6,0x00000036,0x00050081,0x00000007,0x000000e9,0x00000047, - 0x000000e7,0x00050088,0x00000007,0x000000ec,0x000000e3,0x000000e9,0x0006000c,0x00000007, - 0x000000ed,0x00000001,0x00000004,0x000000ec,0x0007000c,0x00000007,0x000000ee,0x00000001, - 0x0000001a,0x000000ed,0x00000042,0x00050051,0x00000006,0x000000c6,0x000000ee,0x00000000, - 0x00050051,0x00000006,0x000000c8,0x000000ee,0x00000001,0x00050051,0x00000006,0x000000ca, - 0x000000ee,0x00000002,0x00050051,0x00000006,0x000000cc,0x00000083,0x00000003,0x00070050, - 0x00000010,0x0000010d,0x000000c6,0x000000c8,0x000000ca,0x000000cc,0x0003003e,0x00000086, - 0x0000010d,0x000100fd,0x00010038 + 0x00000006,0x00000006,0x00000010,0x00000010,0x00000010,0x00000010,0x00040020,0x00000051, + 0x00000002,0x00000050,0x0004003b,0x00000051,0x00000052,0x00000002,0x0004002b,0x00000049, + 0x00000053,0x00000003,0x00040020,0x00000054,0x00000002,0x00000006,0x00040020,0x00000078, + 0x00000001,0x00000010,0x0004003b,0x00000078,0x00000082,0x00000001,0x00040020,0x00000085, + 0x00000003,0x00000010,0x0004003b,0x00000085,0x00000086,0x00000003,0x0004002b,0x00000006, + 0x0000010d,0x38d1b717,0x0006002c,0x00000007,0x0000010e,0x0000010d,0x0000010d,0x0000010d, + 0x0006002c,0x00000007,0x0000010f,0x00000025,0x00000025,0x00000025,0x0006002c,0x00000007, + 0x00000110,0x0000002b,0x0000002b,0x0000002b,0x00050036,0x00000002,0x00000004,0x00000000, + 0x00000003,0x000200f8,0x00000005,0x0004003d,0x00000010,0x00000083,0x00000082,0x0008004f, + 0x00000007,0x000000c0,0x00000083,0x00000083,0x00000000,0x00000001,0x00000002,0x00050041, + 0x00000054,0x000000c2,0x00000052,0x00000053,0x0004003d,0x00000006,0x000000c3,0x000000c2, + 0x0005008e,0x00000007,0x000000c4,0x000000c0,0x000000c3,0x0005008e,0x00000007,0x000000d6, + 0x000000c4,0x0000001c,0x00050085,0x00000007,0x000000de,0x000000d6,0x0000010e,0x0008000c, + 0x00000007,0x000000e1,0x00000001,0x0000002b,0x000000de,0x0000010f,0x00000047,0x0006000c, + 0x00000007,0x000000e3,0x00000001,0x00000004,0x000000e1,0x0007000c,0x00000007,0x000000e4, + 0x00000001,0x0000001a,0x000000e3,0x00000030,0x0005008e,0x00000007,0x000000e5,0x000000e4, + 0x0000002c,0x00050081,0x00000007,0x000000e7,0x00000110,0x000000e5,0x0006000c,0x00000007, + 0x000000e9,0x00000001,0x00000004,0x000000e1,0x0007000c,0x00000007,0x000000ea,0x00000001, + 0x0000001a,0x000000e9,0x00000030,0x0005008e,0x00000007,0x000000eb,0x000000ea,0x00000036, + 0x00050081,0x00000007,0x000000ed,0x00000047,0x000000eb,0x00050088,0x00000007,0x000000f0, + 0x000000e7,0x000000ed,0x0006000c,0x00000007,0x000000f1,0x00000001,0x00000004,0x000000f0, + 0x0007000c,0x00000007,0x000000f2,0x00000001,0x0000001a,0x000000f1,0x00000042,0x00050051, + 0x00000006,0x000000ca,0x000000f2,0x00000000,0x00050051,0x00000006,0x000000cc,0x000000f2, + 0x00000001,0x00050051,0x00000006,0x000000ce,0x000000f2,0x00000002,0x00050051,0x00000006, + 0x000000d0,0x00000083,0x00000003,0x00070050,0x00000010,0x00000111,0x000000ca,0x000000cc, + 0x000000ce,0x000000d0,0x0003003e,0x00000086,0x00000111,0x000100fd,0x00010038 }; diff --git a/src/render/vulkan/VULKAN_PixelShader_Common.hlsli b/src/render/vulkan/VULKAN_PixelShader_Common.hlsli index 67f1928768..89f1914048 100644 --- a/src/render/vulkan/VULKAN_PixelShader_Common.hlsli +++ b/src/render/vulkan/VULKAN_PixelShader_Common.hlsli @@ -1,8 +1,10 @@ layout (set = 0, binding = 1) Texture2D texture0 : register(t0); layout (set = 0, binding = 2) Texture2D texture1 : register(t1); +layout (set = 0, binding = 3) Texture2D texture2 : register(t2); SamplerState sampler0 : register(s0); SamplerState sampler1 : register(s1); +SamplerState sampler2 : register(s2); struct PixelShaderInput { @@ -22,6 +24,9 @@ static const float TEXTURETYPE_RGB_PIXELART = 2; static const float TEXTURETYPE_PALETTE_NEAREST = 3; static const float TEXTURETYPE_PALETTE_LINEAR = 4; static const float TEXTURETYPE_PALETTE_PIXELART = 5; +static const float TEXTURETYPE_NV12 = 6; +static const float TEXTURETYPE_NV21 = 7; +static const float TEXTURETYPE_YUV = 8; static const float INPUTTYPE_UNSPECIFIED = 0; static const float INPUTTYPE_SRGB = 1; @@ -40,6 +45,11 @@ layout (set = 0, binding = 0) cbuffer Constants : register(b1) float tonemap_factor1; float tonemap_factor2; float sdr_white_point; + + float4 Yoffset; + float4 Rcoeff; + float4 Gcoeff; + float4 Bcoeff; }; static const float3x3 mat709to2020 = { @@ -218,14 +228,13 @@ float4 GetInputColor(PixelShaderInput input) { float4 rgba; - if (texture_type == TEXTURETYPE_RGB) { + if (texture_type == TEXTURETYPE_NONE) { + rgba = 1.0; + } else if (texture_type == TEXTURETYPE_RGB) { rgba = texture0.Sample(sampler0, input.tex); -// NVIDIA drivers crash when trying to use SampleGrad() on a texture with YCbCr conversion -#ifndef BROKEN_YCbCr_NVIDIA } else if (texture_type == TEXTURETYPE_RGB_PIXELART) { float2 uv = GetPixelArtUV(input.tex); rgba = texture0.SampleGrad(sampler0, uv, ddx(input.tex), ddy(input.tex)); -#endif } else if (texture_type == TEXTURETYPE_PALETTE_NEAREST) { rgba = SamplePaletteNearest(input.tex); } else if (texture_type == TEXTURETYPE_PALETTE_LINEAR) { @@ -233,6 +242,37 @@ float4 GetInputColor(PixelShaderInput input) } else if (texture_type == TEXTURETYPE_PALETTE_PIXELART) { float2 uv = GetPixelArtUV(input.tex); rgba = SamplePaletteLinear(uv); + } else if (texture_type == TEXTURETYPE_NV12) { + float3 yuv; + yuv.x = texture0.Sample(sampler0, input.tex).r; + yuv.yz = texture1.Sample(sampler1, input.tex).rg; + + yuv += Yoffset.xyz; + rgba.r = dot(yuv, Rcoeff.xyz); + rgba.g = dot(yuv, Gcoeff.xyz); + rgba.b = dot(yuv, Bcoeff.xyz); + rgba.a = 1.0; + } else if (texture_type == TEXTURETYPE_NV21) { + float3 yuv; + yuv.x = texture0.Sample(sampler0, input.tex).r; + yuv.yz = texture1.Sample(sampler1, input.tex).gr; + + yuv += Yoffset.xyz; + rgba.r = dot(yuv, Rcoeff.xyz); + rgba.g = dot(yuv, Gcoeff.xyz); + rgba.b = dot(yuv, Bcoeff.xyz); + rgba.a = 1.0; + } else if (texture_type == TEXTURETYPE_YUV) { + float3 yuv; + yuv.x = texture0.Sample(sampler0, input.tex).r; + yuv.y = texture1.Sample(sampler1, input.tex).r; + yuv.z = texture2.Sample(sampler2, input.tex).r; + + yuv += Yoffset.xyz; + rgba.r = dot(yuv, Rcoeff.xyz); + rgba.g = dot(yuv, Gcoeff.xyz); + rgba.b = dot(yuv, Bcoeff.xyz); + rgba.a = 1.0; } else { // Error! rgba.r = 1.0; diff --git a/src/render/vulkan/VULKAN_PixelShader_Textures.h b/src/render/vulkan/VULKAN_PixelShader_Textures.h index 3866df7d04..189caaf4de 100644 --- a/src/render/vulkan/VULKAN_PixelShader_Textures.h +++ b/src/render/vulkan/VULKAN_PixelShader_Textures.h @@ -1,7 +1,7 @@ // 1114.0.0 #pragma once static const uint32_t VULKAN_PixelShader_Textures[] = { - 0x07230203,0x00010000,0x0008000b,0x000000ac,0x00000000,0x00020011,0x00000001,0x0006000b, + 0x07230203,0x00010000,0x0008000b,0x000000b0,0x00000000,0x00020011,0x00000001,0x0006000b, 0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001, 0x0008000f,0x00000004,0x00000004,0x6e69616d,0x00000000,0x0000004c,0x0000004f,0x00000053, 0x00030010,0x00000004,0x00000007,0x00030003,0x00000005,0x000001f4,0x00040005,0x00000004, @@ -13,40 +13,45 @@ static const uint32_t VULKAN_PixelShader_Textures[] = { 0x00000018,0x00000005,0x656e6f74,0x5f70616d,0x6874656d,0x0000646f,0x00070006,0x00000018, 0x00000006,0x656e6f74,0x5f70616d,0x74636166,0x0031726f,0x00070006,0x00000018,0x00000007, 0x656e6f74,0x5f70616d,0x74636166,0x0032726f,0x00070006,0x00000018,0x00000008,0x5f726473, - 0x74696877,0x6f705f65,0x00746e69,0x00030005,0x0000001a,0x00000000,0x00050005,0x00000036, - 0x74786574,0x30657275,0x00000000,0x00050005,0x0000004c,0x75706e69,0x65742e74,0x00000078, - 0x00050005,0x0000004f,0x75706e69,0x6f632e74,0x00726f6c,0x00070005,0x00000053,0x746e6540, - 0x6f507972,0x4f746e69,0x75707475,0x00000074,0x00050048,0x00000018,0x00000000,0x00000023, - 0x00000000,0x00050048,0x00000018,0x00000001,0x00000023,0x00000004,0x00050048,0x00000018, - 0x00000002,0x00000023,0x00000008,0x00050048,0x00000018,0x00000003,0x00000023,0x0000000c, - 0x00050048,0x00000018,0x00000004,0x00000023,0x00000010,0x00050048,0x00000018,0x00000005, - 0x00000023,0x00000020,0x00050048,0x00000018,0x00000006,0x00000023,0x00000024,0x00050048, - 0x00000018,0x00000007,0x00000023,0x00000028,0x00050048,0x00000018,0x00000008,0x00000023, - 0x0000002c,0x00030047,0x00000018,0x00000002,0x00040047,0x0000001a,0x00000022,0x00000000, + 0x74696877,0x6f705f65,0x00746e69,0x00050006,0x00000018,0x00000009,0x66666f59,0x00746573, + 0x00050006,0x00000018,0x0000000a,0x656f6352,0x00006666,0x00050006,0x00000018,0x0000000b, + 0x656f6347,0x00006666,0x00050006,0x00000018,0x0000000c,0x656f6342,0x00006666,0x00030005, + 0x0000001a,0x00000000,0x00050005,0x00000036,0x74786574,0x30657275,0x00000000,0x00050005, + 0x0000004c,0x75706e69,0x65742e74,0x00000078,0x00050005,0x0000004f,0x75706e69,0x6f632e74, + 0x00726f6c,0x00070005,0x00000053,0x746e6540,0x6f507972,0x4f746e69,0x75707475,0x00000074, + 0x00050048,0x00000018,0x00000000,0x00000023,0x00000000,0x00050048,0x00000018,0x00000001, + 0x00000023,0x00000004,0x00050048,0x00000018,0x00000002,0x00000023,0x00000008,0x00050048, + 0x00000018,0x00000003,0x00000023,0x0000000c,0x00050048,0x00000018,0x00000004,0x00000023, + 0x00000010,0x00050048,0x00000018,0x00000005,0x00000023,0x00000020,0x00050048,0x00000018, + 0x00000006,0x00000023,0x00000024,0x00050048,0x00000018,0x00000007,0x00000023,0x00000028, + 0x00050048,0x00000018,0x00000008,0x00000023,0x0000002c,0x00050048,0x00000018,0x00000009, + 0x00000023,0x00000030,0x00050048,0x00000018,0x0000000a,0x00000023,0x00000040,0x00050048, + 0x00000018,0x0000000b,0x00000023,0x00000050,0x00050048,0x00000018,0x0000000c,0x00000023, + 0x00000060,0x00030047,0x00000018,0x00000002,0x00040047,0x0000001a,0x00000022,0x00000000, 0x00040047,0x0000001a,0x00000021,0x00000000,0x00040047,0x00000036,0x00000022,0x00000000, 0x00040047,0x00000036,0x00000021,0x00000001,0x00040047,0x0000004c,0x0000001e,0x00000000, 0x00040047,0x0000004f,0x0000001e,0x00000001,0x00040047,0x00000053,0x0000001e,0x00000000, 0x00020013,0x00000002,0x00030021,0x00000003,0x00000002,0x00030016,0x00000006,0x00000020, 0x00040017,0x00000007,0x00000006,0x00000004,0x00040017,0x0000000d,0x00000006,0x00000002, - 0x00040017,0x00000015,0x00000006,0x00000003,0x000b001e,0x00000018,0x00000006,0x00000006, - 0x00000006,0x00000006,0x00000007,0x00000006,0x00000006,0x00000006,0x00000006,0x00040020, - 0x00000019,0x00000002,0x00000018,0x0004003b,0x00000019,0x0000001a,0x00000002,0x00040015, - 0x0000001b,0x00000020,0x00000001,0x0004002b,0x0000001b,0x0000001c,0x00000003,0x00040020, - 0x0000001d,0x00000002,0x00000006,0x00090019,0x00000033,0x00000006,0x00000001,0x00000000, - 0x00000000,0x00000000,0x00000001,0x00000000,0x0003001b,0x00000034,0x00000033,0x00040020, - 0x00000035,0x00000000,0x00000034,0x0004003b,0x00000035,0x00000036,0x00000000,0x00040020, - 0x00000047,0x00000001,0x00000007,0x00040020,0x0000004b,0x00000001,0x0000000d,0x0004003b, - 0x0000004b,0x0000004c,0x00000001,0x0004003b,0x00000047,0x0000004f,0x00000001,0x00040020, - 0x00000052,0x00000003,0x00000007,0x0004003b,0x00000052,0x00000053,0x00000003,0x00050036, - 0x00000002,0x00000004,0x00000000,0x00000003,0x000200f8,0x00000005,0x0004003d,0x0000000d, - 0x0000004d,0x0000004c,0x0004003d,0x00000007,0x00000050,0x0000004f,0x0004003d,0x00000034, - 0x0000007c,0x00000036,0x00050057,0x00000007,0x0000007f,0x0000007c,0x0000004d,0x0008004f, - 0x00000015,0x00000088,0x0000007f,0x0000007f,0x00000000,0x00000001,0x00000002,0x00050041, - 0x0000001d,0x00000089,0x0000001a,0x0000001c,0x0004003d,0x00000006,0x0000008a,0x00000089, - 0x0005008e,0x00000015,0x0000008b,0x00000088,0x0000008a,0x00050051,0x00000006,0x0000008d, - 0x0000008b,0x00000000,0x00050051,0x00000006,0x0000008f,0x0000008b,0x00000001,0x00050051, - 0x00000006,0x00000091,0x0000008b,0x00000002,0x00050051,0x00000006,0x00000093,0x0000007f, - 0x00000003,0x00070050,0x00000007,0x000000ab,0x0000008d,0x0000008f,0x00000091,0x00000093, - 0x00050085,0x00000007,0x00000083,0x000000ab,0x00000050,0x0003003e,0x00000053,0x00000083, - 0x000100fd,0x00010038 + 0x00040017,0x00000015,0x00000006,0x00000003,0x000f001e,0x00000018,0x00000006,0x00000006, + 0x00000006,0x00000006,0x00000007,0x00000006,0x00000006,0x00000006,0x00000006,0x00000007, + 0x00000007,0x00000007,0x00000007,0x00040020,0x00000019,0x00000002,0x00000018,0x0004003b, + 0x00000019,0x0000001a,0x00000002,0x00040015,0x0000001b,0x00000020,0x00000001,0x0004002b, + 0x0000001b,0x0000001c,0x00000003,0x00040020,0x0000001d,0x00000002,0x00000006,0x00090019, + 0x00000033,0x00000006,0x00000001,0x00000000,0x00000000,0x00000000,0x00000001,0x00000000, + 0x0003001b,0x00000034,0x00000033,0x00040020,0x00000035,0x00000000,0x00000034,0x0004003b, + 0x00000035,0x00000036,0x00000000,0x00040020,0x00000047,0x00000001,0x00000007,0x00040020, + 0x0000004b,0x00000001,0x0000000d,0x0004003b,0x0000004b,0x0000004c,0x00000001,0x0004003b, + 0x00000047,0x0000004f,0x00000001,0x00040020,0x00000052,0x00000003,0x00000007,0x0004003b, + 0x00000052,0x00000053,0x00000003,0x00050036,0x00000002,0x00000004,0x00000000,0x00000003, + 0x000200f8,0x00000005,0x0004003d,0x0000000d,0x0000004d,0x0000004c,0x0004003d,0x00000007, + 0x00000050,0x0000004f,0x0004003d,0x00000034,0x00000080,0x00000036,0x00050057,0x00000007, + 0x00000083,0x00000080,0x0000004d,0x0008004f,0x00000015,0x0000008c,0x00000083,0x00000083, + 0x00000000,0x00000001,0x00000002,0x00050041,0x0000001d,0x0000008d,0x0000001a,0x0000001c, + 0x0004003d,0x00000006,0x0000008e,0x0000008d,0x0005008e,0x00000015,0x0000008f,0x0000008c, + 0x0000008e,0x00050051,0x00000006,0x00000091,0x0000008f,0x00000000,0x00050051,0x00000006, + 0x00000093,0x0000008f,0x00000001,0x00050051,0x00000006,0x00000095,0x0000008f,0x00000002, + 0x00050051,0x00000006,0x00000097,0x00000083,0x00000003,0x00070050,0x00000007,0x000000af, + 0x00000091,0x00000093,0x00000095,0x00000097,0x00050085,0x00000007,0x00000087,0x000000af, + 0x00000050,0x0003003e,0x00000053,0x00000087,0x000100fd,0x00010038 }; diff --git a/src/render/vulkan/VULKAN_PixelShader_Textures_PQ.h b/src/render/vulkan/VULKAN_PixelShader_Textures_PQ.h index 7bd57d9b50..63306ac5ba 100644 --- a/src/render/vulkan/VULKAN_PixelShader_Textures_PQ.h +++ b/src/render/vulkan/VULKAN_PixelShader_Textures_PQ.h @@ -1,9 +1,9 @@ // 1114.0.0 #pragma once static const uint32_t VULKAN_PixelShader_Textures_PQ[] = { - 0x07230203,0x00010000,0x0008000b,0x0000059b,0x00000000,0x00020011,0x00000001,0x0006000b, + 0x07230203,0x00010000,0x0008000b,0x000006fe,0x00000000,0x00020011,0x00000001,0x0006000b, 0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001, - 0x0008000f,0x00000004,0x00000004,0x6e69616d,0x00000000,0x00000245,0x00000248,0x0000024c, + 0x0008000f,0x00000004,0x00000004,0x6e69616d,0x00000000,0x000002e1,0x000002e4,0x000002e8, 0x00030010,0x00000004,0x00000007,0x00030003,0x00000005,0x000001f4,0x00040005,0x00000004, 0x6e69616d,0x00000000,0x00050005,0x0000008e,0x736e6f43,0x746e6174,0x00000073,0x00070006, 0x0000008e,0x00000000,0x47526373,0x756f5f42,0x74757074,0x00000000,0x00070006,0x0000008e, @@ -13,343 +13,426 @@ static const uint32_t VULKAN_PixelShader_Textures_PQ[] = { 0x0000008e,0x00000005,0x656e6f74,0x5f70616d,0x6874656d,0x0000646f,0x00070006,0x0000008e, 0x00000006,0x656e6f74,0x5f70616d,0x74636166,0x0031726f,0x00070006,0x0000008e,0x00000007, 0x656e6f74,0x5f70616d,0x74636166,0x0032726f,0x00070006,0x0000008e,0x00000008,0x5f726473, - 0x74696877,0x6f705f65,0x00746e69,0x00030005,0x00000090,0x00000000,0x00050005,0x000000f1, - 0x74786574,0x30657275,0x00000000,0x00050005,0x000000f8,0x74786574,0x31657275,0x00000000, - 0x00050005,0x00000245,0x75706e69,0x65742e74,0x00000078,0x00050005,0x00000248,0x75706e69, - 0x6f632e74,0x00726f6c,0x00070005,0x0000024c,0x746e6540,0x6f507972,0x4f746e69,0x75707475, - 0x00000074,0x00050048,0x0000008e,0x00000000,0x00000023,0x00000000,0x00050048,0x0000008e, - 0x00000001,0x00000023,0x00000004,0x00050048,0x0000008e,0x00000002,0x00000023,0x00000008, - 0x00050048,0x0000008e,0x00000003,0x00000023,0x0000000c,0x00050048,0x0000008e,0x00000004, - 0x00000023,0x00000010,0x00050048,0x0000008e,0x00000005,0x00000023,0x00000020,0x00050048, - 0x0000008e,0x00000006,0x00000023,0x00000024,0x00050048,0x0000008e,0x00000007,0x00000023, - 0x00000028,0x00050048,0x0000008e,0x00000008,0x00000023,0x0000002c,0x00030047,0x0000008e, - 0x00000002,0x00040047,0x00000090,0x00000022,0x00000000,0x00040047,0x00000090,0x00000021, - 0x00000000,0x00040047,0x000000f1,0x00000022,0x00000000,0x00040047,0x000000f1,0x00000021, - 0x00000001,0x00040047,0x000000f8,0x00000022,0x00000000,0x00040047,0x000000f8,0x00000021, - 0x00000002,0x00040047,0x00000245,0x0000001e,0x00000000,0x00040047,0x00000248,0x0000001e, - 0x00000001,0x00040047,0x0000024c,0x0000001e,0x00000000,0x00020013,0x00000002,0x00030021, - 0x00000003,0x00000002,0x00030016,0x00000006,0x00000020,0x00040017,0x00000007,0x00000006, - 0x00000003,0x00040017,0x00000021,0x00000006,0x00000002,0x00040017,0x00000023,0x00000006, - 0x00000004,0x0004002b,0x00000006,0x0000003c,0x42a00000,0x0004002b,0x00000006,0x00000041, - 0x3d25aee6,0x00020014,0x00000042,0x0004002b,0x00000006,0x0000004b,0x3d6147ae,0x0004002b, - 0x00000006,0x00000050,0x4019999a,0x0004002b,0x00000006,0x0000006e,0x3c4fcdac,0x0006002c, - 0x00000007,0x0000006f,0x0000006e,0x0000006e,0x0000006e,0x0004002b,0x00000006,0x00000071, - 0x3f560000,0x0004002b,0x00000006,0x00000074,0x00000000,0x0006002c,0x00000007,0x00000075, - 0x00000074,0x00000074,0x00000074,0x0004002b,0x00000006,0x00000078,0x4196d000,0x0004002b, - 0x00000006,0x00000079,0x41958000,0x0004002b,0x00000006,0x00000080,0x461c4000,0x0004002b, - 0x00000006,0x00000085,0x40c8e06b,0x0006002c,0x00000007,0x00000086,0x00000085,0x00000085, - 0x00000085,0x000b001e,0x0000008e,0x00000006,0x00000006,0x00000006,0x00000006,0x00000023, - 0x00000006,0x00000006,0x00000006,0x00000006,0x00040020,0x0000008f,0x00000002,0x0000008e, - 0x0004003b,0x0000008f,0x00000090,0x00000002,0x00040015,0x00000091,0x00000020,0x00000001, - 0x0004002b,0x00000091,0x00000092,0x00000008,0x00040020,0x00000093,0x00000002,0x00000006, - 0x0004002b,0x00000006,0x0000009e,0x3f800000,0x0004002b,0x00000006,0x000000a5,0x3e232000, - 0x0006002c,0x00000007,0x000000a6,0x000000a5,0x000000a5,0x000000a5,0x0004002b,0x00000006, - 0x000000b6,0x429db000,0x0006002c,0x00000007,0x000000b7,0x000000b6,0x000000b6,0x000000b6, - 0x0004002b,0x00000091,0x000000bb,0x00000005,0x0004002b,0x00000091,0x000000c1,0x00000006, - 0x0004002b,0x00000006,0x000000c9,0x40000000,0x0004002b,0x00000091,0x000000e0,0x00000007, - 0x00090019,0x000000ee,0x00000006,0x00000001,0x00000000,0x00000000,0x00000000,0x00000001, - 0x00000000,0x0003001b,0x000000ef,0x000000ee,0x00040020,0x000000f0,0x00000000,0x000000ef, - 0x0004003b,0x000000f0,0x000000f1,0x00000000,0x0004002b,0x00000006,0x000000f6,0x437f0000, - 0x0004003b,0x000000f0,0x000000f8,0x00000000,0x0004002b,0x00000006,0x000000fb,0x3f000000, - 0x0004002b,0x00000091,0x00000105,0x00000004,0x00040020,0x00000106,0x00000002,0x00000023, - 0x0004002b,0x00000006,0x00000154,0x3727c5ac,0x0005002c,0x00000021,0x00000155,0x00000154, - 0x00000154,0x0005002c,0x00000021,0x00000156,0x0000009e,0x0000009e,0x0004002b,0x00000091, - 0x00000174,0x00000001,0x0004002b,0x00000006,0x00000196,0x40400000,0x0004002b,0x00000006, - 0x000001a1,0x40800000,0x0004002b,0x00000006,0x000001ac,0x40a00000,0x0004002b,0x00000091, - 0x000001c5,0x00000002,0x00040018,0x000001e7,0x00000007,0x00000003,0x0004002b,0x00000006, - 0x000001e8,0x3f209d8c,0x0004002b,0x00000006,0x000001e9,0x3ea897c8,0x0004002b,0x00000006, - 0x000001ea,0x3d3168f9,0x0006002c,0x00000007,0x000001eb,0x000001e8,0x000001e9,0x000001ea, - 0x0004002b,0x00000006,0x000001ec,0x3d8d82ba,0x0004002b,0x00000006,0x000001ed,0x3f6b670a, - 0x0004002b,0x00000006,0x000001ee,0x3c3a27af,0x0006002c,0x00000007,0x000001ef,0x000001ec, - 0x000001ed,0x000001ee,0x0004002b,0x00000006,0x000001f0,0x3c86466b,0x0004002b,0x00000006, - 0x000001f1,0x3db44029,0x0004002b,0x00000006,0x000001f2,0x3f6545b7,0x0006002c,0x00000007, - 0x000001f3,0x000001f0,0x000001f1,0x000001f2,0x0006002c,0x000001e7,0x000001f4,0x000001eb, - 0x000001ef,0x000001f3,0x0004002b,0x00000091,0x00000211,0x00000003,0x00040020,0x00000240, - 0x00000001,0x00000023,0x00040020,0x00000244,0x00000001,0x00000021,0x0004003b,0x00000244, - 0x00000245,0x00000001,0x0004003b,0x00000240,0x00000248,0x00000001,0x00040020,0x0000024b, - 0x00000003,0x00000023,0x0004003b,0x0000024b,0x0000024c,0x00000003,0x0005002c,0x00000021, - 0x00000575,0x000000fb,0x000000fb,0x0004002b,0x00000006,0x00000576,0x3b800000,0x0004002b, - 0x00000006,0x00000578,0x3f72a76f,0x0004002b,0x00000006,0x00000579,0x3d9e8391,0x0006002c, - 0x00000007,0x0000057a,0x00000071,0x00000071,0x00000071,0x0006002c,0x00000007,0x0000057b, - 0x00000078,0x00000078,0x00000078,0x0004002b,0x00000006,0x0000057d,0x38d1b717,0x0006002c, - 0x00000007,0x0000057e,0x0000057d,0x0000057d,0x0000057d,0x0006002c,0x00000007,0x0000057f, - 0x0000009e,0x0000009e,0x0000009e,0x0007002c,0x00000023,0x00000581,0x0000009e,0x00000074, - 0x0000009e,0x0000009e,0x00030001,0x00000023,0x0000059a,0x00050036,0x00000002,0x00000004, - 0x00000000,0x00000003,0x000200f8,0x00000005,0x0004003d,0x00000021,0x00000246,0x00000245, - 0x0004003d,0x00000023,0x00000249,0x00000248,0x00050041,0x00000093,0x000002d4,0x00000090, - 0x00000174,0x0004003d,0x00000006,0x000002d5,0x000002d4,0x000500b4,0x00000042,0x000002d6, - 0x000002d5,0x0000009e,0x000300f7,0x00000310,0x00000000,0x000400fa,0x000002d6,0x000002d7, - 0x000002dc,0x000200f8,0x000002d7,0x0004003d,0x000000ef,0x000002d8,0x000000f1,0x00050057, - 0x00000023,0x000002db,0x000002d8,0x00000246,0x000200f9,0x00000310,0x000200f8,0x000002dc, - 0x00050041,0x00000093,0x000002dd,0x00000090,0x00000174,0x0004003d,0x00000006,0x000002de, - 0x000002dd,0x000500b4,0x00000042,0x000002df,0x000002de,0x000000c9,0x000300f7,0x0000030f, - 0x00000000,0x000400fa,0x000002df,0x000002e0,0x000002ed,0x000200f8,0x000002e0,0x000400d1, - 0x00000021,0x00000318,0x00000246,0x00050041,0x00000106,0x00000319,0x00000090,0x00000105, - 0x0004003d,0x00000023,0x0000031a,0x00000319,0x0007004f,0x00000021,0x0000031b,0x0000031a, - 0x0000031a,0x00000002,0x00000003,0x00050085,0x00000021,0x0000031c,0x00000318,0x0000031b, - 0x0008000c,0x00000021,0x0000031d,0x00000001,0x0000002b,0x0000031c,0x00000155,0x00000156, - 0x00050041,0x00000106,0x0000031f,0x00000090,0x00000105,0x0004003d,0x00000023,0x00000320, - 0x0000031f,0x0007004f,0x00000021,0x00000321,0x00000320,0x00000320,0x00000002,0x00000003, - 0x0005008e,0x00000021,0x00000324,0x0000031d,0x000000fb,0x0004007f,0x00000021,0x00000577, - 0x00000324,0x0008000c,0x00000021,0x00000325,0x00000001,0x00000032,0x00000246,0x00000321, - 0x00000577,0x00050083,0x00000021,0x00000328,0x00000156,0x0000031d,0x0006000c,0x00000021, - 0x0000032a,0x00000001,0x0000000a,0x00000325,0x0008000c,0x00000021,0x0000032b,0x00000001, - 0x00000031,0x00000328,0x00000156,0x0000032a,0x0006000c,0x00000021,0x0000032d,0x00000001, - 0x00000008,0x00000325,0x00050081,0x00000021,0x0000032f,0x0000032d,0x00000575,0x00050081, - 0x00000021,0x00000331,0x0000032f,0x0000032b,0x00050041,0x00000106,0x00000332,0x00000090, - 0x00000105,0x0004003d,0x00000023,0x00000333,0x00000332,0x0007004f,0x00000021,0x00000334, - 0x00000333,0x00000333,0x00000000,0x00000001,0x00050085,0x00000021,0x00000335,0x00000331, - 0x00000334,0x0004003d,0x000000ef,0x000002e4,0x000000f1,0x000400cf,0x00000021,0x000002e8, - 0x00000246,0x000400d0,0x00000021,0x000002eb,0x00000246,0x00080058,0x00000023,0x000002ec, - 0x000002e4,0x00000335,0x00000004,0x000002e8,0x000002eb,0x000200f9,0x0000030f,0x000200f8, - 0x000002ed,0x00050041,0x00000093,0x000002ee,0x00000090,0x00000174,0x0004003d,0x00000006, - 0x000002ef,0x000002ee,0x000500b4,0x00000042,0x000002f0,0x000002ef,0x00000196,0x000300f7, - 0x0000030e,0x00000000,0x000400fa,0x000002f0,0x000002f1,0x000002f5,0x000200f8,0x000002f1, - 0x0004003d,0x000000ef,0x00000339,0x000000f1,0x00050057,0x00000023,0x0000033b,0x00000339, - 0x00000246,0x00050051,0x00000006,0x0000033c,0x0000033b,0x00000000,0x0004003d,0x000000ef, - 0x0000033e,0x000000f8,0x0008000c,0x00000006,0x00000340,0x00000001,0x00000032,0x0000033c, - 0x000000f6,0x000000fb,0x00050085,0x00000006,0x00000341,0x00000340,0x00000576,0x00050050, - 0x00000021,0x00000342,0x00000341,0x000000fb,0x00050057,0x00000023,0x00000343,0x0000033e, - 0x00000342,0x000200f9,0x0000030e,0x000200f8,0x000002f5,0x00050041,0x00000093,0x000002f6, - 0x00000090,0x00000174,0x0004003d,0x00000006,0x000002f7,0x000002f6,0x000500b4,0x00000042, - 0x000002f8,0x000002f7,0x000001a1,0x000300f7,0x0000030d,0x00000000,0x000400fa,0x000002f8, - 0x000002f9,0x000002fd,0x000200f8,0x000002f9,0x00050041,0x00000106,0x00000352,0x00000090, - 0x00000105,0x0004003d,0x00000023,0x00000353,0x00000352,0x0007004f,0x00000021,0x00000354, - 0x00000353,0x00000353,0x00000002,0x00000003,0x0008000c,0x00000021,0x00000357,0x00000001, - 0x00000032,0x00000246,0x00000354,0x00000575,0x0006000c,0x00000021,0x00000359,0x00000001, - 0x00000008,0x00000357,0x00050083,0x00000021,0x0000035b,0x00000359,0x00000575,0x00050041, - 0x00000106,0x0000035c,0x00000090,0x00000105,0x0004003d,0x00000023,0x0000035d,0x0000035c, - 0x0007004f,0x00000021,0x0000035e,0x0000035d,0x0000035d,0x00000000,0x00000001,0x00050085, - 0x00000021,0x0000035f,0x0000035b,0x0000035e,0x0006000c,0x00000021,0x00000361,0x00000001, - 0x00000008,0x00000357,0x00050081,0x00000021,0x00000363,0x00000361,0x00000575,0x00050041, - 0x00000106,0x00000364,0x00000090,0x00000105,0x0004003d,0x00000023,0x00000365,0x00000364, - 0x0007004f,0x00000021,0x00000366,0x00000365,0x00000365,0x00000000,0x00000001,0x00050085, - 0x00000021,0x00000367,0x00000363,0x00000366,0x00050051,0x00000006,0x00000368,0x0000035f, - 0x00000000,0x00050051,0x00000006,0x00000369,0x0000035f,0x00000001,0x00050051,0x00000006, - 0x0000036a,0x00000367,0x00000000,0x00050051,0x00000006,0x0000036b,0x00000367,0x00000001, - 0x00070050,0x00000023,0x0000036c,0x00000368,0x00000369,0x0000036a,0x0000036b,0x0006000c, - 0x00000021,0x0000036e,0x00000001,0x0000000a,0x00000357,0x0007004f,0x00000021,0x00000370, - 0x0000036c,0x0000036c,0x00000000,0x00000001,0x0004003d,0x000000ef,0x0000038e,0x000000f1, - 0x00050057,0x00000023,0x00000390,0x0000038e,0x00000370,0x00050051,0x00000006,0x00000391, - 0x00000390,0x00000000,0x0004003d,0x000000ef,0x00000393,0x000000f8,0x0008000c,0x00000006, - 0x00000395,0x00000001,0x00000032,0x00000391,0x000000f6,0x000000fb,0x00050085,0x00000006, - 0x00000396,0x00000395,0x00000576,0x00050050,0x00000021,0x00000397,0x00000396,0x000000fb, - 0x00050057,0x00000023,0x00000398,0x00000393,0x00000397,0x0007004f,0x00000021,0x00000373, - 0x0000036c,0x0000036c,0x00000000,0x00000003,0x0004003d,0x000000ef,0x0000039c,0x000000f1, - 0x00050057,0x00000023,0x0000039e,0x0000039c,0x00000373,0x00050051,0x00000006,0x0000039f, - 0x0000039e,0x00000000,0x0004003d,0x000000ef,0x000003a1,0x000000f8,0x0008000c,0x00000006, - 0x000003a3,0x00000001,0x00000032,0x0000039f,0x000000f6,0x000000fb,0x00050085,0x00000006, - 0x000003a4,0x000003a3,0x00000576,0x00050050,0x00000021,0x000003a5,0x000003a4,0x000000fb, - 0x00050057,0x00000023,0x000003a6,0x000003a1,0x000003a5,0x0007004f,0x00000021,0x00000376, - 0x0000036c,0x0000036c,0x00000002,0x00000001,0x0004003d,0x000000ef,0x000003aa,0x000000f1, - 0x00050057,0x00000023,0x000003ac,0x000003aa,0x00000376,0x00050051,0x00000006,0x000003ad, - 0x000003ac,0x00000000,0x0004003d,0x000000ef,0x000003af,0x000000f8,0x0008000c,0x00000006, - 0x000003b1,0x00000001,0x00000032,0x000003ad,0x000000f6,0x000000fb,0x00050085,0x00000006, - 0x000003b2,0x000003b1,0x00000576,0x00050050,0x00000021,0x000003b3,0x000003b2,0x000000fb, - 0x00050057,0x00000023,0x000003b4,0x000003af,0x000003b3,0x0007004f,0x00000021,0x00000379, - 0x0000036c,0x0000036c,0x00000002,0x00000003,0x0004003d,0x000000ef,0x000003b8,0x000000f1, - 0x00050057,0x00000023,0x000003ba,0x000003b8,0x00000379,0x00050051,0x00000006,0x000003bb, - 0x000003ba,0x00000000,0x0004003d,0x000000ef,0x000003bd,0x000000f8,0x0008000c,0x00000006, - 0x000003bf,0x00000001,0x00000032,0x000003bb,0x000000f6,0x000000fb,0x00050085,0x00000006, - 0x000003c0,0x000003bf,0x00000576,0x00050050,0x00000021,0x000003c1,0x000003c0,0x000000fb, - 0x00050057,0x00000023,0x000003c2,0x000003bd,0x000003c1,0x00050051,0x00000006,0x0000037e, - 0x0000036e,0x00000001,0x00070050,0x00000023,0x0000037f,0x0000037e,0x0000037e,0x0000037e, - 0x0000037e,0x0008000c,0x00000023,0x00000380,0x00000001,0x0000002e,0x00000398,0x000003a6, - 0x0000037f,0x00050051,0x00000006,0x00000384,0x0000036e,0x00000001,0x00070050,0x00000023, - 0x00000385,0x00000384,0x00000384,0x00000384,0x00000384,0x0008000c,0x00000023,0x00000386, - 0x00000001,0x0000002e,0x000003b4,0x000003c2,0x00000385,0x00050051,0x00000006,0x00000388, - 0x0000036e,0x00000000,0x00070050,0x00000023,0x00000389,0x00000388,0x00000388,0x00000388, - 0x00000388,0x0008000c,0x00000023,0x0000038a,0x00000001,0x0000002e,0x00000380,0x00000386, - 0x00000389,0x000200f9,0x0000030d,0x000200f8,0x000002fd,0x00050041,0x00000093,0x000002fe, - 0x00000090,0x00000174,0x0004003d,0x00000006,0x000002ff,0x000002fe,0x000500b4,0x00000042, - 0x00000300,0x000002ff,0x000001ac,0x000300f7,0x0000030c,0x00000000,0x000400fa,0x00000300, - 0x00000301,0x00000307,0x000200f8,0x00000301,0x000400d1,0x00000021,0x000003c9,0x00000246, - 0x00050041,0x00000106,0x000003ca,0x00000090,0x00000105,0x0004003d,0x00000023,0x000003cb, - 0x000003ca,0x0007004f,0x00000021,0x000003cc,0x000003cb,0x000003cb,0x00000002,0x00000003, - 0x00050085,0x00000021,0x000003cd,0x000003c9,0x000003cc,0x0008000c,0x00000021,0x000003ce, - 0x00000001,0x0000002b,0x000003cd,0x00000155,0x00000156,0x00050041,0x00000106,0x000003d0, - 0x00000090,0x00000105,0x0004003d,0x00000023,0x000003d1,0x000003d0,0x0007004f,0x00000021, - 0x000003d2,0x000003d1,0x000003d1,0x00000002,0x00000003,0x0005008e,0x00000021,0x000003d5, - 0x000003ce,0x000000fb,0x0004007f,0x00000021,0x00000574,0x000003d5,0x0008000c,0x00000021, - 0x000003d6,0x00000001,0x00000032,0x00000246,0x000003d2,0x00000574,0x00050083,0x00000021, - 0x000003d9,0x00000156,0x000003ce,0x0006000c,0x00000021,0x000003db,0x00000001,0x0000000a, - 0x000003d6,0x0008000c,0x00000021,0x000003dc,0x00000001,0x00000031,0x000003d9,0x00000156, - 0x000003db,0x0006000c,0x00000021,0x000003de,0x00000001,0x00000008,0x000003d6,0x00050081, - 0x00000021,0x000003e0,0x000003de,0x00000575,0x00050081,0x00000021,0x000003e2,0x000003e0, - 0x000003dc,0x00050041,0x00000106,0x000003e3,0x00000090,0x00000105,0x0004003d,0x00000023, - 0x000003e4,0x000003e3,0x0007004f,0x00000021,0x000003e5,0x000003e4,0x000003e4,0x00000000, - 0x00000001,0x00050085,0x00000021,0x000003e6,0x000003e2,0x000003e5,0x00050041,0x00000106, - 0x000003f5,0x00000090,0x00000105,0x0004003d,0x00000023,0x000003f6,0x000003f5,0x0007004f, - 0x00000021,0x000003f7,0x000003f6,0x000003f6,0x00000002,0x00000003,0x0008000c,0x00000021, - 0x000003fa,0x00000001,0x00000032,0x000003e6,0x000003f7,0x00000575,0x0006000c,0x00000021, - 0x000003fc,0x00000001,0x00000008,0x000003fa,0x00050083,0x00000021,0x000003fe,0x000003fc, - 0x00000575,0x00050041,0x00000106,0x000003ff,0x00000090,0x00000105,0x0004003d,0x00000023, - 0x00000400,0x000003ff,0x0007004f,0x00000021,0x00000401,0x00000400,0x00000400,0x00000000, - 0x00000001,0x00050085,0x00000021,0x00000402,0x000003fe,0x00000401,0x0006000c,0x00000021, - 0x00000404,0x00000001,0x00000008,0x000003fa,0x00050081,0x00000021,0x00000406,0x00000404, - 0x00000575,0x00050041,0x00000106,0x00000407,0x00000090,0x00000105,0x0004003d,0x00000023, - 0x00000408,0x00000407,0x0007004f,0x00000021,0x00000409,0x00000408,0x00000408,0x00000000, - 0x00000001,0x00050085,0x00000021,0x0000040a,0x00000406,0x00000409,0x00050051,0x00000006, - 0x0000040b,0x00000402,0x00000000,0x00050051,0x00000006,0x0000040c,0x00000402,0x00000001, - 0x00050051,0x00000006,0x0000040d,0x0000040a,0x00000000,0x00050051,0x00000006,0x0000040e, - 0x0000040a,0x00000001,0x00070050,0x00000023,0x0000040f,0x0000040b,0x0000040c,0x0000040d, - 0x0000040e,0x0006000c,0x00000021,0x00000411,0x00000001,0x0000000a,0x000003fa,0x0007004f, - 0x00000021,0x00000413,0x0000040f,0x0000040f,0x00000000,0x00000001,0x0004003d,0x000000ef, - 0x00000431,0x000000f1,0x00050057,0x00000023,0x00000433,0x00000431,0x00000413,0x00050051, - 0x00000006,0x00000434,0x00000433,0x00000000,0x0004003d,0x000000ef,0x00000436,0x000000f8, - 0x0008000c,0x00000006,0x00000438,0x00000001,0x00000032,0x00000434,0x000000f6,0x000000fb, - 0x00050085,0x00000006,0x00000439,0x00000438,0x00000576,0x00050050,0x00000021,0x0000043a, - 0x00000439,0x000000fb,0x00050057,0x00000023,0x0000043b,0x00000436,0x0000043a,0x0007004f, - 0x00000021,0x00000416,0x0000040f,0x0000040f,0x00000000,0x00000003,0x0004003d,0x000000ef, - 0x0000043f,0x000000f1,0x00050057,0x00000023,0x00000441,0x0000043f,0x00000416,0x00050051, - 0x00000006,0x00000442,0x00000441,0x00000000,0x0004003d,0x000000ef,0x00000444,0x000000f8, - 0x0008000c,0x00000006,0x00000446,0x00000001,0x00000032,0x00000442,0x000000f6,0x000000fb, - 0x00050085,0x00000006,0x00000447,0x00000446,0x00000576,0x00050050,0x00000021,0x00000448, - 0x00000447,0x000000fb,0x00050057,0x00000023,0x00000449,0x00000444,0x00000448,0x0007004f, - 0x00000021,0x00000419,0x0000040f,0x0000040f,0x00000002,0x00000001,0x0004003d,0x000000ef, - 0x0000044d,0x000000f1,0x00050057,0x00000023,0x0000044f,0x0000044d,0x00000419,0x00050051, - 0x00000006,0x00000450,0x0000044f,0x00000000,0x0004003d,0x000000ef,0x00000452,0x000000f8, - 0x0008000c,0x00000006,0x00000454,0x00000001,0x00000032,0x00000450,0x000000f6,0x000000fb, - 0x00050085,0x00000006,0x00000455,0x00000454,0x00000576,0x00050050,0x00000021,0x00000456, - 0x00000455,0x000000fb,0x00050057,0x00000023,0x00000457,0x00000452,0x00000456,0x0007004f, - 0x00000021,0x0000041c,0x0000040f,0x0000040f,0x00000002,0x00000003,0x0004003d,0x000000ef, - 0x0000045b,0x000000f1,0x00050057,0x00000023,0x0000045d,0x0000045b,0x0000041c,0x00050051, - 0x00000006,0x0000045e,0x0000045d,0x00000000,0x0004003d,0x000000ef,0x00000460,0x000000f8, - 0x0008000c,0x00000006,0x00000462,0x00000001,0x00000032,0x0000045e,0x000000f6,0x000000fb, - 0x00050085,0x00000006,0x00000463,0x00000462,0x00000576,0x00050050,0x00000021,0x00000464, - 0x00000463,0x000000fb,0x00050057,0x00000023,0x00000465,0x00000460,0x00000464,0x00050051, - 0x00000006,0x00000421,0x00000411,0x00000001,0x00070050,0x00000023,0x00000422,0x00000421, - 0x00000421,0x00000421,0x00000421,0x0008000c,0x00000023,0x00000423,0x00000001,0x0000002e, - 0x0000043b,0x00000449,0x00000422,0x00050051,0x00000006,0x00000427,0x00000411,0x00000001, - 0x00070050,0x00000023,0x00000428,0x00000427,0x00000427,0x00000427,0x00000427,0x0008000c, - 0x00000023,0x00000429,0x00000001,0x0000002e,0x00000457,0x00000465,0x00000428,0x00050051, - 0x00000006,0x0000042b,0x00000411,0x00000000,0x00070050,0x00000023,0x0000042c,0x0000042b, - 0x0000042b,0x0000042b,0x0000042b,0x0008000c,0x00000023,0x0000042d,0x00000001,0x0000002e, - 0x00000423,0x00000429,0x0000042c,0x000200f9,0x0000030c,0x000200f8,0x00000307,0x000200f9, - 0x0000030c,0x000200f8,0x0000030c,0x000700f5,0x00000023,0x00000586,0x0000042d,0x00000301, - 0x00000581,0x00000307,0x000200f9,0x0000030d,0x000200f8,0x0000030d,0x000700f5,0x00000023, - 0x00000585,0x0000038a,0x000002f9,0x00000586,0x0000030c,0x000200f9,0x0000030e,0x000200f8, - 0x0000030e,0x000700f5,0x00000023,0x00000584,0x00000343,0x000002f1,0x00000585,0x0000030d, - 0x000200f9,0x0000030f,0x000200f8,0x0000030f,0x000700f5,0x00000023,0x00000583,0x000002ec, - 0x000002e0,0x00000584,0x0000030e,0x000200f9,0x00000310,0x000200f8,0x00000310,0x000700f5, - 0x00000023,0x00000582,0x000002db,0x000002d7,0x00000583,0x0000030f,0x00050041,0x00000093, - 0x0000026e,0x00000090,0x000001c5,0x0004003d,0x00000006,0x0000026f,0x0000026e,0x000500b4, - 0x00000042,0x00000270,0x0000026f,0x00000196,0x000300f7,0x00000293,0x00000000,0x000400fa, - 0x00000270,0x00000271,0x0000027b,0x000200f8,0x00000271,0x0008004f,0x00000007,0x00000273, - 0x00000582,0x00000582,0x00000000,0x00000001,0x00000002,0x0006000c,0x00000007,0x00000474, - 0x00000001,0x00000004,0x00000273,0x0007000c,0x00000007,0x00000475,0x00000001,0x0000001a, - 0x00000474,0x0000006f,0x00050083,0x00000007,0x00000477,0x00000475,0x0000057a,0x0007000c, - 0x00000007,0x00000478,0x00000001,0x00000028,0x00000477,0x00000075,0x0006000c,0x00000007, - 0x0000047a,0x00000001,0x00000004,0x00000273,0x0007000c,0x00000007,0x0000047b,0x00000001, - 0x0000001a,0x0000047a,0x0000006f,0x0005008e,0x00000007,0x0000047c,0x0000047b,0x00000079, - 0x00050083,0x00000007,0x0000047e,0x0000057b,0x0000047c,0x00050088,0x00000007,0x00000481, - 0x00000478,0x0000047e,0x0006000c,0x00000007,0x00000482,0x00000001,0x00000004,0x00000481, - 0x0007000c,0x00000007,0x00000483,0x00000001,0x0000001a,0x00000482,0x00000086,0x0005008e, - 0x00000007,0x00000484,0x00000483,0x00000080,0x00050041,0x00000093,0x0000046b,0x00000090, - 0x00000092,0x0004003d,0x00000006,0x0000046c,0x0000046b,0x00060050,0x00000007,0x0000046d, - 0x0000046c,0x0000046c,0x0000046c,0x00050088,0x00000007,0x0000046e,0x00000484,0x0000046d, - 0x00050051,0x00000006,0x00000276,0x0000046e,0x00000000,0x00060052,0x00000023,0x0000053a, - 0x00000276,0x00000582,0x00000000,0x00050051,0x00000006,0x00000278,0x0000046e,0x00000001, - 0x00060052,0x00000023,0x0000053c,0x00000278,0x0000053a,0x00000001,0x00050051,0x00000006, - 0x0000027a,0x0000046e,0x00000002,0x00060052,0x00000023,0x0000053e,0x0000027a,0x0000053c, - 0x00000002,0x000200f9,0x00000293,0x000200f8,0x0000027b,0x00050041,0x00000093,0x0000027c, - 0x00000090,0x000001c5,0x0004003d,0x00000006,0x0000027d,0x0000027c,0x000500b4,0x00000042, - 0x0000027e,0x0000027d,0x0000009e,0x000300f7,0x00000289,0x00000000,0x000400fa,0x0000027e, - 0x0000027f,0x00000289,0x000200f8,0x0000027f,0x00050051,0x00000006,0x0000048b,0x00000582, - 0x00000000,0x000500bc,0x00000042,0x0000049a,0x0000048b,0x00000041,0x000300f7,0x000004a4, - 0x00000000,0x000400fa,0x0000049a,0x0000049b,0x0000049e,0x000200f8,0x0000049b,0x00050085, - 0x00000006,0x0000049d,0x0000048b,0x00000579,0x000200f9,0x000004a4,0x000200f8,0x0000049e, - 0x00050081,0x00000006,0x000004a0,0x0000048b,0x0000004b,0x0006000c,0x00000006,0x000004a1, - 0x00000001,0x00000004,0x000004a0,0x00050085,0x00000006,0x000004a2,0x000004a1,0x00000578, - 0x0007000c,0x00000006,0x000004a3,0x00000001,0x0000001a,0x000004a2,0x00000050,0x000200f9, - 0x000004a4,0x000200f8,0x000004a4,0x000700f5,0x00000006,0x00000587,0x0000049d,0x0000049b, - 0x000004a3,0x0000049e,0x00050051,0x00000006,0x0000048f,0x00000582,0x00000001,0x000500bc, - 0x00000042,0x000004a9,0x0000048f,0x00000041,0x000300f7,0x000004b3,0x00000000,0x000400fa, - 0x000004a9,0x000004aa,0x000004ad,0x000200f8,0x000004aa,0x00050085,0x00000006,0x000004ac, - 0x0000048f,0x00000579,0x000200f9,0x000004b3,0x000200f8,0x000004ad,0x00050081,0x00000006, - 0x000004af,0x0000048f,0x0000004b,0x0006000c,0x00000006,0x000004b0,0x00000001,0x00000004, - 0x000004af,0x00050085,0x00000006,0x000004b1,0x000004b0,0x00000578,0x0007000c,0x00000006, - 0x000004b2,0x00000001,0x0000001a,0x000004b1,0x00000050,0x000200f9,0x000004b3,0x000200f8, - 0x000004b3,0x000700f5,0x00000006,0x00000589,0x000004ac,0x000004aa,0x000004b2,0x000004ad, - 0x00050051,0x00000006,0x00000493,0x00000582,0x00000002,0x000500bc,0x00000042,0x000004b8, - 0x00000493,0x00000041,0x000300f7,0x000004c2,0x00000000,0x000400fa,0x000004b8,0x000004b9, - 0x000004bc,0x000200f8,0x000004b9,0x00050085,0x00000006,0x000004bb,0x00000493,0x00000579, - 0x000200f9,0x000004c2,0x000200f8,0x000004bc,0x00050081,0x00000006,0x000004be,0x00000493, - 0x0000004b,0x0006000c,0x00000006,0x000004bf,0x00000001,0x00000004,0x000004be,0x00050085, - 0x00000006,0x000004c0,0x000004bf,0x00000578,0x0007000c,0x00000006,0x000004c1,0x00000001, - 0x0000001a,0x000004c0,0x00000050,0x000200f9,0x000004c2,0x000200f8,0x000004c2,0x000700f5, - 0x00000006,0x0000058b,0x000004bb,0x000004b9,0x000004c1,0x000004bc,0x00060052,0x00000023, - 0x00000549,0x00000587,0x00000582,0x00000000,0x00060052,0x00000023,0x0000054b,0x00000589, - 0x00000549,0x00000001,0x00060052,0x00000023,0x0000054d,0x0000058b,0x0000054b,0x00000002, - 0x000200f9,0x00000289,0x000200f8,0x00000289,0x000700f5,0x00000023,0x00000590,0x00000582, - 0x0000027b,0x0000054d,0x000004c2,0x0008004f,0x00000007,0x0000028b,0x00000590,0x00000590, - 0x00000000,0x00000001,0x00000002,0x00050090,0x00000007,0x0000028c,0x0000028b,0x000001f4, - 0x00050051,0x00000006,0x0000028e,0x0000028c,0x00000000,0x00060052,0x00000023,0x0000054f, - 0x0000028e,0x00000590,0x00000000,0x00050051,0x00000006,0x00000290,0x0000028c,0x00000001, - 0x00060052,0x00000023,0x00000551,0x00000290,0x0000054f,0x00000001,0x00050051,0x00000006, - 0x00000292,0x0000028c,0x00000002,0x00060052,0x00000023,0x00000553,0x00000292,0x00000551, - 0x00000002,0x000200f9,0x00000293,0x000200f8,0x00000293,0x000700f5,0x00000023,0x00000591, - 0x0000053e,0x00000271,0x00000553,0x00000289,0x00050041,0x00000093,0x00000294,0x00000090, - 0x000000bb,0x0004003d,0x00000006,0x00000295,0x00000294,0x000500b7,0x00000042,0x00000296, - 0x00000295,0x00000074,0x000300f7,0x000002a1,0x00000000,0x000400fa,0x00000296,0x00000297, - 0x000002a1,0x000200f8,0x00000297,0x0008004f,0x00000007,0x00000299,0x00000591,0x00000591, - 0x00000000,0x00000001,0x00000002,0x00050041,0x00000093,0x000004c8,0x00000090,0x000000bb, - 0x0004003d,0x00000006,0x000004c9,0x000004c8,0x000500b4,0x00000042,0x000004ca,0x000004c9, - 0x0000009e,0x000300f7,0x000004f0,0x00000000,0x000400fa,0x000004ca,0x000004cb,0x000004d0, - 0x000200f8,0x000004cb,0x00050041,0x00000093,0x000004cc,0x00000090,0x000000c1,0x0004003d, - 0x00000006,0x000004cd,0x000004cc,0x0005008e,0x00000007,0x000004cf,0x00000299,0x000004cd, - 0x000200f9,0x000004f0,0x000200f8,0x000004d0,0x00050041,0x00000093,0x000004d1,0x00000090, - 0x000000bb,0x0004003d,0x00000006,0x000004d2,0x000004d1,0x000500b4,0x00000042,0x000004d3, - 0x000004d2,0x000000c9,0x000300f7,0x000004ef,0x00000000,0x000400fa,0x000004d3,0x000004d4, - 0x000004ef,0x000200f8,0x000004d4,0x00050051,0x00000006,0x000004d6,0x00000591,0x00000000, - 0x00050051,0x00000006,0x000004d8,0x00000591,0x00000001,0x00050051,0x00000006,0x000004da, - 0x00000591,0x00000002,0x0007000c,0x00000006,0x000004db,0x00000001,0x00000028,0x000004d8, - 0x000004da,0x0007000c,0x00000006,0x000004dc,0x00000001,0x00000028,0x000004d6,0x000004db, - 0x000500ba,0x00000042,0x000004de,0x000004dc,0x00000074,0x000300f7,0x000004ee,0x00000000, - 0x000400fa,0x000004de,0x000004df,0x000004ee,0x000200f8,0x000004df,0x00050041,0x00000093, - 0x000004e0,0x00000090,0x000000c1,0x0004003d,0x00000006,0x000004e1,0x000004e0,0x0008000c, - 0x00000006,0x000004e4,0x00000001,0x00000032,0x000004e1,0x000004dc,0x0000009e,0x00050041, - 0x00000093,0x000004e5,0x00000090,0x000000e0,0x0004003d,0x00000006,0x000004e6,0x000004e5, - 0x0008000c,0x00000006,0x000004e9,0x00000001,0x00000032,0x000004e6,0x000004dc,0x0000009e, - 0x00050088,0x00000006,0x000004ea,0x000004e4,0x000004e9,0x0005008e,0x00000007,0x000004ed, - 0x00000299,0x000004ea,0x000200f9,0x000004ee,0x000200f8,0x000004ee,0x000700f5,0x00000007, - 0x00000594,0x00000299,0x000004d4,0x000004ed,0x000004df,0x000200f9,0x000004ef,0x000200f8, - 0x000004ef,0x000700f5,0x00000007,0x00000593,0x00000299,0x000004d0,0x00000594,0x000004ee, - 0x000200f9,0x000004f0,0x000200f8,0x000004f0,0x000700f5,0x00000007,0x00000592,0x000004cf, - 0x000004cb,0x00000593,0x000004ef,0x00050051,0x00000006,0x0000029c,0x00000592,0x00000000, - 0x00060052,0x00000023,0x00000558,0x0000029c,0x00000591,0x00000000,0x00050051,0x00000006, - 0x0000029e,0x00000592,0x00000001,0x00060052,0x00000023,0x0000055a,0x0000029e,0x00000558, - 0x00000001,0x00050051,0x00000006,0x000002a0,0x00000592,0x00000002,0x00060052,0x00000023, - 0x0000055c,0x000002a0,0x0000055a,0x00000002,0x000200f9,0x000002a1,0x000200f8,0x000002a1, - 0x000700f5,0x00000023,0x00000598,0x00000591,0x00000293,0x0000055c,0x000004f0,0x0008004f, - 0x00000007,0x000002a3,0x00000598,0x00000598,0x00000000,0x00000001,0x00000002,0x0008004f, - 0x00000007,0x000002a6,0x00000249,0x00000249,0x00000000,0x00000001,0x00000002,0x00050085, - 0x00000007,0x000002a7,0x000002a3,0x000002a6,0x00050041,0x00000093,0x000002a8,0x00000090, - 0x00000211,0x0004003d,0x00000006,0x000002a9,0x000002a8,0x0005008e,0x00000007,0x000002aa, - 0x000002a7,0x000002a9,0x00050051,0x00000006,0x000002ac,0x000002aa,0x00000000,0x00060052, - 0x00000023,0x0000055e,0x000002ac,0x0000059a,0x00000000,0x00050051,0x00000006,0x000002ae, - 0x000002aa,0x00000001,0x00060052,0x00000023,0x00000560,0x000002ae,0x0000055e,0x00000001, - 0x00050051,0x00000006,0x000002b0,0x000002aa,0x00000002,0x00060052,0x00000023,0x00000562, - 0x000002b0,0x00000560,0x00000002,0x0008004f,0x00000007,0x000002b2,0x00000562,0x00000562, - 0x00000000,0x00000001,0x00000002,0x0005008e,0x00000007,0x000004f5,0x000002b2,0x0000003c, - 0x00050051,0x00000006,0x000002b5,0x000004f5,0x00000000,0x00060052,0x00000023,0x00000564, - 0x000002b5,0x0000059a,0x00000000,0x00050051,0x00000006,0x000002b7,0x000004f5,0x00000001, - 0x00060052,0x00000023,0x00000566,0x000002b7,0x00000564,0x00000001,0x00050051,0x00000006, - 0x000002b9,0x000004f5,0x00000002,0x00060052,0x00000023,0x00000568,0x000002b9,0x00000566, - 0x00000002,0x0008004f,0x00000007,0x000002bb,0x00000568,0x00000568,0x00000000,0x00000001, - 0x00000002,0x00050085,0x00000007,0x000004fd,0x000002bb,0x0000057e,0x0008000c,0x00000007, - 0x00000500,0x00000001,0x0000002b,0x000004fd,0x00000075,0x0000057f,0x0006000c,0x00000007, - 0x00000502,0x00000001,0x00000004,0x00000500,0x0007000c,0x00000007,0x00000503,0x00000001, - 0x0000001a,0x00000502,0x000000a6,0x0005008e,0x00000007,0x00000504,0x00000503,0x00000078, - 0x00050081,0x00000007,0x00000506,0x0000057a,0x00000504,0x0006000c,0x00000007,0x00000508, - 0x00000001,0x00000004,0x00000500,0x0007000c,0x00000007,0x00000509,0x00000001,0x0000001a, - 0x00000508,0x000000a6,0x0005008e,0x00000007,0x0000050a,0x00000509,0x00000079,0x00050081, - 0x00000007,0x0000050c,0x0000057f,0x0000050a,0x00050088,0x00000007,0x0000050f,0x00000506, - 0x0000050c,0x0006000c,0x00000007,0x00000510,0x00000001,0x00000004,0x0000050f,0x0007000c, - 0x00000007,0x00000511,0x00000001,0x0000001a,0x00000510,0x000000b7,0x00050051,0x00000006, - 0x000002be,0x00000511,0x00000000,0x00050051,0x00000006,0x000002c0,0x00000511,0x00000001, - 0x00050051,0x00000006,0x000002c2,0x00000511,0x00000002,0x00050051,0x00000006,0x000002c4, - 0x00000598,0x00000003,0x00050051,0x00000006,0x000002c6,0x00000249,0x00000003,0x00050085, - 0x00000006,0x000002c7,0x000002c4,0x000002c6,0x00070050,0x00000023,0x00000580,0x000002be, - 0x000002c0,0x000002c2,0x000002c7,0x0003003e,0x0000024c,0x00000580,0x000100fd,0x00010038 + 0x74696877,0x6f705f65,0x00746e69,0x00050006,0x0000008e,0x00000009,0x66666f59,0x00746573, + 0x00050006,0x0000008e,0x0000000a,0x656f6352,0x00006666,0x00050006,0x0000008e,0x0000000b, + 0x656f6347,0x00006666,0x00050006,0x0000008e,0x0000000c,0x656f6342,0x00006666,0x00030005, + 0x00000090,0x00000000,0x00050005,0x000000f1,0x74786574,0x30657275,0x00000000,0x00050005, + 0x000000f8,0x74786574,0x31657275,0x00000000,0x00050005,0x00000236,0x74786574,0x32657275, + 0x00000000,0x00050005,0x000002e1,0x75706e69,0x65742e74,0x00000078,0x00050005,0x000002e4, + 0x75706e69,0x6f632e74,0x00726f6c,0x00070005,0x000002e8,0x746e6540,0x6f507972,0x4f746e69, + 0x75707475,0x00000074,0x00050048,0x0000008e,0x00000000,0x00000023,0x00000000,0x00050048, + 0x0000008e,0x00000001,0x00000023,0x00000004,0x00050048,0x0000008e,0x00000002,0x00000023, + 0x00000008,0x00050048,0x0000008e,0x00000003,0x00000023,0x0000000c,0x00050048,0x0000008e, + 0x00000004,0x00000023,0x00000010,0x00050048,0x0000008e,0x00000005,0x00000023,0x00000020, + 0x00050048,0x0000008e,0x00000006,0x00000023,0x00000024,0x00050048,0x0000008e,0x00000007, + 0x00000023,0x00000028,0x00050048,0x0000008e,0x00000008,0x00000023,0x0000002c,0x00050048, + 0x0000008e,0x00000009,0x00000023,0x00000030,0x00050048,0x0000008e,0x0000000a,0x00000023, + 0x00000040,0x00050048,0x0000008e,0x0000000b,0x00000023,0x00000050,0x00050048,0x0000008e, + 0x0000000c,0x00000023,0x00000060,0x00030047,0x0000008e,0x00000002,0x00040047,0x00000090, + 0x00000022,0x00000000,0x00040047,0x00000090,0x00000021,0x00000000,0x00040047,0x000000f1, + 0x00000022,0x00000000,0x00040047,0x000000f1,0x00000021,0x00000001,0x00040047,0x000000f8, + 0x00000022,0x00000000,0x00040047,0x000000f8,0x00000021,0x00000002,0x00040047,0x00000236, + 0x00000022,0x00000000,0x00040047,0x00000236,0x00000021,0x00000003,0x00040047,0x000002e1, + 0x0000001e,0x00000000,0x00040047,0x000002e4,0x0000001e,0x00000001,0x00040047,0x000002e8, + 0x0000001e,0x00000000,0x00020013,0x00000002,0x00030021,0x00000003,0x00000002,0x00030016, + 0x00000006,0x00000020,0x00040017,0x00000007,0x00000006,0x00000003,0x00040017,0x00000021, + 0x00000006,0x00000002,0x00040017,0x00000023,0x00000006,0x00000004,0x0004002b,0x00000006, + 0x0000003c,0x42a00000,0x0004002b,0x00000006,0x00000041,0x3d25aee6,0x00020014,0x00000042, + 0x0004002b,0x00000006,0x0000004b,0x3d6147ae,0x0004002b,0x00000006,0x00000050,0x4019999a, + 0x0004002b,0x00000006,0x0000006e,0x3c4fcdac,0x0006002c,0x00000007,0x0000006f,0x0000006e, + 0x0000006e,0x0000006e,0x0004002b,0x00000006,0x00000071,0x3f560000,0x0004002b,0x00000006, + 0x00000074,0x00000000,0x0006002c,0x00000007,0x00000075,0x00000074,0x00000074,0x00000074, + 0x0004002b,0x00000006,0x00000078,0x4196d000,0x0004002b,0x00000006,0x00000079,0x41958000, + 0x0004002b,0x00000006,0x00000080,0x461c4000,0x0004002b,0x00000006,0x00000085,0x40c8e06b, + 0x0006002c,0x00000007,0x00000086,0x00000085,0x00000085,0x00000085,0x000f001e,0x0000008e, + 0x00000006,0x00000006,0x00000006,0x00000006,0x00000023,0x00000006,0x00000006,0x00000006, + 0x00000006,0x00000023,0x00000023,0x00000023,0x00000023,0x00040020,0x0000008f,0x00000002, + 0x0000008e,0x0004003b,0x0000008f,0x00000090,0x00000002,0x00040015,0x00000091,0x00000020, + 0x00000001,0x0004002b,0x00000091,0x00000092,0x00000008,0x00040020,0x00000093,0x00000002, + 0x00000006,0x0004002b,0x00000006,0x0000009e,0x3f800000,0x0004002b,0x00000006,0x000000a5, + 0x3e232000,0x0006002c,0x00000007,0x000000a6,0x000000a5,0x000000a5,0x000000a5,0x0004002b, + 0x00000006,0x000000b6,0x429db000,0x0006002c,0x00000007,0x000000b7,0x000000b6,0x000000b6, + 0x000000b6,0x0004002b,0x00000091,0x000000bb,0x00000005,0x0004002b,0x00000091,0x000000c1, + 0x00000006,0x0004002b,0x00000006,0x000000c9,0x40000000,0x0004002b,0x00000091,0x000000e0, + 0x00000007,0x00090019,0x000000ee,0x00000006,0x00000001,0x00000000,0x00000000,0x00000000, + 0x00000001,0x00000000,0x0003001b,0x000000ef,0x000000ee,0x00040020,0x000000f0,0x00000000, + 0x000000ef,0x0004003b,0x000000f0,0x000000f1,0x00000000,0x0004002b,0x00000006,0x000000f6, + 0x437f0000,0x0004003b,0x000000f0,0x000000f8,0x00000000,0x0004002b,0x00000006,0x000000fb, + 0x3f000000,0x0004002b,0x00000091,0x00000105,0x00000004,0x00040020,0x00000106,0x00000002, + 0x00000023,0x0004002b,0x00000006,0x00000154,0x3727c5ac,0x0005002c,0x00000021,0x00000155, + 0x00000154,0x00000154,0x0005002c,0x00000021,0x00000156,0x0000009e,0x0000009e,0x0004002b, + 0x00000091,0x00000174,0x00000001,0x0007002c,0x00000023,0x0000017b,0x0000009e,0x0000009e, + 0x0000009e,0x0000009e,0x0004002b,0x00000006,0x0000019d,0x40400000,0x0004002b,0x00000006, + 0x000001a8,0x40800000,0x0004002b,0x00000006,0x000001b3,0x40a00000,0x0004002b,0x00000006, + 0x000001c2,0x40c00000,0x0004002b,0x00000091,0x000001d6,0x00000009,0x0004002b,0x00000091, + 0x000001dd,0x0000000a,0x0004002b,0x00000091,0x000001e4,0x0000000b,0x0004002b,0x00000091, + 0x000001eb,0x0000000c,0x0004002b,0x00000006,0x000001f6,0x40e00000,0x0004002b,0x00000006, + 0x00000225,0x41000000,0x0004003b,0x000000f0,0x00000236,0x00000000,0x0004002b,0x00000091, + 0x00000261,0x00000002,0x00040018,0x00000283,0x00000007,0x00000003,0x0004002b,0x00000006, + 0x00000284,0x3f209d8c,0x0004002b,0x00000006,0x00000285,0x3ea897c8,0x0004002b,0x00000006, + 0x00000286,0x3d3168f9,0x0006002c,0x00000007,0x00000287,0x00000284,0x00000285,0x00000286, + 0x0004002b,0x00000006,0x00000288,0x3d8d82ba,0x0004002b,0x00000006,0x00000289,0x3f6b670a, + 0x0004002b,0x00000006,0x0000028a,0x3c3a27af,0x0006002c,0x00000007,0x0000028b,0x00000288, + 0x00000289,0x0000028a,0x0004002b,0x00000006,0x0000028c,0x3c86466b,0x0004002b,0x00000006, + 0x0000028d,0x3db44029,0x0004002b,0x00000006,0x0000028e,0x3f6545b7,0x0006002c,0x00000007, + 0x0000028f,0x0000028c,0x0000028d,0x0000028e,0x0006002c,0x00000283,0x00000290,0x00000287, + 0x0000028b,0x0000028f,0x0004002b,0x00000091,0x000002ad,0x00000003,0x00040020,0x000002dc, + 0x00000001,0x00000023,0x00040020,0x000002e0,0x00000001,0x00000021,0x0004003b,0x000002e0, + 0x000002e1,0x00000001,0x0004003b,0x000002dc,0x000002e4,0x00000001,0x00040020,0x000002e7, + 0x00000003,0x00000023,0x0004003b,0x000002e7,0x000002e8,0x00000003,0x0005002c,0x00000021, + 0x000006d4,0x000000fb,0x000000fb,0x0004002b,0x00000006,0x000006d5,0x3b800000,0x0004002b, + 0x00000006,0x000006d7,0x3f72a76f,0x0004002b,0x00000006,0x000006d8,0x3d9e8391,0x0006002c, + 0x00000007,0x000006d9,0x00000071,0x00000071,0x00000071,0x0006002c,0x00000007,0x000006da, + 0x00000078,0x00000078,0x00000078,0x0004002b,0x00000006,0x000006dc,0x38d1b717,0x0006002c, + 0x00000007,0x000006dd,0x000006dc,0x000006dc,0x000006dc,0x0006002c,0x00000007,0x000006de, + 0x0000009e,0x0000009e,0x0000009e,0x0007002c,0x00000023,0x000006e0,0x0000009e,0x00000074, + 0x0000009e,0x0000009e,0x00030001,0x00000023,0x000006fd,0x00050036,0x00000002,0x00000004, + 0x00000000,0x00000003,0x000200f8,0x00000005,0x0004003d,0x00000021,0x000002e2,0x000002e1, + 0x0004003d,0x00000023,0x000002e5,0x000002e4,0x00050041,0x00000093,0x00000373,0x00000090, + 0x00000174,0x0004003d,0x00000006,0x00000374,0x00000373,0x000500b4,0x00000042,0x00000375, + 0x00000374,0x00000074,0x000300f7,0x0000043f,0x00000000,0x000400fa,0x00000375,0x00000376, + 0x00000377,0x000200f8,0x00000376,0x000200f9,0x0000043f,0x000200f8,0x00000377,0x00050041, + 0x00000093,0x00000378,0x00000090,0x00000174,0x0004003d,0x00000006,0x00000379,0x00000378, + 0x000500b4,0x00000042,0x0000037a,0x00000379,0x0000009e,0x000300f7,0x0000043e,0x00000000, + 0x000400fa,0x0000037a,0x0000037b,0x00000380,0x000200f8,0x0000037b,0x0004003d,0x000000ef, + 0x0000037c,0x000000f1,0x00050057,0x00000023,0x0000037f,0x0000037c,0x000002e2,0x000200f9, + 0x0000043e,0x000200f8,0x00000380,0x00050041,0x00000093,0x00000381,0x00000090,0x00000174, + 0x0004003d,0x00000006,0x00000382,0x00000381,0x000500b4,0x00000042,0x00000383,0x00000382, + 0x000000c9,0x000300f7,0x0000043d,0x00000000,0x000400fa,0x00000383,0x00000384,0x00000391, + 0x000200f8,0x00000384,0x000400d1,0x00000021,0x00000447,0x000002e2,0x00050041,0x00000106, + 0x00000448,0x00000090,0x00000105,0x0004003d,0x00000023,0x00000449,0x00000448,0x0007004f, + 0x00000021,0x0000044a,0x00000449,0x00000449,0x00000002,0x00000003,0x00050085,0x00000021, + 0x0000044b,0x00000447,0x0000044a,0x0008000c,0x00000021,0x0000044c,0x00000001,0x0000002b, + 0x0000044b,0x00000155,0x00000156,0x00050041,0x00000106,0x0000044e,0x00000090,0x00000105, + 0x0004003d,0x00000023,0x0000044f,0x0000044e,0x0007004f,0x00000021,0x00000450,0x0000044f, + 0x0000044f,0x00000002,0x00000003,0x0005008e,0x00000021,0x00000453,0x0000044c,0x000000fb, + 0x0004007f,0x00000021,0x000006d6,0x00000453,0x0008000c,0x00000021,0x00000454,0x00000001, + 0x00000032,0x000002e2,0x00000450,0x000006d6,0x00050083,0x00000021,0x00000457,0x00000156, + 0x0000044c,0x0006000c,0x00000021,0x00000459,0x00000001,0x0000000a,0x00000454,0x0008000c, + 0x00000021,0x0000045a,0x00000001,0x00000031,0x00000457,0x00000156,0x00000459,0x0006000c, + 0x00000021,0x0000045c,0x00000001,0x00000008,0x00000454,0x00050081,0x00000021,0x0000045e, + 0x0000045c,0x000006d4,0x00050081,0x00000021,0x00000460,0x0000045e,0x0000045a,0x00050041, + 0x00000106,0x00000461,0x00000090,0x00000105,0x0004003d,0x00000023,0x00000462,0x00000461, + 0x0007004f,0x00000021,0x00000463,0x00000462,0x00000462,0x00000000,0x00000001,0x00050085, + 0x00000021,0x00000464,0x00000460,0x00000463,0x0004003d,0x000000ef,0x00000388,0x000000f1, + 0x000400cf,0x00000021,0x0000038c,0x000002e2,0x000400d0,0x00000021,0x0000038f,0x000002e2, + 0x00080058,0x00000023,0x00000390,0x00000388,0x00000464,0x00000004,0x0000038c,0x0000038f, + 0x000200f9,0x0000043d,0x000200f8,0x00000391,0x00050041,0x00000093,0x00000392,0x00000090, + 0x00000174,0x0004003d,0x00000006,0x00000393,0x00000392,0x000500b4,0x00000042,0x00000394, + 0x00000393,0x0000019d,0x000300f7,0x0000043c,0x00000000,0x000400fa,0x00000394,0x00000395, + 0x00000399,0x000200f8,0x00000395,0x0004003d,0x000000ef,0x00000468,0x000000f1,0x00050057, + 0x00000023,0x0000046a,0x00000468,0x000002e2,0x00050051,0x00000006,0x0000046b,0x0000046a, + 0x00000000,0x0004003d,0x000000ef,0x0000046d,0x000000f8,0x0008000c,0x00000006,0x0000046f, + 0x00000001,0x00000032,0x0000046b,0x000000f6,0x000000fb,0x00050085,0x00000006,0x00000470, + 0x0000046f,0x000006d5,0x00050050,0x00000021,0x00000471,0x00000470,0x000000fb,0x00050057, + 0x00000023,0x00000472,0x0000046d,0x00000471,0x000200f9,0x0000043c,0x000200f8,0x00000399, + 0x00050041,0x00000093,0x0000039a,0x00000090,0x00000174,0x0004003d,0x00000006,0x0000039b, + 0x0000039a,0x000500b4,0x00000042,0x0000039c,0x0000039b,0x000001a8,0x000300f7,0x0000043b, + 0x00000000,0x000400fa,0x0000039c,0x0000039d,0x000003a1,0x000200f8,0x0000039d,0x00050041, + 0x00000106,0x00000481,0x00000090,0x00000105,0x0004003d,0x00000023,0x00000482,0x00000481, + 0x0007004f,0x00000021,0x00000483,0x00000482,0x00000482,0x00000002,0x00000003,0x0008000c, + 0x00000021,0x00000486,0x00000001,0x00000032,0x000002e2,0x00000483,0x000006d4,0x0006000c, + 0x00000021,0x00000488,0x00000001,0x00000008,0x00000486,0x00050083,0x00000021,0x0000048a, + 0x00000488,0x000006d4,0x00050041,0x00000106,0x0000048b,0x00000090,0x00000105,0x0004003d, + 0x00000023,0x0000048c,0x0000048b,0x0007004f,0x00000021,0x0000048d,0x0000048c,0x0000048c, + 0x00000000,0x00000001,0x00050085,0x00000021,0x0000048e,0x0000048a,0x0000048d,0x0006000c, + 0x00000021,0x00000490,0x00000001,0x00000008,0x00000486,0x00050081,0x00000021,0x00000492, + 0x00000490,0x000006d4,0x00050041,0x00000106,0x00000493,0x00000090,0x00000105,0x0004003d, + 0x00000023,0x00000494,0x00000493,0x0007004f,0x00000021,0x00000495,0x00000494,0x00000494, + 0x00000000,0x00000001,0x00050085,0x00000021,0x00000496,0x00000492,0x00000495,0x00050051, + 0x00000006,0x00000497,0x0000048e,0x00000000,0x00050051,0x00000006,0x00000498,0x0000048e, + 0x00000001,0x00050051,0x00000006,0x00000499,0x00000496,0x00000000,0x00050051,0x00000006, + 0x0000049a,0x00000496,0x00000001,0x00070050,0x00000023,0x0000049b,0x00000497,0x00000498, + 0x00000499,0x0000049a,0x0006000c,0x00000021,0x0000049d,0x00000001,0x0000000a,0x00000486, + 0x0007004f,0x00000021,0x0000049f,0x0000049b,0x0000049b,0x00000000,0x00000001,0x0004003d, + 0x000000ef,0x000004bd,0x000000f1,0x00050057,0x00000023,0x000004bf,0x000004bd,0x0000049f, + 0x00050051,0x00000006,0x000004c0,0x000004bf,0x00000000,0x0004003d,0x000000ef,0x000004c2, + 0x000000f8,0x0008000c,0x00000006,0x000004c4,0x00000001,0x00000032,0x000004c0,0x000000f6, + 0x000000fb,0x00050085,0x00000006,0x000004c5,0x000004c4,0x000006d5,0x00050050,0x00000021, + 0x000004c6,0x000004c5,0x000000fb,0x00050057,0x00000023,0x000004c7,0x000004c2,0x000004c6, + 0x0007004f,0x00000021,0x000004a2,0x0000049b,0x0000049b,0x00000000,0x00000003,0x0004003d, + 0x000000ef,0x000004cb,0x000000f1,0x00050057,0x00000023,0x000004cd,0x000004cb,0x000004a2, + 0x00050051,0x00000006,0x000004ce,0x000004cd,0x00000000,0x0004003d,0x000000ef,0x000004d0, + 0x000000f8,0x0008000c,0x00000006,0x000004d2,0x00000001,0x00000032,0x000004ce,0x000000f6, + 0x000000fb,0x00050085,0x00000006,0x000004d3,0x000004d2,0x000006d5,0x00050050,0x00000021, + 0x000004d4,0x000004d3,0x000000fb,0x00050057,0x00000023,0x000004d5,0x000004d0,0x000004d4, + 0x0007004f,0x00000021,0x000004a5,0x0000049b,0x0000049b,0x00000002,0x00000001,0x0004003d, + 0x000000ef,0x000004d9,0x000000f1,0x00050057,0x00000023,0x000004db,0x000004d9,0x000004a5, + 0x00050051,0x00000006,0x000004dc,0x000004db,0x00000000,0x0004003d,0x000000ef,0x000004de, + 0x000000f8,0x0008000c,0x00000006,0x000004e0,0x00000001,0x00000032,0x000004dc,0x000000f6, + 0x000000fb,0x00050085,0x00000006,0x000004e1,0x000004e0,0x000006d5,0x00050050,0x00000021, + 0x000004e2,0x000004e1,0x000000fb,0x00050057,0x00000023,0x000004e3,0x000004de,0x000004e2, + 0x0007004f,0x00000021,0x000004a8,0x0000049b,0x0000049b,0x00000002,0x00000003,0x0004003d, + 0x000000ef,0x000004e7,0x000000f1,0x00050057,0x00000023,0x000004e9,0x000004e7,0x000004a8, + 0x00050051,0x00000006,0x000004ea,0x000004e9,0x00000000,0x0004003d,0x000000ef,0x000004ec, + 0x000000f8,0x0008000c,0x00000006,0x000004ee,0x00000001,0x00000032,0x000004ea,0x000000f6, + 0x000000fb,0x00050085,0x00000006,0x000004ef,0x000004ee,0x000006d5,0x00050050,0x00000021, + 0x000004f0,0x000004ef,0x000000fb,0x00050057,0x00000023,0x000004f1,0x000004ec,0x000004f0, + 0x00050051,0x00000006,0x000004ad,0x0000049d,0x00000001,0x00070050,0x00000023,0x000004ae, + 0x000004ad,0x000004ad,0x000004ad,0x000004ad,0x0008000c,0x00000023,0x000004af,0x00000001, + 0x0000002e,0x000004c7,0x000004d5,0x000004ae,0x00050051,0x00000006,0x000004b3,0x0000049d, + 0x00000001,0x00070050,0x00000023,0x000004b4,0x000004b3,0x000004b3,0x000004b3,0x000004b3, + 0x0008000c,0x00000023,0x000004b5,0x00000001,0x0000002e,0x000004e3,0x000004f1,0x000004b4, + 0x00050051,0x00000006,0x000004b7,0x0000049d,0x00000000,0x00070050,0x00000023,0x000004b8, + 0x000004b7,0x000004b7,0x000004b7,0x000004b7,0x0008000c,0x00000023,0x000004b9,0x00000001, + 0x0000002e,0x000004af,0x000004b5,0x000004b8,0x000200f9,0x0000043b,0x000200f8,0x000003a1, + 0x00050041,0x00000093,0x000003a2,0x00000090,0x00000174,0x0004003d,0x00000006,0x000003a3, + 0x000003a2,0x000500b4,0x00000042,0x000003a4,0x000003a3,0x000001b3,0x000300f7,0x0000043a, + 0x00000000,0x000400fa,0x000003a4,0x000003a5,0x000003ab,0x000200f8,0x000003a5,0x000400d1, + 0x00000021,0x000004f8,0x000002e2,0x00050041,0x00000106,0x000004f9,0x00000090,0x00000105, + 0x0004003d,0x00000023,0x000004fa,0x000004f9,0x0007004f,0x00000021,0x000004fb,0x000004fa, + 0x000004fa,0x00000002,0x00000003,0x00050085,0x00000021,0x000004fc,0x000004f8,0x000004fb, + 0x0008000c,0x00000021,0x000004fd,0x00000001,0x0000002b,0x000004fc,0x00000155,0x00000156, + 0x00050041,0x00000106,0x000004ff,0x00000090,0x00000105,0x0004003d,0x00000023,0x00000500, + 0x000004ff,0x0007004f,0x00000021,0x00000501,0x00000500,0x00000500,0x00000002,0x00000003, + 0x0005008e,0x00000021,0x00000504,0x000004fd,0x000000fb,0x0004007f,0x00000021,0x000006d3, + 0x00000504,0x0008000c,0x00000021,0x00000505,0x00000001,0x00000032,0x000002e2,0x00000501, + 0x000006d3,0x00050083,0x00000021,0x00000508,0x00000156,0x000004fd,0x0006000c,0x00000021, + 0x0000050a,0x00000001,0x0000000a,0x00000505,0x0008000c,0x00000021,0x0000050b,0x00000001, + 0x00000031,0x00000508,0x00000156,0x0000050a,0x0006000c,0x00000021,0x0000050d,0x00000001, + 0x00000008,0x00000505,0x00050081,0x00000021,0x0000050f,0x0000050d,0x000006d4,0x00050081, + 0x00000021,0x00000511,0x0000050f,0x0000050b,0x00050041,0x00000106,0x00000512,0x00000090, + 0x00000105,0x0004003d,0x00000023,0x00000513,0x00000512,0x0007004f,0x00000021,0x00000514, + 0x00000513,0x00000513,0x00000000,0x00000001,0x00050085,0x00000021,0x00000515,0x00000511, + 0x00000514,0x00050041,0x00000106,0x00000524,0x00000090,0x00000105,0x0004003d,0x00000023, + 0x00000525,0x00000524,0x0007004f,0x00000021,0x00000526,0x00000525,0x00000525,0x00000002, + 0x00000003,0x0008000c,0x00000021,0x00000529,0x00000001,0x00000032,0x00000515,0x00000526, + 0x000006d4,0x0006000c,0x00000021,0x0000052b,0x00000001,0x00000008,0x00000529,0x00050083, + 0x00000021,0x0000052d,0x0000052b,0x000006d4,0x00050041,0x00000106,0x0000052e,0x00000090, + 0x00000105,0x0004003d,0x00000023,0x0000052f,0x0000052e,0x0007004f,0x00000021,0x00000530, + 0x0000052f,0x0000052f,0x00000000,0x00000001,0x00050085,0x00000021,0x00000531,0x0000052d, + 0x00000530,0x0006000c,0x00000021,0x00000533,0x00000001,0x00000008,0x00000529,0x00050081, + 0x00000021,0x00000535,0x00000533,0x000006d4,0x00050041,0x00000106,0x00000536,0x00000090, + 0x00000105,0x0004003d,0x00000023,0x00000537,0x00000536,0x0007004f,0x00000021,0x00000538, + 0x00000537,0x00000537,0x00000000,0x00000001,0x00050085,0x00000021,0x00000539,0x00000535, + 0x00000538,0x00050051,0x00000006,0x0000053a,0x00000531,0x00000000,0x00050051,0x00000006, + 0x0000053b,0x00000531,0x00000001,0x00050051,0x00000006,0x0000053c,0x00000539,0x00000000, + 0x00050051,0x00000006,0x0000053d,0x00000539,0x00000001,0x00070050,0x00000023,0x0000053e, + 0x0000053a,0x0000053b,0x0000053c,0x0000053d,0x0006000c,0x00000021,0x00000540,0x00000001, + 0x0000000a,0x00000529,0x0007004f,0x00000021,0x00000542,0x0000053e,0x0000053e,0x00000000, + 0x00000001,0x0004003d,0x000000ef,0x00000560,0x000000f1,0x00050057,0x00000023,0x00000562, + 0x00000560,0x00000542,0x00050051,0x00000006,0x00000563,0x00000562,0x00000000,0x0004003d, + 0x000000ef,0x00000565,0x000000f8,0x0008000c,0x00000006,0x00000567,0x00000001,0x00000032, + 0x00000563,0x000000f6,0x000000fb,0x00050085,0x00000006,0x00000568,0x00000567,0x000006d5, + 0x00050050,0x00000021,0x00000569,0x00000568,0x000000fb,0x00050057,0x00000023,0x0000056a, + 0x00000565,0x00000569,0x0007004f,0x00000021,0x00000545,0x0000053e,0x0000053e,0x00000000, + 0x00000003,0x0004003d,0x000000ef,0x0000056e,0x000000f1,0x00050057,0x00000023,0x00000570, + 0x0000056e,0x00000545,0x00050051,0x00000006,0x00000571,0x00000570,0x00000000,0x0004003d, + 0x000000ef,0x00000573,0x000000f8,0x0008000c,0x00000006,0x00000575,0x00000001,0x00000032, + 0x00000571,0x000000f6,0x000000fb,0x00050085,0x00000006,0x00000576,0x00000575,0x000006d5, + 0x00050050,0x00000021,0x00000577,0x00000576,0x000000fb,0x00050057,0x00000023,0x00000578, + 0x00000573,0x00000577,0x0007004f,0x00000021,0x00000548,0x0000053e,0x0000053e,0x00000002, + 0x00000001,0x0004003d,0x000000ef,0x0000057c,0x000000f1,0x00050057,0x00000023,0x0000057e, + 0x0000057c,0x00000548,0x00050051,0x00000006,0x0000057f,0x0000057e,0x00000000,0x0004003d, + 0x000000ef,0x00000581,0x000000f8,0x0008000c,0x00000006,0x00000583,0x00000001,0x00000032, + 0x0000057f,0x000000f6,0x000000fb,0x00050085,0x00000006,0x00000584,0x00000583,0x000006d5, + 0x00050050,0x00000021,0x00000585,0x00000584,0x000000fb,0x00050057,0x00000023,0x00000586, + 0x00000581,0x00000585,0x0007004f,0x00000021,0x0000054b,0x0000053e,0x0000053e,0x00000002, + 0x00000003,0x0004003d,0x000000ef,0x0000058a,0x000000f1,0x00050057,0x00000023,0x0000058c, + 0x0000058a,0x0000054b,0x00050051,0x00000006,0x0000058d,0x0000058c,0x00000000,0x0004003d, + 0x000000ef,0x0000058f,0x000000f8,0x0008000c,0x00000006,0x00000591,0x00000001,0x00000032, + 0x0000058d,0x000000f6,0x000000fb,0x00050085,0x00000006,0x00000592,0x00000591,0x000006d5, + 0x00050050,0x00000021,0x00000593,0x00000592,0x000000fb,0x00050057,0x00000023,0x00000594, + 0x0000058f,0x00000593,0x00050051,0x00000006,0x00000550,0x00000540,0x00000001,0x00070050, + 0x00000023,0x00000551,0x00000550,0x00000550,0x00000550,0x00000550,0x0008000c,0x00000023, + 0x00000552,0x00000001,0x0000002e,0x0000056a,0x00000578,0x00000551,0x00050051,0x00000006, + 0x00000556,0x00000540,0x00000001,0x00070050,0x00000023,0x00000557,0x00000556,0x00000556, + 0x00000556,0x00000556,0x0008000c,0x00000023,0x00000558,0x00000001,0x0000002e,0x00000586, + 0x00000594,0x00000557,0x00050051,0x00000006,0x0000055a,0x00000540,0x00000000,0x00070050, + 0x00000023,0x0000055b,0x0000055a,0x0000055a,0x0000055a,0x0000055a,0x0008000c,0x00000023, + 0x0000055c,0x00000001,0x0000002e,0x00000552,0x00000558,0x0000055b,0x000200f9,0x0000043a, + 0x000200f8,0x000003ab,0x00050041,0x00000093,0x000003ac,0x00000090,0x00000174,0x0004003d, + 0x00000006,0x000003ad,0x000003ac,0x000500b4,0x00000042,0x000003ae,0x000003ad,0x000001c2, + 0x000300f7,0x00000439,0x00000000,0x000400fa,0x000003ae,0x000003af,0x000003d7,0x000200f8, + 0x000003af,0x0004003d,0x000000ef,0x000003b0,0x000000f1,0x00050057,0x00000023,0x000003b3, + 0x000003b0,0x000002e2,0x00050051,0x00000006,0x000003b4,0x000003b3,0x00000000,0x0004003d, + 0x000000ef,0x000003b6,0x000000f8,0x00050057,0x00000023,0x000003b9,0x000003b6,0x000002e2, + 0x00050051,0x00000006,0x000003bc,0x000003b9,0x00000000,0x00050051,0x00000006,0x000003be, + 0x000003b9,0x00000001,0x00060050,0x00000007,0x000006d1,0x000003b4,0x000003bc,0x000003be, + 0x00050041,0x00000106,0x000003bf,0x00000090,0x000001d6,0x0004003d,0x00000023,0x000003c0, + 0x000003bf,0x0008004f,0x00000007,0x000003c1,0x000003c0,0x000003c0,0x00000000,0x00000001, + 0x00000002,0x00050081,0x00000007,0x000003c3,0x000006d1,0x000003c1,0x00050041,0x00000106, + 0x000003c5,0x00000090,0x000001dd,0x0004003d,0x00000023,0x000003c6,0x000003c5,0x0008004f, + 0x00000007,0x000003c7,0x000003c6,0x000003c6,0x00000000,0x00000001,0x00000002,0x00050094, + 0x00000006,0x000003c8,0x000003c3,0x000003c7,0x00050041,0x00000106,0x000003cb,0x00000090, + 0x000001e4,0x0004003d,0x00000023,0x000003cc,0x000003cb,0x0008004f,0x00000007,0x000003cd, + 0x000003cc,0x000003cc,0x00000000,0x00000001,0x00000002,0x00050094,0x00000006,0x000003ce, + 0x000003c3,0x000003cd,0x00050041,0x00000106,0x000003d1,0x00000090,0x000001eb,0x0004003d, + 0x00000023,0x000003d2,0x000003d1,0x0008004f,0x00000007,0x000003d3,0x000003d2,0x000003d2, + 0x00000000,0x00000001,0x00000002,0x00050094,0x00000006,0x000003d4,0x000003c3,0x000003d3, + 0x00070050,0x00000023,0x000006d2,0x000003c8,0x000003ce,0x000003d4,0x0000009e,0x000200f9, + 0x00000439,0x000200f8,0x000003d7,0x00050041,0x00000093,0x000003d8,0x00000090,0x00000174, + 0x0004003d,0x00000006,0x000003d9,0x000003d8,0x000500b4,0x00000042,0x000003da,0x000003d9, + 0x000001f6,0x000300f7,0x00000438,0x00000000,0x000400fa,0x000003da,0x000003db,0x00000403, + 0x000200f8,0x000003db,0x0004003d,0x000000ef,0x000003dc,0x000000f1,0x00050057,0x00000023, + 0x000003df,0x000003dc,0x000002e2,0x00050051,0x00000006,0x000003e0,0x000003df,0x00000000, + 0x0004003d,0x000000ef,0x000003e2,0x000000f8,0x00050057,0x00000023,0x000003e5,0x000003e2, + 0x000002e2,0x00050051,0x00000006,0x000003e8,0x000003e5,0x00000001,0x00050051,0x00000006, + 0x000003ea,0x000003e5,0x00000000,0x00060050,0x00000007,0x000006cf,0x000003e0,0x000003e8, + 0x000003ea,0x00050041,0x00000106,0x000003eb,0x00000090,0x000001d6,0x0004003d,0x00000023, + 0x000003ec,0x000003eb,0x0008004f,0x00000007,0x000003ed,0x000003ec,0x000003ec,0x00000000, + 0x00000001,0x00000002,0x00050081,0x00000007,0x000003ef,0x000006cf,0x000003ed,0x00050041, + 0x00000106,0x000003f1,0x00000090,0x000001dd,0x0004003d,0x00000023,0x000003f2,0x000003f1, + 0x0008004f,0x00000007,0x000003f3,0x000003f2,0x000003f2,0x00000000,0x00000001,0x00000002, + 0x00050094,0x00000006,0x000003f4,0x000003ef,0x000003f3,0x00050041,0x00000106,0x000003f7, + 0x00000090,0x000001e4,0x0004003d,0x00000023,0x000003f8,0x000003f7,0x0008004f,0x00000007, + 0x000003f9,0x000003f8,0x000003f8,0x00000000,0x00000001,0x00000002,0x00050094,0x00000006, + 0x000003fa,0x000003ef,0x000003f9,0x00050041,0x00000106,0x000003fd,0x00000090,0x000001eb, + 0x0004003d,0x00000023,0x000003fe,0x000003fd,0x0008004f,0x00000007,0x000003ff,0x000003fe, + 0x000003fe,0x00000000,0x00000001,0x00000002,0x00050094,0x00000006,0x00000400,0x000003ef, + 0x000003ff,0x00070050,0x00000023,0x000006d0,0x000003f4,0x000003fa,0x00000400,0x0000009e, + 0x000200f9,0x00000438,0x000200f8,0x00000403,0x00050041,0x00000093,0x00000404,0x00000090, + 0x00000174,0x0004003d,0x00000006,0x00000405,0x00000404,0x000500b4,0x00000042,0x00000406, + 0x00000405,0x00000225,0x000300f7,0x00000437,0x00000000,0x000400fa,0x00000406,0x00000407, + 0x00000432,0x000200f8,0x00000407,0x0004003d,0x000000ef,0x00000408,0x000000f1,0x00050057, + 0x00000023,0x0000040b,0x00000408,0x000002e2,0x00050051,0x00000006,0x0000040c,0x0000040b, + 0x00000000,0x0004003d,0x000000ef,0x0000040e,0x000000f8,0x00050057,0x00000023,0x00000411, + 0x0000040e,0x000002e2,0x00050051,0x00000006,0x00000412,0x00000411,0x00000000,0x0004003d, + 0x000000ef,0x00000414,0x00000236,0x00050057,0x00000023,0x00000417,0x00000414,0x000002e2, + 0x00050051,0x00000006,0x00000418,0x00000417,0x00000000,0x00060050,0x00000007,0x000006cd, + 0x0000040c,0x00000412,0x00000418,0x00050041,0x00000106,0x0000041a,0x00000090,0x000001d6, + 0x0004003d,0x00000023,0x0000041b,0x0000041a,0x0008004f,0x00000007,0x0000041c,0x0000041b, + 0x0000041b,0x00000000,0x00000001,0x00000002,0x00050081,0x00000007,0x0000041e,0x000006cd, + 0x0000041c,0x00050041,0x00000106,0x00000420,0x00000090,0x000001dd,0x0004003d,0x00000023, + 0x00000421,0x00000420,0x0008004f,0x00000007,0x00000422,0x00000421,0x00000421,0x00000000, + 0x00000001,0x00000002,0x00050094,0x00000006,0x00000423,0x0000041e,0x00000422,0x00050041, + 0x00000106,0x00000426,0x00000090,0x000001e4,0x0004003d,0x00000023,0x00000427,0x00000426, + 0x0008004f,0x00000007,0x00000428,0x00000427,0x00000427,0x00000000,0x00000001,0x00000002, + 0x00050094,0x00000006,0x00000429,0x0000041e,0x00000428,0x00050041,0x00000106,0x0000042c, + 0x00000090,0x000001eb,0x0004003d,0x00000023,0x0000042d,0x0000042c,0x0008004f,0x00000007, + 0x0000042e,0x0000042d,0x0000042d,0x00000000,0x00000001,0x00000002,0x00050094,0x00000006, + 0x0000042f,0x0000041e,0x0000042e,0x00070050,0x00000023,0x000006ce,0x00000423,0x00000429, + 0x0000042f,0x0000009e,0x000200f9,0x00000437,0x000200f8,0x00000432,0x000200f9,0x00000437, + 0x000200f8,0x00000437,0x000700f5,0x00000023,0x000006e9,0x000006ce,0x00000407,0x000006e0, + 0x00000432,0x000200f9,0x00000438,0x000200f8,0x00000438,0x000700f5,0x00000023,0x000006e8, + 0x000006d0,0x000003db,0x000006e9,0x00000437,0x000200f9,0x00000439,0x000200f8,0x00000439, + 0x000700f5,0x00000023,0x000006e7,0x000006d2,0x000003af,0x000006e8,0x00000438,0x000200f9, + 0x0000043a,0x000200f8,0x0000043a,0x000700f5,0x00000023,0x000006e6,0x0000055c,0x000003a5, + 0x000006e7,0x00000439,0x000200f9,0x0000043b,0x000200f8,0x0000043b,0x000700f5,0x00000023, + 0x000006e5,0x000004b9,0x0000039d,0x000006e6,0x0000043a,0x000200f9,0x0000043c,0x000200f8, + 0x0000043c,0x000700f5,0x00000023,0x000006e4,0x00000472,0x00000395,0x000006e5,0x0000043b, + 0x000200f9,0x0000043d,0x000200f8,0x0000043d,0x000700f5,0x00000023,0x000006e3,0x00000390, + 0x00000384,0x000006e4,0x0000043c,0x000200f9,0x0000043e,0x000200f8,0x0000043e,0x000700f5, + 0x00000023,0x000006e2,0x0000037f,0x0000037b,0x000006e3,0x0000043d,0x000200f9,0x0000043f, + 0x000200f8,0x0000043f,0x000700f5,0x00000023,0x000006e1,0x0000017b,0x00000376,0x000006e2, + 0x0000043e,0x00050041,0x00000093,0x0000030a,0x00000090,0x00000261,0x0004003d,0x00000006, + 0x0000030b,0x0000030a,0x000500b4,0x00000042,0x0000030c,0x0000030b,0x0000019d,0x000300f7, + 0x0000032f,0x00000000,0x000400fa,0x0000030c,0x0000030d,0x00000317,0x000200f8,0x0000030d, + 0x0008004f,0x00000007,0x0000030f,0x000006e1,0x000006e1,0x00000000,0x00000001,0x00000002, + 0x0006000c,0x00000007,0x000005a3,0x00000001,0x00000004,0x0000030f,0x0007000c,0x00000007, + 0x000005a4,0x00000001,0x0000001a,0x000005a3,0x0000006f,0x00050083,0x00000007,0x000005a6, + 0x000005a4,0x000006d9,0x0007000c,0x00000007,0x000005a7,0x00000001,0x00000028,0x000005a6, + 0x00000075,0x0006000c,0x00000007,0x000005a9,0x00000001,0x00000004,0x0000030f,0x0007000c, + 0x00000007,0x000005aa,0x00000001,0x0000001a,0x000005a9,0x0000006f,0x0005008e,0x00000007, + 0x000005ab,0x000005aa,0x00000079,0x00050083,0x00000007,0x000005ad,0x000006da,0x000005ab, + 0x00050088,0x00000007,0x000005b0,0x000005a7,0x000005ad,0x0006000c,0x00000007,0x000005b1, + 0x00000001,0x00000004,0x000005b0,0x0007000c,0x00000007,0x000005b2,0x00000001,0x0000001a, + 0x000005b1,0x00000086,0x0005008e,0x00000007,0x000005b3,0x000005b2,0x00000080,0x00050041, + 0x00000093,0x0000059a,0x00000090,0x00000092,0x0004003d,0x00000006,0x0000059b,0x0000059a, + 0x00060050,0x00000007,0x0000059c,0x0000059b,0x0000059b,0x0000059b,0x00050088,0x00000007, + 0x0000059d,0x000005b3,0x0000059c,0x00050051,0x00000006,0x00000312,0x0000059d,0x00000000, + 0x00060052,0x00000023,0x00000693,0x00000312,0x000006e1,0x00000000,0x00050051,0x00000006, + 0x00000314,0x0000059d,0x00000001,0x00060052,0x00000023,0x00000695,0x00000314,0x00000693, + 0x00000001,0x00050051,0x00000006,0x00000316,0x0000059d,0x00000002,0x00060052,0x00000023, + 0x00000697,0x00000316,0x00000695,0x00000002,0x000200f9,0x0000032f,0x000200f8,0x00000317, + 0x00050041,0x00000093,0x00000318,0x00000090,0x00000261,0x0004003d,0x00000006,0x00000319, + 0x00000318,0x000500b4,0x00000042,0x0000031a,0x00000319,0x0000009e,0x000300f7,0x00000325, + 0x00000000,0x000400fa,0x0000031a,0x0000031b,0x00000325,0x000200f8,0x0000031b,0x00050051, + 0x00000006,0x000005ba,0x000006e1,0x00000000,0x000500bc,0x00000042,0x000005c9,0x000005ba, + 0x00000041,0x000300f7,0x000005d3,0x00000000,0x000400fa,0x000005c9,0x000005ca,0x000005cd, + 0x000200f8,0x000005ca,0x00050085,0x00000006,0x000005cc,0x000005ba,0x000006d8,0x000200f9, + 0x000005d3,0x000200f8,0x000005cd,0x00050081,0x00000006,0x000005cf,0x000005ba,0x0000004b, + 0x0006000c,0x00000006,0x000005d0,0x00000001,0x00000004,0x000005cf,0x00050085,0x00000006, + 0x000005d1,0x000005d0,0x000006d7,0x0007000c,0x00000006,0x000005d2,0x00000001,0x0000001a, + 0x000005d1,0x00000050,0x000200f9,0x000005d3,0x000200f8,0x000005d3,0x000700f5,0x00000006, + 0x000006ea,0x000005cc,0x000005ca,0x000005d2,0x000005cd,0x00050051,0x00000006,0x000005be, + 0x000006e1,0x00000001,0x000500bc,0x00000042,0x000005d8,0x000005be,0x00000041,0x000300f7, + 0x000005e2,0x00000000,0x000400fa,0x000005d8,0x000005d9,0x000005dc,0x000200f8,0x000005d9, + 0x00050085,0x00000006,0x000005db,0x000005be,0x000006d8,0x000200f9,0x000005e2,0x000200f8, + 0x000005dc,0x00050081,0x00000006,0x000005de,0x000005be,0x0000004b,0x0006000c,0x00000006, + 0x000005df,0x00000001,0x00000004,0x000005de,0x00050085,0x00000006,0x000005e0,0x000005df, + 0x000006d7,0x0007000c,0x00000006,0x000005e1,0x00000001,0x0000001a,0x000005e0,0x00000050, + 0x000200f9,0x000005e2,0x000200f8,0x000005e2,0x000700f5,0x00000006,0x000006ec,0x000005db, + 0x000005d9,0x000005e1,0x000005dc,0x00050051,0x00000006,0x000005c2,0x000006e1,0x00000002, + 0x000500bc,0x00000042,0x000005e7,0x000005c2,0x00000041,0x000300f7,0x000005f1,0x00000000, + 0x000400fa,0x000005e7,0x000005e8,0x000005eb,0x000200f8,0x000005e8,0x00050085,0x00000006, + 0x000005ea,0x000005c2,0x000006d8,0x000200f9,0x000005f1,0x000200f8,0x000005eb,0x00050081, + 0x00000006,0x000005ed,0x000005c2,0x0000004b,0x0006000c,0x00000006,0x000005ee,0x00000001, + 0x00000004,0x000005ed,0x00050085,0x00000006,0x000005ef,0x000005ee,0x000006d7,0x0007000c, + 0x00000006,0x000005f0,0x00000001,0x0000001a,0x000005ef,0x00000050,0x000200f9,0x000005f1, + 0x000200f8,0x000005f1,0x000700f5,0x00000006,0x000006ee,0x000005ea,0x000005e8,0x000005f0, + 0x000005eb,0x00060052,0x00000023,0x000006a2,0x000006ea,0x000006e1,0x00000000,0x00060052, + 0x00000023,0x000006a4,0x000006ec,0x000006a2,0x00000001,0x00060052,0x00000023,0x000006a6, + 0x000006ee,0x000006a4,0x00000002,0x000200f9,0x00000325,0x000200f8,0x00000325,0x000700f5, + 0x00000023,0x000006f3,0x000006e1,0x00000317,0x000006a6,0x000005f1,0x0008004f,0x00000007, + 0x00000327,0x000006f3,0x000006f3,0x00000000,0x00000001,0x00000002,0x00050090,0x00000007, + 0x00000328,0x00000327,0x00000290,0x00050051,0x00000006,0x0000032a,0x00000328,0x00000000, + 0x00060052,0x00000023,0x000006a8,0x0000032a,0x000006f3,0x00000000,0x00050051,0x00000006, + 0x0000032c,0x00000328,0x00000001,0x00060052,0x00000023,0x000006aa,0x0000032c,0x000006a8, + 0x00000001,0x00050051,0x00000006,0x0000032e,0x00000328,0x00000002,0x00060052,0x00000023, + 0x000006ac,0x0000032e,0x000006aa,0x00000002,0x000200f9,0x0000032f,0x000200f8,0x0000032f, + 0x000700f5,0x00000023,0x000006f4,0x00000697,0x0000030d,0x000006ac,0x00000325,0x00050041, + 0x00000093,0x00000330,0x00000090,0x000000bb,0x0004003d,0x00000006,0x00000331,0x00000330, + 0x000500b7,0x00000042,0x00000332,0x00000331,0x00000074,0x000300f7,0x0000033d,0x00000000, + 0x000400fa,0x00000332,0x00000333,0x0000033d,0x000200f8,0x00000333,0x0008004f,0x00000007, + 0x00000335,0x000006f4,0x000006f4,0x00000000,0x00000001,0x00000002,0x00050041,0x00000093, + 0x000005f7,0x00000090,0x000000bb,0x0004003d,0x00000006,0x000005f8,0x000005f7,0x000500b4, + 0x00000042,0x000005f9,0x000005f8,0x0000009e,0x000300f7,0x0000061f,0x00000000,0x000400fa, + 0x000005f9,0x000005fa,0x000005ff,0x000200f8,0x000005fa,0x00050041,0x00000093,0x000005fb, + 0x00000090,0x000000c1,0x0004003d,0x00000006,0x000005fc,0x000005fb,0x0005008e,0x00000007, + 0x000005fe,0x00000335,0x000005fc,0x000200f9,0x0000061f,0x000200f8,0x000005ff,0x00050041, + 0x00000093,0x00000600,0x00000090,0x000000bb,0x0004003d,0x00000006,0x00000601,0x00000600, + 0x000500b4,0x00000042,0x00000602,0x00000601,0x000000c9,0x000300f7,0x0000061e,0x00000000, + 0x000400fa,0x00000602,0x00000603,0x0000061e,0x000200f8,0x00000603,0x00050051,0x00000006, + 0x00000605,0x000006f4,0x00000000,0x00050051,0x00000006,0x00000607,0x000006f4,0x00000001, + 0x00050051,0x00000006,0x00000609,0x000006f4,0x00000002,0x0007000c,0x00000006,0x0000060a, + 0x00000001,0x00000028,0x00000607,0x00000609,0x0007000c,0x00000006,0x0000060b,0x00000001, + 0x00000028,0x00000605,0x0000060a,0x000500ba,0x00000042,0x0000060d,0x0000060b,0x00000074, + 0x000300f7,0x0000061d,0x00000000,0x000400fa,0x0000060d,0x0000060e,0x0000061d,0x000200f8, + 0x0000060e,0x00050041,0x00000093,0x0000060f,0x00000090,0x000000c1,0x0004003d,0x00000006, + 0x00000610,0x0000060f,0x0008000c,0x00000006,0x00000613,0x00000001,0x00000032,0x00000610, + 0x0000060b,0x0000009e,0x00050041,0x00000093,0x00000614,0x00000090,0x000000e0,0x0004003d, + 0x00000006,0x00000615,0x00000614,0x0008000c,0x00000006,0x00000618,0x00000001,0x00000032, + 0x00000615,0x0000060b,0x0000009e,0x00050088,0x00000006,0x00000619,0x00000613,0x00000618, + 0x0005008e,0x00000007,0x0000061c,0x00000335,0x00000619,0x000200f9,0x0000061d,0x000200f8, + 0x0000061d,0x000700f5,0x00000007,0x000006f7,0x00000335,0x00000603,0x0000061c,0x0000060e, + 0x000200f9,0x0000061e,0x000200f8,0x0000061e,0x000700f5,0x00000007,0x000006f6,0x00000335, + 0x000005ff,0x000006f7,0x0000061d,0x000200f9,0x0000061f,0x000200f8,0x0000061f,0x000700f5, + 0x00000007,0x000006f5,0x000005fe,0x000005fa,0x000006f6,0x0000061e,0x00050051,0x00000006, + 0x00000338,0x000006f5,0x00000000,0x00060052,0x00000023,0x000006b1,0x00000338,0x000006f4, + 0x00000000,0x00050051,0x00000006,0x0000033a,0x000006f5,0x00000001,0x00060052,0x00000023, + 0x000006b3,0x0000033a,0x000006b1,0x00000001,0x00050051,0x00000006,0x0000033c,0x000006f5, + 0x00000002,0x00060052,0x00000023,0x000006b5,0x0000033c,0x000006b3,0x00000002,0x000200f9, + 0x0000033d,0x000200f8,0x0000033d,0x000700f5,0x00000023,0x000006fb,0x000006f4,0x0000032f, + 0x000006b5,0x0000061f,0x0008004f,0x00000007,0x0000033f,0x000006fb,0x000006fb,0x00000000, + 0x00000001,0x00000002,0x0008004f,0x00000007,0x00000342,0x000002e5,0x000002e5,0x00000000, + 0x00000001,0x00000002,0x00050085,0x00000007,0x00000343,0x0000033f,0x00000342,0x00050041, + 0x00000093,0x00000344,0x00000090,0x000002ad,0x0004003d,0x00000006,0x00000345,0x00000344, + 0x0005008e,0x00000007,0x00000346,0x00000343,0x00000345,0x00050051,0x00000006,0x00000348, + 0x00000346,0x00000000,0x00060052,0x00000023,0x000006b7,0x00000348,0x000006fd,0x00000000, + 0x00050051,0x00000006,0x0000034a,0x00000346,0x00000001,0x00060052,0x00000023,0x000006b9, + 0x0000034a,0x000006b7,0x00000001,0x00050051,0x00000006,0x0000034c,0x00000346,0x00000002, + 0x00060052,0x00000023,0x000006bb,0x0000034c,0x000006b9,0x00000002,0x0008004f,0x00000007, + 0x0000034e,0x000006bb,0x000006bb,0x00000000,0x00000001,0x00000002,0x0005008e,0x00000007, + 0x00000624,0x0000034e,0x0000003c,0x00050051,0x00000006,0x00000351,0x00000624,0x00000000, + 0x00060052,0x00000023,0x000006bd,0x00000351,0x000006fd,0x00000000,0x00050051,0x00000006, + 0x00000353,0x00000624,0x00000001,0x00060052,0x00000023,0x000006bf,0x00000353,0x000006bd, + 0x00000001,0x00050051,0x00000006,0x00000355,0x00000624,0x00000002,0x00060052,0x00000023, + 0x000006c1,0x00000355,0x000006bf,0x00000002,0x0008004f,0x00000007,0x00000357,0x000006c1, + 0x000006c1,0x00000000,0x00000001,0x00000002,0x00050085,0x00000007,0x0000062c,0x00000357, + 0x000006dd,0x0008000c,0x00000007,0x0000062f,0x00000001,0x0000002b,0x0000062c,0x00000075, + 0x000006de,0x0006000c,0x00000007,0x00000631,0x00000001,0x00000004,0x0000062f,0x0007000c, + 0x00000007,0x00000632,0x00000001,0x0000001a,0x00000631,0x000000a6,0x0005008e,0x00000007, + 0x00000633,0x00000632,0x00000078,0x00050081,0x00000007,0x00000635,0x000006d9,0x00000633, + 0x0006000c,0x00000007,0x00000637,0x00000001,0x00000004,0x0000062f,0x0007000c,0x00000007, + 0x00000638,0x00000001,0x0000001a,0x00000637,0x000000a6,0x0005008e,0x00000007,0x00000639, + 0x00000638,0x00000079,0x00050081,0x00000007,0x0000063b,0x000006de,0x00000639,0x00050088, + 0x00000007,0x0000063e,0x00000635,0x0000063b,0x0006000c,0x00000007,0x0000063f,0x00000001, + 0x00000004,0x0000063e,0x0007000c,0x00000007,0x00000640,0x00000001,0x0000001a,0x0000063f, + 0x000000b7,0x00050051,0x00000006,0x0000035a,0x00000640,0x00000000,0x00050051,0x00000006, + 0x0000035c,0x00000640,0x00000001,0x00050051,0x00000006,0x0000035e,0x00000640,0x00000002, + 0x00050051,0x00000006,0x00000360,0x000006fb,0x00000003,0x00050051,0x00000006,0x00000362, + 0x000002e5,0x00000003,0x00050085,0x00000006,0x00000363,0x00000360,0x00000362,0x00070050, + 0x00000023,0x000006df,0x0000035a,0x0000035c,0x0000035e,0x00000363,0x0003003e,0x000002e8, + 0x000006df,0x000100fd,0x00010038 }; diff --git a/src/render/vulkan/VULKAN_PixelShader_Textures_Simple.h b/src/render/vulkan/VULKAN_PixelShader_Textures_Simple.h index ce35f52496..a17f6351fa 100644 --- a/src/render/vulkan/VULKAN_PixelShader_Textures_Simple.h +++ b/src/render/vulkan/VULKAN_PixelShader_Textures_Simple.h @@ -1,7 +1,7 @@ // 1114.0.0 #pragma once static const uint32_t VULKAN_PixelShader_Textures_Simple[] = { - 0x07230203,0x00010000,0x0008000b,0x0000005c,0x00000000,0x00020011,0x00000001,0x0006000b, + 0x07230203,0x00010000,0x0008000b,0x00000060,0x00000000,0x00020011,0x00000001,0x0006000b, 0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001, 0x0007000f,0x00000004,0x00000004,0x6e69616d,0x00000000,0x00000024,0x0000002c,0x00030010, 0x00000004,0x00000007,0x00030003,0x00000005,0x000001f4,0x00040005,0x00000004,0x6e69616d, @@ -17,6 +17,6 @@ static const uint32_t VULKAN_PixelShader_Textures_Simple[] = { 0x00000001,0x00000008,0x0004003b,0x00000023,0x00000024,0x00000001,0x00040020,0x0000002b, 0x00000003,0x00000007,0x0004003b,0x0000002b,0x0000002c,0x00000003,0x00050036,0x00000002, 0x00000004,0x00000000,0x00000003,0x000200f8,0x00000005,0x0004003d,0x00000008,0x00000025, - 0x00000024,0x0004003d,0x00000010,0x00000058,0x00000012,0x00050057,0x00000007,0x0000005b, - 0x00000058,0x00000025,0x0003003e,0x0000002c,0x0000005b,0x000100fd,0x00010038 + 0x00000024,0x0004003d,0x00000010,0x0000005c,0x00000012,0x00050057,0x00000007,0x0000005f, + 0x0000005c,0x00000025,0x0003003e,0x0000002c,0x0000005f,0x000100fd,0x00010038 }; diff --git a/src/render/vulkan/VULKAN_PixelShader_Textures_YUV.h b/src/render/vulkan/VULKAN_PixelShader_Textures_YUV.h deleted file mode 100644 index 3d2e20d7bd..0000000000 --- a/src/render/vulkan/VULKAN_PixelShader_Textures_YUV.h +++ /dev/null @@ -1,52 +0,0 @@ - // 1114.0.0 - #pragma once -static const uint32_t VULKAN_PixelShader_Textures_YUV[] = { - 0x07230203,0x00010000,0x0008000b,0x000000ac,0x00000000,0x00020011,0x00000001,0x0006000b, - 0x00000001,0x4c534c47,0x6474732e,0x3035342e,0x00000000,0x0003000e,0x00000000,0x00000001, - 0x0008000f,0x00000004,0x00000004,0x6e69616d,0x00000000,0x0000004c,0x0000004f,0x00000053, - 0x00030010,0x00000004,0x00000007,0x00030003,0x00000005,0x000001f4,0x00040005,0x00000004, - 0x6e69616d,0x00000000,0x00050005,0x00000018,0x736e6f43,0x746e6174,0x00000073,0x00070006, - 0x00000018,0x00000000,0x47526373,0x756f5f42,0x74757074,0x00000000,0x00070006,0x00000018, - 0x00000001,0x74786574,0x5f657275,0x65707974,0x00000000,0x00060006,0x00000018,0x00000002, - 0x75706e69,0x79745f74,0x00006570,0x00060006,0x00000018,0x00000003,0x6f6c6f63,0x63735f72, - 0x00656c61,0x00060006,0x00000018,0x00000004,0x65786574,0x69735f6c,0x0000657a,0x00070006, - 0x00000018,0x00000005,0x656e6f74,0x5f70616d,0x6874656d,0x0000646f,0x00070006,0x00000018, - 0x00000006,0x656e6f74,0x5f70616d,0x74636166,0x0031726f,0x00070006,0x00000018,0x00000007, - 0x656e6f74,0x5f70616d,0x74636166,0x0032726f,0x00070006,0x00000018,0x00000008,0x5f726473, - 0x74696877,0x6f705f65,0x00746e69,0x00030005,0x0000001a,0x00000000,0x00050005,0x00000036, - 0x74786574,0x30657275,0x00000000,0x00050005,0x0000004c,0x75706e69,0x65742e74,0x00000078, - 0x00050005,0x0000004f,0x75706e69,0x6f632e74,0x00726f6c,0x00070005,0x00000053,0x746e6540, - 0x6f507972,0x4f746e69,0x75707475,0x00000074,0x00050048,0x00000018,0x00000000,0x00000023, - 0x00000000,0x00050048,0x00000018,0x00000001,0x00000023,0x00000004,0x00050048,0x00000018, - 0x00000002,0x00000023,0x00000008,0x00050048,0x00000018,0x00000003,0x00000023,0x0000000c, - 0x00050048,0x00000018,0x00000004,0x00000023,0x00000010,0x00050048,0x00000018,0x00000005, - 0x00000023,0x00000020,0x00050048,0x00000018,0x00000006,0x00000023,0x00000024,0x00050048, - 0x00000018,0x00000007,0x00000023,0x00000028,0x00050048,0x00000018,0x00000008,0x00000023, - 0x0000002c,0x00030047,0x00000018,0x00000002,0x00040047,0x0000001a,0x00000022,0x00000000, - 0x00040047,0x0000001a,0x00000021,0x00000000,0x00040047,0x00000036,0x00000022,0x00000000, - 0x00040047,0x00000036,0x00000021,0x00000001,0x00040047,0x0000004c,0x0000001e,0x00000000, - 0x00040047,0x0000004f,0x0000001e,0x00000001,0x00040047,0x00000053,0x0000001e,0x00000000, - 0x00020013,0x00000002,0x00030021,0x00000003,0x00000002,0x00030016,0x00000006,0x00000020, - 0x00040017,0x00000007,0x00000006,0x00000004,0x00040017,0x0000000d,0x00000006,0x00000002, - 0x00040017,0x00000015,0x00000006,0x00000003,0x000b001e,0x00000018,0x00000006,0x00000006, - 0x00000006,0x00000006,0x00000007,0x00000006,0x00000006,0x00000006,0x00000006,0x00040020, - 0x00000019,0x00000002,0x00000018,0x0004003b,0x00000019,0x0000001a,0x00000002,0x00040015, - 0x0000001b,0x00000020,0x00000001,0x0004002b,0x0000001b,0x0000001c,0x00000003,0x00040020, - 0x0000001d,0x00000002,0x00000006,0x00090019,0x00000033,0x00000006,0x00000001,0x00000000, - 0x00000000,0x00000000,0x00000001,0x00000000,0x0003001b,0x00000034,0x00000033,0x00040020, - 0x00000035,0x00000000,0x00000034,0x0004003b,0x00000035,0x00000036,0x00000000,0x00040020, - 0x00000047,0x00000001,0x00000007,0x00040020,0x0000004b,0x00000001,0x0000000d,0x0004003b, - 0x0000004b,0x0000004c,0x00000001,0x0004003b,0x00000047,0x0000004f,0x00000001,0x00040020, - 0x00000052,0x00000003,0x00000007,0x0004003b,0x00000052,0x00000053,0x00000003,0x00050036, - 0x00000002,0x00000004,0x00000000,0x00000003,0x000200f8,0x00000005,0x0004003d,0x0000000d, - 0x0000004d,0x0000004c,0x0004003d,0x00000007,0x00000050,0x0000004f,0x0004003d,0x00000034, - 0x0000007c,0x00000036,0x00050057,0x00000007,0x0000007f,0x0000007c,0x0000004d,0x0008004f, - 0x00000015,0x00000088,0x0000007f,0x0000007f,0x00000000,0x00000001,0x00000002,0x00050041, - 0x0000001d,0x00000089,0x0000001a,0x0000001c,0x0004003d,0x00000006,0x0000008a,0x00000089, - 0x0005008e,0x00000015,0x0000008b,0x00000088,0x0000008a,0x00050051,0x00000006,0x0000008d, - 0x0000008b,0x00000000,0x00050051,0x00000006,0x0000008f,0x0000008b,0x00000001,0x00050051, - 0x00000006,0x00000091,0x0000008b,0x00000002,0x00050051,0x00000006,0x00000093,0x0000007f, - 0x00000003,0x00070050,0x00000007,0x000000ab,0x0000008d,0x0000008f,0x00000091,0x00000093, - 0x00050085,0x00000007,0x00000083,0x000000ab,0x00000050,0x0003003e,0x00000053,0x00000083, - 0x000100fd,0x00010038 -}; diff --git a/src/render/vulkan/compile_shaders.bat b/src/render/vulkan/compile_shaders.bat index 31029b85d5..072cbd0a58 100644 --- a/src/render/vulkan/compile_shaders.bat +++ b/src/render/vulkan/compile_shaders.bat @@ -3,8 +3,6 @@ glslangValidator -D --sep main -e main -S frag --target-env vulkan1.0 --auto-sam glslangValidator -D --sep main -e main -S frag --target-env vulkan1.0 --auto-sampled-textures --vn VULKAN_PixelShader_Textures -o VULKAN_PixelShader_Textures.h VULKAN_PixelShader_Textures.hlsl glslangValidator -D --sep main -e main -S frag --target-env vulkan1.0 --auto-sampled-textures --vn VULKAN_PixelShader_Textures_PQ -o VULKAN_PixelShader_Textures_PQ.h VULKAN_PixelShader_Textures_PQ.hlsl glslangValidator -D --sep main -e main -S frag --target-env vulkan1.0 --auto-sampled-textures --vn VULKAN_PixelShader_Textures_Simple -o VULKAN_PixelShader_Textures_Simple.h VULKAN_PixelShader_Textures_Simple.hlsl -glslangValidator -DBROKEN_YCbCr_NVIDIA=1 -D --sep main -e main -S frag --target-env vulkan1.0 --auto-sampled-textures --vn VULKAN_PixelShader_Textures_YUV -o VULKAN_PixelShader_Textures_YUV.h VULKAN_PixelShader_Textures.hlsl glslangValidator -D --sep main -e main -S frag --target-env vulkan1.0 --auto-sampled-textures --vn VULKAN_PixelShader_Advanced -o VULKAN_PixelShader_Advanced.h VULKAN_PixelShader_Advanced.hlsl -glslangValidator -DBROKEN_YCbCr_NVIDIA=1 -D --sep main -e main -S frag --target-env vulkan1.0 --auto-sampled-textures --vn VULKAN_PixelShader_Advanced_YUV -o VULKAN_PixelShader_Advanced_YUV.h VULKAN_PixelShader_Advanced.hlsl glslangValidator -D --sep mainColor -e main -S vert --iy --target-env vulkan1.0 --vn VULKAN_VertexShader -o VULKAN_VertexShader.h VULKAN_VertexShader.hlsl